Buderus KM200 Kommunikationsmodul

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

Vorheriges Thema - Nächstes Thema

Sailor

Hallo Kai

Zitat von: KaiKr am 23 Februar 2015, 21:06:28
Ich habe mit Wireshark einen Blick auf die XMPP Pakete der EasyControl Pro geworfen. In dieser App ist mir aufgefallen ist auch die Warmwasser Soll Temperatur zu sehen. In den XMPP Paketen habe ich die URLs mit dhwCircuits entdeckt und dann über die REST Api die anderen URLs erfragt.

Ja wie geil ist das denn! Ich habe endlich Jemanden gefunden, der mit Wireshark umgehen kann!!!!  ;D ;D ;D

Kannst Du mir die Settings nennen, mit denen du in Wireshark den ganzen Kram decodiert hast?
Ich glaube, dass sind die Settings, die man bei Wireshark oben in die Kommando-Zeile einfügt.

Oooooh Happy day!  8)

Deine gefundenen Parameter werde ich ebenfalls in Version 0041 aufnehmen!

Bitte weiter so!!!

Gruss
   Sailor
******************************
Man wird immer besser...

Sailor

#526
Hallo Kai

Zitat von: KaiKr am 23 Februar 2015, 00:48:16
Laut "Buderus Montage- und Wartungsanleitung" Verbraucht die GB135/18KW: Ölldurchsatz 1./2. Stufe kg/h 0,9/1,6

Mit meinen aktuellen Werten ergibt sich dann:

heatSources/workingTime/totalSystem = 463013 minutes (Stufe 1+2)
/heatSources/workingTime/secondBurner = 288177 minutes (Stufe 2)
174836 (Stufe 1)(totalSystem-secondBurner)

288177 * (1,6/60) + 174836 * (0,9/60) = 10307 l

Ist diese Rechnung bei euch auch plausibel ?

Ich kann in deiner Rechnung nirgendwo die Umrechnung der Dichte des Heizöls erkennen.

Die Dichte von Wald-und-Wiesen Heizöl ist: 0,820–0,860 kg/l (15 °C)
Wenn also laut Buderus Handbuch der Verbrauch in Masse (kg) angegeben ist und Du aber Volumen(l) haben willst, dann musst Du Deine Liter, die in Wirklichkeit kg sind noch mit der Dichte verrechnen um auch wirklich Liter zu bekommen.

10307kg / 0,820kg/l = 12569l
10307kg / 0,840kg/l = 12270l
10307kg / 0,860kg/l = 11984l

Schau mal auf Deine letzte Rechnung. Da müssten genauere Angaben zu deinem "Stoff" vermerkt sein.

Gruß
    Sailor
******************************
Man wird immer besser...

KaiKr

Hi,

Zitat von: Sailor am 24 Februar 2015, 07:05:10
Ja wie geil ist das denn! Ich habe endlich Jemanden gefunden, der mit Wireshark umgehen kann!!!!  ;D ;D ;D

Kannst Du mir die Settings nennen, mit denen du in Wireshark den ganzen Kram decodiert hast?
Ich glaube, dass sind die Settings, die man bei Wireshark oben in die Kommando-Zeile einfügt.

Hi,

dass ich mich mit Wireshark auskenne halte ich für eine Übertreibung.

