Buderus Web Gateway

Aus FHEMWiki
Version vom 16. Januar 2015, 08:12 Uhr von Sailor (Diskussion | Beiträge) (Update der Lösung)
km200.
Zweck / Funktion
Anbindung eines Buderus Web-Gateway
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) Heizungssteuerung/Raumklima
Modulname 73_km200.pm
Ersteller Sailor
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!



Allgemein

Das Modul 73_km200.pm ermöglicht die Anbindung eines Buderus Web-Gateway an einen FHEM Server (Raspberry-Pi, Fritzbox, NAS) zur Steuerung/Regelung der Heizungsanlage in der FHEM Umgebung zur Erweiterung der Hausautomatisierung.

Übersicht der steuerbaren Funktionen und abrufbaren Werte (Services) können unter folgendem Link http://www.ip-symcon.de/wiki/Buderus_KM200 eingesehen werden. Diese können aber in Abhängigkeit der Kombination KM/RC sowie der aktuell installierten Firmware auf dem KM unterschiedlich ausfallen. Weitere Details werden nach und nach ergänzt.

Voraussetzung

Buderus Hardware

Buderus KM(*)-Modul (*) 50, 200, 300

Quelle: Buderus Webseite

Buderus RC(*)-Regler (*) 30/35, 200, 300

Quelle: Buderus Webseite

Vorbereitungen in Linux

Damit das Modul unter FHEM und Linux funktioniert müssen zusätzliche Perl-Module installiert werden.

Damit die ständige Eingabe des „sudo“ Befehls zur Installation der einzelnen Module „muss mit Root-Rechten erfolgen“ umgangen werden kann, bitte folgenden Befehl eingeben und mit Password freigeben.

Code:

sudo bash

Um die folgenden Perl-Module installieren zu können benötigen wir CPANMINUS, dazu bitte folgenden Befehl zur Installation in die Kommandozeile eingeben.

curl -L https://cpanmin.us | perl - --sudo App::cpanminus

Kommt es dabei zu einer Fehlermeldung bitte mit folgenden Befehl beginnen.

Code:

sudo apt-get install cpanminus

Dann nacheinander die u.g. Module per (Copy/Paste) und Bestätigung per (Enter) installieren.

Code:

cpanm JSON
cpanm List::MoreUtils
cpanm Crypt::Rijndael
cpanm LWP::UserAgent
cpanm MIME::Base64
cpanm Time::HiRes
cpanm Digest::MD5
cpanm base
cpanm HttpUtils
apt-get install libltdl


Zur Vermeidung bekannter Fehler aufgrund Versionsunterschiede, sollte man seine bereits installierten Pakete auf den neusten Stand bringen:

apt-get update
apt-get upgrade


Zum Abschluss nach erfolgter Installation der Module noch mit Eingabe des Code:

exit

wieder in den User-Mode wechseln.

Vorbereitung in FHEM

Das km200 - Modul ist als 73_km200.pm offiziell eingecheckt und wird mit dem update - Befehl auf den jeweils neusten Stand gebracht.


Passwörter

Es werden für das fhem Modul "km200" 2 Passwörter benötigt:

a) Gateway Passwort

Das Gateway Passwort ist fix auf das Gateway programmiert und befindet sich auf dem Typenschild des jeweiligen KM-Moduls. Es hat das Format aaaa-bbbb-cccc-dddd


b) Persoenliches Passwort

Das persönliche Passwort muss zunächst noch erstellt werden, da die KMxxx Module ohne persoenliches Passwort ausgeliefert werden. Aus diesem Grunde ist es notwendig sich einmalig die Buderus APP EasyControl auf einem SmartPhone zu installieren und das Passwort zu setzen. Hierzu muss einfach den Anweisungen Folge geleistet werden.

Aktivierung und Definition in FHEM

In der fhem.cfg das Modul definieren mit:

define <devicename> km200 <IPAdresse des KM200> <Gateway Passwort> <persönliches Passwort>

Hierbei koennen die Passwörter wahlweise als direkter Text (bareword) oder als Base64 codierter text eigegeben werden, sofern man keine direkten Passwörter in der fhem.cfg stehen haben möchte.

Einstellungen über Attribute

Es können neben den Standard Attributen wie "room" oder "verbose" noch folgende für das km200-Modul individuelle Attribute in der fhem.cfg ergänzt werden.

attr <devicename> IntervalDynVal
attr <devicename> IntervalStatVal
attr <devicename> PollingTimeout
attr <devicename> ConsoleMessage <1 or 0>
attr <devicename> DoNotPoll <Service_1> <Service_2> <Service_3> ... <Service_n>


  • IntervalDynVal:
Ein gültiges Interval für die Abfrage der sich dynamisch verändernden Werte der Heizung welche über die KM-Module eingelesen werden. Der Wert muss >= 20s sein um dem Modul zu erlauben einen kompletten Poll abzuwarten. Der Default Wert ist 90s.


  • IntervalStatVal:
Ein gültiges Interval für die Abfrage der sich statisch und somit nicht verändernden Werte der Heizung welche über die KM-Module eingelesen werden. Der Wert muss >= 20s sein um dem Modul zu erlauben einen kompletten Poll abzuwarten. Der Default Wert ist 3600s.
Der Wert "0" deaktiviert die Abfrage der statischen Werte und wird diese nicht vor dem nächsten Start des fhem System oder dem Reload der fhem.cfg erneut abfragen.


  • PollingTimeout:
Zeitraum in dem das auf eine Antwort seitens des KM200/KM50 Moduls warten soll. Sollte ein sehr langsames Heimnetz vorhanden sein, so muss der Wert entsprechend hochgesetzt werden. Der Default-Wert ist 5s.


  • ConsoleMessage:
Sollte es aus Gründen der Fehlersuche erwünscht sein, dem Modul beim Pollen der einzelnen Werte life zuzusehen, so kann man die Ausgabe im Konsolenfenster (STD-OUT) aktivieren. Hierzu muss der Wert auf "1" gesetzt werden.
Bitte daran denken, dass dies nicht automatisch in dem Telnet Fenster (e.g. PUTTY) angezeigt wird. Man muss zur Anzeige dort das fhem-System stoppen und wieder starten.
Der Default-Wert is "0" = deaktiviert.


  • DoNotPoll:
Eine durch Leerzeichen getrennte Liste von Services die nicht gepollt werden sollen. Dies kann bei wiederholten Abstürzen durch Abfrage bestimmter Services angewendet werden sowie für das gezielte Ausblenden von irrelevanten Werten (Z.B.: Rücklauftemperatur = -32768°C, etc.).
Der Default Wert ist "" somit werden alle Werte abgefragt.

Bekannte Probleme

Fehlermeldung: "Use of uninitialized value in concatenation (.) or string at ./FHEM/73_km200.pm"

Beschreibung / Ursache:

Diese Fehlermeldung tritt meistens in Verbindung mit einem sehr langsamen Netzwerk auf. Hierbei antwortet das KM200/KM100/KM50 nicht rechtzeitig bevor das 73_km200.pm - Modul aufgibt und die unten genannte Fehlermeldung ausgibt.


Lösung:

Um das Modul "geduldiger" zu machen, muß man nur das Attribut "PollingTimeout" entsprechend höher setzen. Ein guter Erfahrungswert wäre zum Beispiel 20, was den 4-fachen des Default-Werts entspricht. Besser wäre es jedoch einen qualitativ höherwertigen Netzwerk-Switch statt beispielsweise Netzwerk-Hub oder gar billigen Router einzusetzen.

Sporadischer Absturz von fhem

Beschreibung / Ursache:

Aus noch ungeklärter Ursache kann es bei einzelnen Buderus KMxxx Geräten in Verbindung mit verschiedenen Buderus RCs bei Abfrage bestimmter Services zum Komplett-Absturz des fhem - Systems kommen. Es ist dem Developer des Moduls bisher nicht gelungen diese Abstürze nachzustellen um den Fehler entsprechend abzufangen. Bisher treten diese Abstuerze insbesondere bei Abfrage der folgenden Services auf:

/heatSources/flameCurrent
/heatSources/flameStatus
/system/appliance/flameCurrent
/system/appliance/flameStatus

Aber auch andere Services könnten dieses Problem auslösen. Sind dem Developer aber zur Zeit nicht bekannt.


Lösung:

Zu diesem Zweck muss man zunächst das Attribut ConsoleMessage aktivieren (Siehe Attribute) und sehen, ab welcher Ausgabe sich das fhem-System aufhängt.

Der Wert der Probleme bereitet ist der nächste Wert, der eben gerade nicht angezeigt wird.

Die bekannten Problem-Services hinter das Attribut DoNotPoll hängen. Sie werden anschließend nicht mehr abgefragt und können somit keinen Absturz mehr verursachen.

Keine Services lesbar / Keine Readings im fhem

Beschreibung / Ursache:

Es kann sein das das fhem System nach eine Weile abstürzt ohne vorher Readings in das device geschrieben zu haben. Wenn man zum debuggen dann das Attribut "ConsoleMessage" aktiviert hat (Siehe Attribute) dann taucht folgende Liste in der Konsole auf:


Sounding and importing of services started
The following Service CANNOT be read            : /
The following Service CANNOT be parsed by JSON  : /gateway
The following Service CANNOT be parsed by JSON  : /gateway/DateTime
The following Service CANNOT be parsed by JSON  : /gateway/instAccess
The following Service CANNOT be parsed by JSON  : /gateway/instWriteAccess
The following Service CANNOT be parsed by JSON  : /gateway/uuid
The following Service CANNOT be parsed by JSON  : /gateway/versionFirmware
The following Service CANNOT be parsed by JSON  : /gateway/versionHardware
The following Service CANNOT be parsed by JSON  : /heatingCircuits
The following Service CANNOT be parsed by JSON  : /heatingCircuits/hc1
The following Service CANNOT be parsed by JSON  : /heatingCircuits/hc1/activeSwitchProgram
The following Service CANNOT be read            : /heatingCircuits/hc1/actualSupplyTemperature
The following Service CANNOT be read            : /heatingCircuits/hc1/controlType
The following Service CANNOT be read            : /heatingCircuits/hc1/currentOpModeInfo
The following Service CANNOT be read            : /heatingCircuits/hc1/currentRoomSetpoint
The following Service CANNOT be read            : /heatingCircuits/hc1/designTemp

(Gekürzt)


Lösung: Bisher tauchen diese Symptome nur in Verbindung mit einem falschen Passwort auf. Zu diesem Zwecke beide Passwörter überprüfen und ggf. das private Passwort mit der App erneut setzen.

ACHTUNG: Keine deutschen Umlaute Verwenden!

Fehlermeldung: "encrypt: datasize not multiple of blocksize (16 bytes) at ./FHEM/73_km200.pm line xxx"

Beschreibung / Ursache:

Während der Initialisierung des Geräts taucht die Fehlermeldung

encrypt: datasize not multiple of blocksize (16 bytes) at ./FHEM/73_km200.pm line xxx

in der Konsole auf und stürzt ab. Offensichtlich kann es aus noch ungeklärter Ursache dazu kommen, dass das KM Gerät 2 Byte zuviel sendet.


Lösung:

Die Ursache konnte noch nicht gefunden werden. Bei dem einzigen bekannten Fall hat der User nur mit einem kompletten Hardware-RESET des KM - Gerätes die Funktion, bzw. den Kontakt zum KM-Gerät wiederherstellen können.

Liste bekannter Services

Die folgenden Werte sind dem Developer bekannt und können durch das Modul abgefragt werden, sofern eine Antwort seitens des KMxxx kommt oder sich nicht hinter dem DoNotPoll Attribut befinden.

/
/gateway
/gateway/DateTime
/gateway/instAccess
/gateway/instWriteAccess
/gateway/uuid
/gateway/versionFirmware
/gateway/versionHardware

/heatingCircuits
/heatingCircuits/hc1
/heatingCircuits/hc1/activeSwitchProgram
/heatingCircuits/hc1/actualSupplyTemperature
/heatingCircuits/hc1/controlType
/heatingCircuits/hc1/currentOpModeInfo
/heatingCircuits/hc1/currentRoomSetpoint
/heatingCircuits/hc1/designTemp
/heatingCircuits/hc1/fastHeatupFactor
/heatingCircuits/hc1/heatCurveMax
/heatingCircuits/hc1/heatCurveMin
/heatingCircuits/hc1/manualRoomSetpoint
/heatingCircuits/hc1/operationMode
/heatingCircuits/hc1/pumpModulation
/heatingCircuits/hc1/roomInfluence
/heatingCircuits/hc1/roomtemperature
/heatingCircuits/hc1/roomTempOffset
/heatingCircuits/hc1/setpointOptimization
/heatingCircuits/hc1/solarInfluence
/heatingCircuits/hc1/status
/heatingCircuits/hc1/suWiSwitchMode
/heatingCircuits/hc1/suWiThreshold
/heatingCircuits/hc1/switchPrograms
/heatingCircuits/hc1/temperatureLevels
/heatingCircuits/hc1/temperatureRoomSetpoint
/heatingCircuits/hc1/temporaryRoomSetpoint

