Buderus KM200 Kommunikationsmodul

Begonnen von Sailor, 21 Juli 2014, 12:39:47

Vorheriges Thema - Nächstes Thema

DLindner

#660
ZitatSo etwas ist natürlich in den Augen eines Programmierers echt sch...:
GRUNDSÄTZLICH scheint das Schreiben also auch in meiner Umgebung zu funktionieren,
aber nur bei gleichzeitigem Vollmond und Sonnenschein :-(

Was sagt denn das Fhem.log? Wie ist DELAYDYNVAL eingestellt?

ZitatSystemumgebung: FHEM auf Raspberry Pi (B+) (gestern aktualisiert), KM200-Modul mit Version 44,
KM200-Gateway mit Firmware 3.01.00, RC300 als Bedienteil der Heizung.

Wenn ich das richtig verfolgt habe, dann haben die Meisten hier eine Firmware-Version 01.09.04. Ich kann all diese Probleme nicht nachvollziehen. Erst wenn ich die Pollingzeit auf unter 15 sec. stelle kommt es sporadisch zu Kommunikationsproblemen. Und nur dann wenn km200 Werte abruft und ich gleichzeitig Werte setze.

Wie ich sagte, ich habe keinerlei Probleme  :D. Ich sehe bei diesem Modul nur kleinere Probleme wachsen.
1. Es gibt wohl nicht das km200-Gateway, sondern es sieht so aus, dass es unterschiedliche Software- sowie Hardware-Firmwareversionen gibt.
2. Es gibt auch nicht die standarisierten Readings (Services), sondern je nach Gerät eine mehr oder weniger große Anzahl von Services, was das KM200-Modul irgendwann mal aufblähen wird.
3. Ferner muss bedacht werden, dass das Protokoll immer noch nicht ganz entschlüsselt ist (und auch wohl nie sein wird).
4. Dieses Framework wird auf unterschiedlichster Hardware mit unterschiedlichster Firmware eingesetzt. Von der Fritzbox, über Raspi bis zum ausgewachsenen Server. Wie soll man da als Entwickler alle Eventualitäten abschätzen? Sind alle Module installiert, welche Versionen der Module sind installiert, etc, etc.

Und der arme Sailor leistet hier eine unglaubliche Arbeit, um das Ganze nach vorne zu bringen ohne richtige Unterstützung aus dem Feld. Wenn bei mir alle mir bekannten Readings funtionieren, müssen bei anderen diese auch funktioniert. Wenn sie das nicht tun, dann stimmt etwas in der Umgebung, sprich Hardware oder Betriebssystem nicht.


AndiL

#661
Hallo Buderusheizer,

Ich hatte mein KM200 nach mehreren Anläufen bei ebay geschnappt. Hatte immer nachgefragt wo die Leute, die sonst Babywäsche verticken, so ein Gerät originalverpackt her haben. Zwei Nachfragen ergaben, daß diese mit RWE-SmartHome Startpaketen ausgeliefert wurden und die Leute gar keine Buderusheizung hatten. Letztendlich habe ich dann lieber bei einem Heizungsbetrieb zugeschlagen bei dem das Ding aus einem stornierten Auftrag stammen sollte.

Da RWE-Smarthome ja auch eine eigene Steuerung mit Smartphoneapp etc. hat dürften hier Software- und evt. Hardwareunterschiede nicht unwahrscheinlich sein.

Ausgeliefert werden die KM200 wohl in einer nicht funktionstüchtigen Variante. Nach der Installation checken die erst mal ihre Systemumgebung und holen sich dann über das Inet bei Mama Bosch die zugehörige Firmware.
Was ich bis jetzt so gelesen habe scheint die KM200 Firmware 3.01.00 zum RC300 Bedienteil zu gehören. Zur Bedieneinheit RC35 gehört die KM200 Firmware 01.09.04, was am verbreitesten scheint.

Um da mal Licht rein zu bringen, hier mal meine Systemdaten und die sich daraus ergebende Firmwareversion des KM 200.

Zitat
Buderuns-Kombi-Brennwert Gasheizkessel
Logamax Plus GB 152T 16/19 KW
Nur HK1 benutzt.
Kein Solar oder ähnliches.

Systembus : EMS1_0 (/system/bus/)
Bedieneinheit RC35

KM200 Gateway Serie 07
Version Firmware 01.09.04 (/gateway/versionFirmware/)
Version Hardware iCom_Low_v1 (/gateway/versionHardware/)

FHEM-Plattform
Raspberry Pi B+
Fhem info:
  Release  : 5.6
  OS       : linux
  Arch     : arm-linux-gnueabihf-thread-multi-64int
  Perl     : v5.14.2

Km200 Modul aktuell, alle zusätzlichen Perlmodule korrekt installiert.

Netzwerkverbindung: Alles auf den LAN-Ports der Fritzbox. Latenzzeiten fix, < 5ms.


Das KM200 gibt es in einer v1- und v2-Ausführung. Kennt jemand da den Unterschied. Meins ist mir als v2 verkauft worden in der Hardwareversion finde ich aber eine v1.


Ich möchte hier auch ausdrücklich die Arbeit von Sailor loben.

Er hat ja nur seine Anlage zuhause und die Systeme im Feld scheinen sehr vielfälltig zu sein.
Es kann hier ja niemand erwarten in einer OpenSource-Gemeinde einhundert prozentige Lösungen geliefert zu bekommen.
Ich für meinen Teil freue mich darüber, daß das Modul weit aus mehr kann als die doofe App von Buderus.

Ich suche die Gründe für meine Phänomene nicht mehr in dem FHEM-Modul. Wie DLinder korrekt anführt muß es an der Hardware oder dem OS liegen.
Ich bin derzeit nur am Grübeln ob ich mit einem zweiten Raspi nochmal komplett neu anfange oder gleich was größeres nehme.

Vielleicht könnt ihr ja mal eure Systemdaten und die "Herkunft" des Gateways posten.
Das könnte den Entwicklern ja auch schon mal weiterhelfen da offensichtlich KM200 nicht immer gleich KM200 sein muß.

Gruß
Andi



FHEM 5.8 auf RasPi 3
***********************************
FB 7390, FS20, HM mit USB-CFG, 1-wire (DS1820 und DS2408), Buderus KM200 mit GB 152, Phillips HUE und Bastelkram....

DLindner

Hallo AniL, tolle Idee.

hier meine Systemumgebung:

Zitat
Buderus GB202-25
Heizkreis: HK1 und HK2
Weichenmodul WM10
Mischermodul MM10
RC35 für HK2 (FBH)
KM200 Serie 06 (direkt von Buderus)
Firmware 01.09.04
Hardware iCom_Low_v1
Systembus EMS1_0

Rechner:
Intel ARM-SOC Q1900-ITX Quad-Core mit Turbo-Boost 64bit
8 GB RAM
System-LW Samsung EVO 840 SSD
Ubuntu 14.04 Kernel 3.13
fhem neuste Version (welche ?)
ii  perl 5.18.2-2ubuntu1 amd64        Larry Wall's Practical Extraction and Report Language
ii  perl-base 5.18.2-2ubuntu1 amd64        minimal Perl system
ii  perl-modules 5.18.2-2ubuntu1 all          Core Perl modules
zusätzlich läuft ein Plexmediaserver und miniDLNA

Anschluss des Rechners über Powerline-Adapter, da kein Lan-Kabel im Keller vorhanden ist (saulahm Latenzzeiten > 7 ms)

Trotz der lahmen ping-Zeiten funktioniert alles bis unter 30sec Polltime ohne Kommunikationsprobleme.



AndiL

Hallo DLindner,

Du hast Recht, Netzwerkanbindung und Latenzzeiten ist auch nicht unwichtig.
habe es bei mir nachgetragen.

Gruß
Andi
FHEM 5.8 auf RasPi 3
***********************************
FB 7390, FS20, HM mit USB-CFG, 1-wire (DS1820 und DS2408), Buderus KM200 mit GB 152, Phillips HUE und Bastelkram....

Morkin

Hallo zusammen,

auch ich habe mich ja schon für das Modul bedankt und erwarte hier kein "Rundum-Sorglos"-Paket :-)
Allerdings habe ich mir das Gateway vor allem deshalb zugelegt, um die Heizungsanlage mit fhem schalten zu können. Umso enttäuschender ist es natürlich, dass hier so große Hürden auftreten.