Mein Wireshark Setup sieht folgendermaßen aus. Ich habe die Buderus Apps auf dem iPhone und das iPhone über ein "Remote Virtual Interfaces (rvi0:)" mit dem Mac verbunden.
(http://useyourloaf.com/blog/2012/02/07/remote-packet-capture-for-ios-devices.html)
Wenn du kein iPhone/Mac  musst du Wireshark auf anderem Wege an das KM200 hängen.
- Verbindung mit einen HUB zwischen KM200 und dem Wireshark PC (kein Switch) (siehe http://wiki.wireshark.org/HubReference)
- Andere Varianten sind noch hier http://wiki.wireshark.org/CaptureSetup/Ethernet beschrieben.

Zu meinen Wireshark Settings. Ich habe alles über die GUI konfiguriert:

Verbindung über das rvi0: Interface. Damit wird der komplette Netzwerktraffic  zwischen iPhone und dem Rest der Welt mitgeschnitten.

Nach dem Start der iPhone EasyControlPRO App sieht man direkt XMPP Pakete an einen Buderus Server. Auf diesen Server habe ich einen ip.dest Filter gesetzt.

Die Anzahl der XMPP Pakete ist jetzt übersichtlich. In den Paketen sieht man dann die REST URLS die aufgerufen werden.

Analog geht das dann mit der EasyControl App. Hier kann mann dann sich die Http Pakte anschauen.

Ich hoffe ich konnte helfen.

Gruß Kai

AndiL

Hallo Sailor,

ich habe zwischenzeitlich die readingsGroup der Heizung für die Logfehlermeldungen

2015.02.20 18:22:31 1: PERL WARNING: Having no space between pattern and following word is deprecated at (eval 1651) line 1.

eingegrenzt. Die Logmeldung bezog sich wohl auf die erste Zeile im DEF-Bereich der readingsGroup. Ich wollte die readingsGroup erst in der Config auskommentieren. Da ich mir aber das gerade abgewöhne, habe ich mit dem Löschen der readingsGroup im Frontend die Beweise gegen mich wohl vernichtet ;)
Wenigstens ist ab da das Meldungsaufkommen im Logfile wieder normal.

Ich habe das km200 und die readingsGroups für ein paar Heizungsmeldungen wiederangelegt und das zumüllen des Logfiles ist nicht mehr aufgetreten. Das geht wohl auf meine Kappe, da muß wohl irgendein ,,Fehler" im DEF-Teil der readingsGroup gewesen sein, die Augenscheinlich aber angezeigt haben was sie sollten, sehr merkwürdig.

Das waren aber auch schon die guten Nachrichten.

Drei Probleme habe ich weiterhin.

- DoNotPoll funktioniert nicht (verschmerzbar da das KM200 offenbar keine Readings hat, die schwer verdaulich sind)

-  Die Heizungs-Readings rauschen in der  Eventanzeige durch (auch verschmerzbar, gucke ich ja auch eher selten vorbei)

- Die Set-Befehle für
/heatingCircuits/hc1/temperatureRoomSetpoint
/heatingCircuits/hc1/temperatureLevels/day
/heatingCircuits/hc1/temperatureLevels/night
betätigen mir zwar, das die Temperaturen geändert wurden.

The service /heatingCircuits/hc1/temperatureRoomSetpoint has been changed to: 20

Leider entspricht das nicht der Realität und die Werte bleiben in der Heizung unverändert. Verändere ich am RC35 die Werte werden sie in den Readings prompt angezeigt.

Betriebsmodus kann ich aber mit FHEM zwischen Auto/Nacht/Tag umschalten.  :o

Ich kann nicht nachvollziehen warum das eine geht und das andere nicht.
KM200 Firmware ist ja die gleiche wie bei anderen bei denen es offenbar funktioniert.


Das Perlmodul HttpUtils das laut WIKI-Artikel mit "cpanm HttpUtils" installiert werden soll, wird immer noch nicht in den weiten des www gefunden, scheint also keine temporäre Störung zu sein.
Andere Schreibweisen haben eigentlich das gleiche Ergebnis. Die Schreibweise ,,HttpUtils" im WIKI-Artikel ist richtig?

Ich habe im Forum einen Zauberbefehl zur Auflistung der installierten Module gefunden evt. hilft das weiter was da bei mir fehlen könnte (Bildchen ist unten angehängt).


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....

Sailor

Hallo Andi

Zitat von: AndiL am 24 Februar 2015, 21:19:22
ich habe zwischenzeitlich die readingsGroup der Heizung für die Logfehlermeldungen
eingegrenzt. Die Logmeldung bezog sich wohl auf die erste Zeile im DEF-Bereich der readingsGroup. Ich wollte die readingsGroup erst in der Config auskommentieren. Da ich mir aber das gerade abgewöhne, habe ich mit dem Löschen der readingsGroup im Frontend die Beweise gegen mich wohl vernichtet ;)
Wenigstens ist ab da das Meldungsaufkommen im Logfile wieder normal.