/heatingCircuits/hc2
/heatingCircuits/hc2/activeSwitchProgram
/heatingCircuits/hc2/actualSupplyTemperature
/heatingCircuits/hc2/controlType
/heatingCircuits/hc2/currentOpModeInfo
/heatingCircuits/hc2/currentRoomSetpoint
/heatingCircuits/hc2/designTemp
/heatingCircuits/hc2/fastHeatupFactor
/heatingCircuits/hc2/heatCurveMax
/heatingCircuits/hc2/heatCurveMin
/heatingCircuits/hc2/manualRoomSetpoint
/heatingCircuits/hc2/operationMode
/heatingCircuits/hc2/pumpModulation
/heatingCircuits/hc2/roomInfluence
/heatingCircuits/hc2/roomtemperature
/heatingCircuits/hc2/roomTempOffset
/heatingCircuits/hc2/setpointOptimization
/heatingCircuits/hc2/solarInfluence
/heatingCircuits/hc2/status
/heatingCircuits/hc2/suWiSwitchMode
/heatingCircuits/hc2/suWiThreshold
/heatingCircuits/hc2/switchPrograms
/heatingCircuits/hc2/temperatureLevels
/heatingCircuits/hc2/temperatureRoomSetpoint
/heatingCircuits/hc2/temporaryRoomSetpoint

/heatSources
/heatSources/actualCHPower
/heatSources/actualDHWPower
/heatSources/actualPower
/heatSources/actualsupplytemperature
/heatSources/ChimneySweeper
/heatSources/CHpumpModulation
/heatSources/flameCurrent
/heatSources/flameStatus
/heatSources/gasAirPressure
/heatSources/nominalCHPower
/heatSources/nominalDHWPower
/heatSources/numberOfStarts
/heatSources/powerSetpoint
/heatSources/powerSetpoint
/heatSources/returnTemperature
/heatSources/systemPressure
/heatSources/workingTime

/heatSources/hs1/energyReservoir
/heatSources/hs1/reservoirAlert
/heatSources/hs1/nominalFuelConsumption
/heatSources/hs1/fuelConsmptCorrFactor
/heatSources/hs1/actualModulation
/heatSources/hs1/actualPower
/heatSources/hs1/fuel

/notifications

/recordings
/recordings/heatingCircuits
/recordings/heatingCircuits/hc1
/recordings/heatingCircuits/hc1/roomtemperature
/recordings/heatSources
/recordings/heatSources/actualCHPower
/recordings/heatSources/actualDHWPower
/recordings/heatSources/actualPower
/recordings/system
/recordings/system/heatSources
/recordings/system/heatSources/hs1
/recordings/system/heatSources/hs1/actualPower
/recordings/system/sensors
/recordings/system/sensors/temperatures
/recordings/system/sensors/temperatures/outdoor_t1

/solarCircuits
/solarCircuits/sc1/
/solarCircuits/sc1/collectorTemperature
/solarCircuits/sc1/pumpModulation
/solarCircuits/sc1/solarYield
/solarCircuits/sc1/status

/system
/system/appliance
/system/appliance/actualPower
/system/appliance/actualSupplyTemperature
/system/appliance/ChimneySweeper
/system/appliance/CHpumpModulation
/system/appliance/flameCurrent
/system/appliance/flameStatus
/system/appliance/gasAirPressure
/system/appliance/nominalBurnerLoad
/system/appliance/numberOfStarts
/system/appliance/powerSetpoint
/system/appliance/systemPressure
/system/appliance/workingTime

/system/brand
/system/bus
/system/healthStatus

/system/heatSources/
/system/heatSources/hs1
/system/heatSources/hs1/actualModulation
/system/heatSources/hs1/actualPower
/system/heatSources/hs1/energyReservoir
/system/heatSources/hs1/fuel
/system/heatSources/hs1/fuel/density
/system/heatSources/hs1/fuelConsmptCorrFactor
/system/heatSources/hs1/nominalFuelConsumption
/system/heatSources/hs1/reservoirAlert

/system/info

/system/minOutdoorTemp

/system/sensors
/system/sensors/temperatures
/system/sensors/temperatures/chimney
/system/sensors/temperatures/hotWater_t1
/system/sensors/temperatures/hotWater_t2
/system/sensors/temperatures/outdoor_t1
/system/sensors/temperatures/return
/system/sensors/temperatures/supply_t1
/system/sensors/temperatures/supply_t1_setpoint
/system/sensors/temperatures/switch

Links

  • Thema zur Entwicklung und Support des Moduls
  • Beitrag, der auf einem Raspbery Pi schrittweise -ausgehend von der Betriebssysteminstallation über die Fhem-Installation- die Modulnutzung beschreibt