Was mich am meisten irritiert ist die Tatsache, dass mit den Sourcen des Moduls das
Updaten in MEINER Umgebung (KM200V2, FW 3.01.00, RC300 an GB-172) so gut wie nie funktioniert,
es aber zu zwei "Positiv-Ausreißern" kam (die Werte also gesetzt wurden).
Will heißen: es dürfte eigentlich nicht am Sourcecode liegen, sondern am Gateway oder dem Regler oder oder ...

Daher bin ich einmal etwas tiefer in die Kommunikation eingestiegen. Auch wenn die aktuelle Version 44
einen Temperaturwert als numerisch erkennt, sieht das Stück JSON, bevor es in der Methode
"km200_PostSingleService" kodiert und abgeschickt wird, so aus:
{"value":"17"}
Die Zahl wird also leider immer noch als String übergeben.

Um zu schauen, wie die Buderus-App das macht, habe ich mit der FritzBox den Netzwerktraffic
mitgeschnitten und die Parameter anschließend wieder dekodiert. Hier wird erwartungsgemäß
{"value":17}
übergeben.

Weitere Abweichungen sind die verwendete HTTP-Methode ("PUT" statt "POST") sowie
u.a. der User-Agent.
So ermutigt habe ich einmal das fhem-Modul angepasst, die Methode auf "PUT" umgestellt,
die Header übernommen und auch den JSON-String korrigiert.