Na siehste, da lacht des Programmierers Herz!

Zitat von: AndiL am 24 Februar 2015, 21:19:22
Das Perlmodul HttpUtils das laut WIKI-Artikel mit "cpanm HttpUtils" installiert werden soll, wird immer noch nicht in den weiten des www gefunden, scheint also keine temporäre Störung zu sein.
Andere Schreibweisen haben eigentlich das gleiche Ergebnis. Die Schreibweise ,,HttpUtils" im WIKI-Artikel ist richtig?

Keine Ahnung wie das ins WIKI gekommen ist... Habe ich jedenfalls gelöscht.
HttpUtils ist ein Programm von Rudolf König welches unter "/opt/fhem/FHEM"  (Linux) zu finden ist.
Daher kann es auch nicht bei CPAN liegen.

Zitat von: AndiL am 24 Februar 2015, 21:19:22
- DoNotPoll funktioniert nicht (verschmerzbar da das KM200 offenbar keine Readings hat, die schwer verdaulich sind)

Also ich habe es zu Hause nochmal probiert und es funktioniert tadellos.

Mach mal einen Versuch:

a) Fülle das Attribut "DoNotPoll" mal mit ganz viel deiner bekannten Werte und setze das Attribut "ConsoleMesage" auf 1

b) Lösche alle readings für das myKm200 device

c) In der Konsole gibst Du sudo service fhem stop und sudo service fhem start ein.

Die geblockten Werte dürften nicht mehr auftauchen und auch in fhem nicht mehr erscheinen.
Bitte mal versuchen.

Zitat von: AndiL am 24 Februar 2015, 21:19:22
- Die Set-Befehle für
/heatingCircuits/hc1/temperatureRoomSetpoint
/heatingCircuits/hc1/temperatureLevels/day
/heatingCircuits/hc1/temperatureLevels/night
betätigen mir zwar, das die Temperaturen geändert wurden.

The service /heatingCircuits/hc1/temperatureRoomSetpoint has been changed to: 20

Leider entspricht das nicht der Realität und die Werte bleiben in der Heizung unverändert. Verändere ich am RC35 die Werte werden sie in den Readings prompt angezeigt.

Betriebsmodus kann ich aber mit FHEM zwischen Auto/Nacht/Tag umschalten.  :o

Ich versuche selbst noch herauszufinden woran das liegt.

Tatsache ist, das ich den Wert erneut auslese. Warum der sich dann nicht geändert hat ist mir nach wie vor schleierhaft.
Denn alle Services die in der Liste für "set" stehen, haben vom KM-Gerät das Status-Bit für "Writeable" gesetzt bekommen.

Alles sehr seltsam... Manche werte machen keine Probleme, manche schon...

Aber ich bin dran!

Gruss
    Sailor
******************************
Man wird immer besser...

Sailor

Info an Alle: Version 0041 ist eingecheckt!

Gruss
    Sailor
******************************
Man wird immer besser...

AndiL

Hallo Sailor,

danke für Deine Mühe.
Werde deine Anleitung umgehend durchackern.
Leider habe ich einen dienstlichen Auswärtstermin und komme leider wohl erst am Do. abend dazu.

Vorab noch eine Frage, damit dann gleich loslegen kann.   :)
Mit
Zitatb) Lösche alle readings für das myKm200 device
meinst Du das hier
http://fhem.de/commandref_DE.html#deletereading
wären dann bei mir bestimmt über 30 Werte die ich wegbügeln muß.
Vorgehensweise wäre dann