Leider ohne Erfolg: die Werte werden immer noch nicht korrekt gesetzt  :-\

Mal schauen, ob ich in den Osterferien etwas mehr Zeit investieren und eine Lösung finden kann...

Gruß
Christian

grossi33

Hallo,
... zum Unterschied V1/V2:
soviel ich weiss, hat die V1 des KM200 nur EMS-Bus, während die V2 beide (CAN und EMS, zumindest körperlich) an Bord hat.

... zu "mundfertig" gemacht:
Natürlich ist Sailor DIE vorantreibende Kraft bei der Modulentwicklung - das bestreitet bestimmt auch keiner.
Mir hat Sailor bisher sehr geholfen. Großes Dankeschön nochmal!

... zu meiner Konfiguration:
Ich habe ein KM200V2 mit Firmware 01.05.01, eine Buderus Sole-Wärmepumpe WPS10-1 mit Softwarestand 3.1.0, dazu eine FB7490 als Router und ein Raspberry Pi B+ mit debian und dem aktuellen FHEM. Auf meinem Win8.1-Laptop läuft die FHEM-Weboberfläche.
Habe nur HZ-Kreis1, da die WP über Umschaltventil entweder auf einen Puffer oder einen WW-Speicher arbeitet. Eine Buderus RC40 Solarsteuerung ist schnittstellenlos, deshalb nicht angebunden. ...

... zu meiner "Motivation":
Die Easy-Control-App ist vom Funktionsumfang grottig und ein Werbegag von B. Auch die ganze Entwicklung ist typisch - auf dem Rücken der Nutzer ausgetragen. Deshalb möchte ich meine Heizungsdaten auch (wenn irgend möglich) nicht mehr über einen Buderus-Server zur Verfügung stellen.... :P

grossi33


Newbee

Hallo,

dann schildere ich mal meine Erfahrung aus den letzten Wochen.

Seit der Version 0043 musste ich das Polling Timeout auf 30sec herauf setzen, da ich nach dem Update immer wieder eher sporadisch Verbindungsabbrüche zum KM200 hatte.
Vor dieser Version lief die Abfragen der Dyn Readings (Services) mit 120sec bei den Stat Readings 3600sec und einem Polling Timeout von 5sec ohne Probleme.

Anlage ist ein GB142 mit einem RC30 und dem KM200 (Version nicht bekannt).

Bei der Anzahl der ausgelesenen Services hat sich bei seit 0041 nichts mehr getan. Die letzten die bei mir dazu kamen sind die folgenden.