deletereading myKM200 /system/sensors/temperatures/hotWater_t1
deletereading myKM200 /heatingCircuits/hc2/activeSwitchProgram
deletereading myKM200 /heatingCircuits/hc2/operationMode /heatingCircuits/hc2/pumpModulation
deletereading myKM200 /heatingCircuits/hc2/roomtemperature /heatingCircuits/hc2/status
deletereading myKM200 /heatingCircuits/hc2/temperatureLevels/day
deletereading myKM200 /heatingCircuits/hc2/temperatureLevels/night
..... und so weiter



ZitatHttpUtils ist ein Programm von Rudolf König welches unter "/opt/fhem/FHEM"  (Linux) zu finden ist.

Ok. Da habe ich eine HttpUtils.pm vom 07.12.2014


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....

Sailor

Hi Andi

Zitat von: AndiL am 25 Februar 2015, 09:36:05
Mit meinst Du das hier
http://fhem.de/commandref_DE.html#deletereading
wären dann bei mir bestimmt über 30 Werte die ich wegbügeln muss.
Vorgehensweise wäre dann

[Cut]

Tja, von nischt kommt nischt und wird nischt.

Alternativ kannst Du dein Stat-File löschen. Dann sind aber alle Readings sämtlicher fhem devices weg bis zum nächsten Update-Intervall.

Gruss
    Sailor
******************************
Man wird immer besser...

DLindner

Hallo an Alle, ins besondere an Sailor,

in den Beispielen für die ReadingsGroup-Wiki gibt es ja eine Menge schöner Beispiele, wie Werte eines Devices innerhalb einer ReadingsGroup geändert werden können.
Eine Mail an den Author der ReadingsGroup.pm hat zu Tage gebracht, das Slash im Set Kommando verboten sind, sodass alle DropDownboxen ausgeblendet wurden und die Definition zwar Werte lesen können aber nicht verändern.
Definition:
define 01_Heizungswerte readingsGroup <%sani_heating>,<Name>,<Ist-Temp>,<Soll-Temp>\
heizung:<SollTemp>,/dhwCircuits/dhw1/setTemperature,<sollsetz>
attr 01_Heizungswerte commands { '01_Heizungswerte.sollsetz'=>'/dhwCircuits/dhw1/setTemperature:20,30,40'}
attr 01_Heizungswerte room Übersicht

Nun habe ich folgendes gemacht:
Änderung des attr commands -> attr 01_Heizungswerte commands { '01_Heizungswerte.sollsetz'=>'-dhwCircuits-dhw1-setTemperature:20,30,40'} und eine Zeile in 73_km_200.pm eingefügt (Tschuldigung Sailor)
sub km200_Set($@)
{
        my ( $hash, @a ) = @_;

        ### If not enough arguments have been provided
        if ( @a < 2 )
        {
                return "\"set km200\" needs at least one argument";
        }

        my $name = shift @a;
        my $opt  = shift @a;
        my $value = join("", @a);
        my %km200_sets;

        ### Get the list of possible services and create a hash out of it
        my @WriteableServices = @{$hash->{Secret}{KM200WRITEABLESERVICES}};
######### Test  ################################################################
        $opt =~ s/-/\//g;    <-------------- Diese Zeile ersetzt den Bindestrich wieder durch ein Slash /
##################################################################################
        foreach my $item(@WriteableServices)
        {
                $km200_sets{$item} = ("1");
        }

Und siehe da es funktioniert alles.

Frage an Sailor: Könnte man diesen Workarround nicht dauerhaft einbinden? Da ich nicht glaube dass justme1968 (author der readingsgroup) eine Änderung auf seiner Seite vornimmt.

Gruß Dieter



justme1968

ich kann den slash schon als erlaubtes zeichen einbauen. dieter hat schein eine nachticht zum testen. 

der slash macht aber glaube ich noch an mehr stellen potentiell probleme. userReadings gehen z.b. ziemlich sicher nicht.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

DLindner

Dann würde ich sagen, dass wir es so lassen. Wenn Sailor das replacement drinne ließe, wäre alles in Ordnung (beeinflusst ja nur Service-Strings, die mit einem Bindestich statt einem Slash daherkommen), zumal die Services des KM200-Gateways ja nur einen Unterstrich als Trenner benutzen. Wenn jemand die readingGroups lesend benutzt braucht er ja nichts machen.

AndiL

#536
Hallo Sailor,

da bin ich wieder. Bin echt betrübt, daß ich Dir keinen richtigen Erfolg auf Deinen Test melden kann.
Zitat
Mach mal einen Versuch:

a) Fülle das Attribut "DoNotPoll" mal mit ganz viel deiner bekannten Werte und setze das Attribut "ConsoleMesage" auf 1
Hab ich gemacht. Vorher natürlich noch update auf 0041 ausgeführt.