/dhwCircuits/dhw1/activeSwitchProgram
Heizkreis
2015-03-24 18:23:15
/dhwCircuits/dhw1/actualTemp
58.9
2015-03-24 18:23:15
/dhwCircuits/dhw1/operationMode
auto
2015-03-24 18:23:19
/dhwCircuits/dhw1/setTemperature
60
2015-03-24 18:23:16
/dhwCircuits/dhw1/status
ACTIVE
2015-03-24 18:23:16
/dhwCircuits/dhw1/temperatureLevels/off
0
2015-03-24 18:23:16
/dhwCircuits/dhw1/temperatureLevels/on
60
2015-03-24 18:23:17
/dhwCircuits/dhw1/waterFlow
0
2015-03-24 18:23:18
/dhwCircuits/dhw1/workingTime


Auch an dieser Stelle nochmals DANK an Sailor.

Grüsse Newbee
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

Newbee

Ergänzend noch ne Frage.

Wer von Euch hat das "nach Hause telefonieren" des km200 unterbunden?

Newbee
Intel-NUC mit ubuntu server 20.04; FHEM 6.0
HM, Dect, Netatmo, Hue

furban

Also ich bin nun etwas verwirrt was ich alles angeben soll. Ich denke das macht nur Sinn wenn man die Daten mal im Wiki in einer Tabelle sammelt, oder?

Mein KM200 darf Daten zu Buderus schieben. Auch der Wartungszugang ist offen damit ich mit der EasyControlPro App zugreifen kann.

Ansonsten habe ich eine erst im Juli eingebaute Heizungsanlage

Anlagentyp SB105

KM200 V2 Serie 09
/gateway/versionFirmware 03.01.00
/gateway/versionHardware iCom_Low_NSC_v1
/system/bus EMS2_0

RC300
ein Heizkreis; kein Solar; 160l Warmwassertank

Raspberry Pi B+  für FHEM

keinerlei Probleme, frage allerdings auch nur alle 300sec die Daten ab und habe bisher nur testweise mal einzelne Werte ohne Probleme gesetzt. So richtig Steuerung machen ich also noch keine.

Morkin

So, ein paar Erkenntnisse habe ich doch noch bekommen  ;)

Da meine "Muttersprache" eher Java als Perl ist, habe ich kurzerhand ein kleines
Java-Projekt zur Kommunikation mit dem KM200 aufgesetzt.

Beim Auslesen der Werte per Get-Methode ist einzig und allein der übergebene
User-Agent von Bedeutung. Beginnt der String des User-Agents mit "TeleHeater",
so erhält man auch die (verschlüsselten) Werte.
Bei allen anderen User-Agents erhält man eine HTML-Seite zur Antwort:
"Sorry, the requested file does not exist on this server."

Auch beim Schreiben von Werten ist einzig und allein der User-Agent in den
Headern wichtig. Ob nun die Post- oder die Put-Methode für das Setzen von
Werten verwendet wird, ist dem Gateway zum Glück egal.

Auf jeden Fall ist aber die korrekte Vorgabe numerischer Werte erforderlich.
Wird {"value":"15"} verschlüsselt und dann übergeben, wird die Temperatur
nicht verändert. Bei {"value":15} hingegen erfolgt ein Update.

Zwischenfazit:
Mittels einer Post-Methode mit "User-Agent" = "TeleHeater" und einem JSON-Objekt,
das die Zahlen nicht in Hochkommata setzt, funktioniert auch bei der Firmware 3.01.00
das Setzen von Temperaturen - aus meinem Java-Programm heraus - zuverlässig
und problemlos.

Jetzt leider das "Aber":
Ich habe das Modul 73_km200.pm auf meinem Raspberry Pi noch einmal
angepasst und gebe definitiv korrekte Daten vor (mit demselben Data-String
wird die Änderung in Java problemlos durchgeführt).
Trotzdem werden die Änderungen nicht vom Gateway akzeptiert!

Da ich überhaupt keine Ahnung habe, was in "HttpUtils_BlockingGet()" passiert,
komme ich hier auch definitiv nicht weiter.
Evtl. gibt es eine alternative Post-Methode, die hier verwendet werden könnte???

Ich hoffe, dass sich nun jemand, der Perl besser beherrscht als ich, um dieses Problem
kümmert. Ich bin gerne zu Tests und weiteren Schandtaten bereit.

Gruß
Christian

DLindner

#670
Grübel, Grübel.
Das mit den numerischen Werten habe ich bereits vor einigen Wochen angesprochen und Sailor hat es auch umgesetzt. Davor konnte ich weder Temperaturen für hc1 oder h2 setzen. Seit der Änderung funktioniert bei mir alles !!!! Ich kann Tages-, Nacht-, Warwassersolltemperaturen ändern ohne Probleme und zuverlässig. Abeeeeer, kommt mir ein Polling dazwischen verschluckt sich das Modul scheinbar, erholt sich aber auch wieder (is halt en Script).
Wie sehen die Werte für DELAYDYNVAL, DELAYSTATVAL, INTERVALDYNVAL, INTERVALSTATVAL, POLLINGTIMEOUT?
Zitat
DELAYDYNVAL                   60
DELAYSTATVAL                  120
DISABLESTATVALPOLLING 0
INTERVALDYNVAL              180
INTERVALSTATVAL             3000
POLLINGTIMEOUT             20

Morkin

Folgende Einstellungen habe ich für das Modul vorgenommen:
Zitat
DELAYDYNVAL      60
DELAYSTATVAL      120
DISABLESTATVALPOLLING   1
INTERVALDYNVAL      180
INTERVALSTATVAL      3600
POLLINGTIMEOUT      30

Die Änderung bzgl. der Unterscheidung String/Numerisch ist ja grundsätzlich drin.
Gibt man jedoch in der Methode "PostSingleService()" den Wert von "JsonContent"
aus, nachdem er per "encode_json" umgewandelt wurde, stehen bei mir die doppelten
Anführungszeichen um den Wert:
if ($hash->{CONSOLEMESSAGE} == true) {print("km200 Post: " . $JsonContent . "\n");}

Wäre interessant zu wissen, ob das bei Euch auch so ist...

Ich habe übrigens testweise fhem auch unter Windows 8.1 installiert, erhalte hier aber dasselbe
(negative) Ergebnis wie beim RASPI.

Gruß
Christian

Starkstrombastler

Hallo,
ich möchte hier auch meine Systemkonfiguration bekanntgeben:
Buderus Logamax Plus GB142
Heizkreis: nur HK1 (Wandheizung!)
Weichenmodul WM10
RC30
KM200 v2 Serie 09 (aus der Bucht)
Firmware 01.09.04
Hardware iCom_Low_v1
Systembus EMS1_0

Router:
FritzBox 7270
KM200 direkt am Router angeschlossen (ca. 1m)
Internetzugang für KM200 gesperrt (FB Kindersicherung)

Rechner:
i686 32bit  1,2GHz  1 GB RAM  Ubuntu 14.04.2 LTS

Parameter:
DELAYDYNVAL        60
DELAYSTATVAL      120
DISABLESTATVALPOLLING 0
INTERVALDYNVAL    60
INTERVALSTATVAL  3600
POLLINGTIMEOUT   300


Seitdem ich das LAN der KM200 direkt mit einem ungeschirmten Patchkabel auf die FB gelegt habe, läuft das Modul stabil.
Wie hier http://www.heizungsforum.de/forum/index.php/Thread/7241-EasyControl-KM200/?pageNo=2 diskutiert wurde, gibt es wohl Potenzialprobleme!

Das Setzen von Werten bereitet Probleme.
Bei einigen Werten  erfolgt aus unbekanntem Grund ein Zurücksetzen auf die ursprünglichen Werte, zuletzt beobachtet bei:
/gateway/instAccess
/gateway/instWriteAccess


Bei mir ist eine Weiche verbaut und der Temp-Sensor ist auf dem Weichenmodul aufgeschaltet. Ich kann aber kein zugehörendes Reading identifizieren.
Kann hier jemand die Weichentemperatur auslesen?
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

DLindner

#673
ZitatBei mir ist eine Weiche verbaut und der Temp-Sensor ist auf dem Weichenmodul aufgeschaltet. Ich kann aber kein zugehörendes Reading identifizieren.
Kann hier jemand die Weichentemperatur auslesen?

Versuch's mal mit "/system/sensors/temperatures/switch". Ich habe ein WM10 verbaut und mit diesem Reading sehe ich die Weichen-Temp.

HarryHase

@DLindner: könntest Du bitte den Code zu Deiner Grafik mit einstellen, ich bin blutiger Anfänger und es läuft noch nicht alles rund möchte aber selbst lernen und der Sache ein wenig auf den Grund gehen.
Grüße hh

-----------------------