Zitat
b) Lösche alle readings für das myKm200 device
Ausgeführt. War gar nicht so aufwendig. Konnte man mit Textverarbeitung und über Zwischenablage ratzfatz erledigen. In der Logdatei ist das Löschen der Readings auch protokolliert worden

2015.02.26 19:02:37 3: deletereading myKM200 /heatSources/actualDHWPower : Deleted reading /heatSources/actualDHWPower for device myKM200
2015.02.26 19:02:37 3: deletereading myKM200 /dhwCircuits/dhw1/actualTemp : Deleted reading /dhwCircuits/dhw1/actualTemp for device myKM200
2015.02.26 19:02:37 3: deletereading myKM200 /heatingCircuits/hc1/temperatureRoomSetpoint : Deleted reading /heatingCircuits/hc1/temperatureRoomSetpoint for device myKM200
2015.02.26 19:02:37 3: deletereading myKM200 /solarCircuits/sc1/solarYield : Deleted reading /solarCircuits/sc1/solarYield for device myKM200
2015.02.26 19:02:37 3: deletereading myKM200 /heatSources/flameCurrent : Deleted reading /heatSources/flameCurrent for device myKM200
2015.02.26 19:02:37 3: deletereading myKM200 /gateway/uuid : Deleted reading /gateway/uuid for device myKM200
........................usw.........................


Zitat
c) In der Konsole gibst Du

sudo service fhem stop

und

sudo service fhem start

ein.

Hab ich gemacht. Außer
Stopping fhem... und
Starting fhem...

Ist da nix passiert.

Zitat
Die geblockten Werte dürften nicht mehr auftauchen und auch in fhem nicht mehr erscheinen.
Bitte mal versuchen.

Leider nur wenn ich die Augen zumache :).
Nach dem Update hatte ich mit den neu entdeckten Werten 75 Readings, die auch abgefragt werden. Die Anzahl ist unverändert geblieben, unabhängig was bei DoNotPoll eingetragen wird.

Zitat
Also ich habe es zu Hause nochmal probiert und es funktioniert tadellos.
Daran habe ich nicht den geringsten Zweifel.

Bin ich eigentlich der einzige der die geschilderten Probleme hat?

Ich habe mittlerweile den Telefonmonitor, HUE-Devices, 1-wire Bus mit Temperaturmessung, Abfallkalender, FS20 und Homematic relativ problemlos einrichten können. Da sollte doch dieses Modul, das eigentlich Plug&Play ist auch zu schaffen sein.

Das die eigentlich interessanten set-Befehle nicht immer funktionieren scheint ja wohl leider öfters vorzukommen. Da hoffe ich aber inständig, daß Sailor hier was findet.

Danke für Deine Zeit die Du hier in den Support steckts, vielleicht hast Du ja eine Idee wo es hier bei mir klemmt.

Gruß
Andi

PS: Was mir noch aufgefallen ist, weil es bei mir ja keine Konsolenausgabe an der richtigen Stelle gab.
In den Internals gibt es ein CONSOLENMESSAGE, in den Attributes gibt es das ConsolenMessage. Ich vermute mal das ist das Gleiche. Hat aber zwei verschiedene Werte. (siehe 3 C-Message.JPG)

Die Screens habe ich chronologisch mit geknippst.

Nach dem Konsolenstart war CONSOLEMESSAGE noch auf 1.

Damit das km200 in Gang kommt muß ich immer den DEF-Editor öffnen und mit modify (natürlich ohne was geändert zu haben) senden. Heißt eigentlich, das nach einem Reset vom Raspi das km200-Modul steht. Ist auch so, habe ich eben mal getestet alles andere funktioniert, nur das km200 benötigt persönliche Zuwendung.
Auf dem zugehörigen Bild sieht man, das CONSOLEMESSAGE jetzt auf 0 ist. Das Attribut hab ich nicht angefasst.
Nach dem Browseraktualisieren gesellt sich auch der set Knopf nebst Zeile hinzu.
Das attr ConsolenMessage war die ganze Zeit immer auf 1.




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....

Sailor

Zitat von: AndiL am 26 Februar 2015, 21:36:01

Hab ich gemacht. Außer
Stopping fhem... und
Starting fhem...

Ist da nix passiert.


Also irgendwie ist bei Dir gewaltig der Wurm drin.

a) Geb uns mal bitte eine Kopie deines fhem.cfg-Eintrags
b) Was genau musst du unter "DEF-Editor" manuell machen?

Gruss
Sailor
******************************
Man wird immer besser...

AndiL

Moin Sailor,

zu a.) hier der entsprechende km200-Teil aus der Config:


define myKM200 km200 192.168.115.101 XXXX-XXXX-XXXX-XXXX sxxxpBxx
attr myKM200 ConsoleMessage 1
attr myKM200 DoNotPoll /heatingCircuits/hc2/  /solarCircuits/sc1/  /dhwCircuits/dhw1/  /system/appliance/ChpumpModulation  /system/appliance/actualPower  /system/appliance/flameCurrent  /system/appliance/gasAirPressure
attr myKM200 loglevel 3
attr myKM200 room Heizung


zu b.)
Nach einem Neustart von FHEM muß ich den km200-DEF-Editor öffnen und klicke auf ,,modify myKM200" ohne eine Änderung im Editor gemacht zu haben. Erst dann kommt Leben ins Modul und readings trudeln ein, die get- und set-Zeilen kommen hinzu. Die entsprechenden Bildschirme sind ja im Post #536 angehängt.
   
Der Raspi hat noch andere Gesprächspartner im Netz wie die Fritzbox, HUE-Bridge, Fernseher und extern noch einige Wetterdienste. Diese Module müssen aber nicht angeschoben werden und laufen nach dem Neustart problemlos an. Auch sonst läuft alles in FHEM rund.

Wenn ich zur Fehlersuche noch etwas beitragen kann einfach Bescheid sagen.

Gruß
Andi

PS: Gerade ist mir aufgefallen, daß beim aus der Config ausgeschnittenen Teil die DoNotPoll Teile mit zwei Leerzeichen getrennt sind. Muss aber anscheinend so sein weil ich ja alles nach Vorschrift übers Frontend eingegeben habe.
Ich ändere nichts in der Config.  ::) ;D
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....

Sailor

Mojn Andi

Zitat von: AndiL am 27 Februar 2015, 18:33:18
zu a.) hier der entsprechende km200-Teil aus der Config:


attr myKM200 DoNotPoll /heatingCircuits/hc2/  /solarCircuits/sc1/  /dhwCircuits/dhw1/  /system/appliance/ChpumpModulation  /system/appliance/actualPower  /system/appliance/flameCurrent  /system/appliance/gasAirPressure



Versuche mal dennoch die zweiten Leerzeichen in der Config rauszuschmeissen.
Schau mer mal was passiert...

Gruss
    Sailor
******************************
Man wird immer besser...