Buderus KM200 Kommunikationsmodul

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

Vorheriges Thema - Nächstes Thema

Elektrolyt

#1335
Hallo Sailor,
...ja, das habe ich natürlich auch schon gemacht.

set myKm200 /heatingCircuits/hc1/temperatureLevels/comfort2 20

liefert folgede Rückantwort:
Unknown argument /heatingCircuits/hc1/temperatureLevels/comfort2, choose one of /heatingCircuits/hc2/switchPrograms/A /dhwCircuits/dhw1/switchPrograms/A/3-We /system/heatSources/hs1/fuel/caloricValue /heatSources/hs1/fuel /heatSources/hs1/info /heatingCircuits/hc2/switchPrograms/B/4-Th /heatingCircuits/hc1/switchPrograms/B/5-Fr /heatingCircuits/hc1/switchPrograms/B/7-Su /heatingCircuits/hc1/switchPrograms/B/2-Tu /heatingCircuits/hc1/switchPrograms/A/5-Fr /heatingCircuits/hc1/switchPrograms/A/4-Th /dhwCircuits/dhw1/switchPrograms/cp /dhwCircuits/dhw1/switchPrograms/cp/6-Sa /heatingCircuits/hc2/switchPrograms/B/7-Su /dhwCircuits/dhw1/switchPrograms/A /heatingCircuits/hc1/switchPrograms/A/6-Sa /heatingCircuits/hc2/temperatureLevels /heatingCircuits/hc2/switchPrograms/B/5-Fr /dhwCircuits/dhw1/temperatureLevels/high /heatingCircuits/hc2/switchPrograms/A/2-Tu /heatSources/hs1/numberOfStarts /heatingCircuits/hc2/switchPrograms/A/7-Su /heatSources/hs1/fuelConsmptCorrFactor /dhwCircuits/dhw1/switchPrograms/cp/4-Th /heatingCircuits/hc2/switchPrograms/A/1-Mo /system/heatSources/hs1/nominalFuelConsumption /heatingCircuits/hc1/switchPrograms/B/1-Mo /dhwCircuits/dhw1/switchPrograms/A/2-Tu /dhwCircuits/dhw1/switchPrograms/A/4-Th /gateway/instAccess /heatSources/hs1/fuel/density /gateway/DateTime /dhwCircuits/dhw1/switchPrograms/A/7-Su /system/heatSources/hs1/fuel/density /gateway/portalPassword /heatSources/hs1/flameStatus /dhwCircuits/dhw1/switchPrograms/cp/2-Tu /gateway/boschSHPassword /system/heatSources/hs1/fuelConsmptCorrFactor /heatSources/hs1/supplyTemperatureSetpoint /heatingCircuits/hc2/switchPrograms/B /dhwCircuits/dhw1/switchPrograms/A/6-Sa /heatingCircuits/hc2/switchPrograms/B/2-Tu /dhwCircuits/dhw1/switchPrograms/cp/7-Su /heatingCircuits/hc1/switchPrograms/A/1-Mo /system/heatSources/hs1/energyReservoir /dhwCircuits/dhw1/tdMode /dhwCircuits/dhw1/switchPrograms/A/5-Fr /heatingCircuits/hc1/switchPrograms/A/2-Tu /heatingCircuits/hc2/switchPrograms/B/1-Mo /gateway/instPassword /heatingCircuits/hc2/switchPrograms/A/6-Sa /heatingCircuits/hc2/switchPrograms/A/5-Fr /dhwCircuits/dhw1/switchPrograms/cp/1-Mo /heatSources/hs1/nominalFuelConsumption /dhwCircuits/dhw1/switchPrograms/A/1-Mo /system/heatSources/hs1/reservoirAlert /heatingCircuits/hc2/switchPrograms/B/3-We /heatingCircuits/hc1/switchPrograms/A/7-Su /heatingCircuits/hc1/switchPrograms/A /system/info /dhwCircuits/dhw1/switchPrograms/cp/3-We /heatingCircuits/hc1/switchPrograms/A/3-We /dhwCircuits/dhw1/temperatureLevels/off /heatSources/hs1/fuel/caloricValue /dhwCircuits/dhw1/switchPrograms/cp/5-Fr /heatingCircuits/hc2/switchPrograms/A/3-We /gateway/instWriteAccess /heatingCircuits/hc1/switchPrograms/B/3-We /heatingCircuits/hc1/switchPrograms/B/6-Sa /heatSources/hs1/energyReservoir /heatingCircuits/hc1/switchPrograms/B /heatingCircuits/hc2/switchPrograms/B/6-Sa /heatingCircuits/hc2/switchPrograms/A/4-Th /system/heatSources/hs1/fuel /gateway/knxPassword /heatingCircuits/hc1/temperatureLevels /heatSources/hs1/nominalCHPower /heatingCircuits/hc1/switchPrograms/B/4-Th /heatSources/hs1/reservoirAlert

Wundert mich nicht, wird ja so auch nicht in der Drop-Down-Liste angeboten.
Geht das denn bei dir?

Gruß, Jens
PasPi und Cb2 als Server, COC, CUL868, NanoCUL, RFBee als CUL_RFR, Buderus GB172 / 2 Kreise / CP / KM200 , FRM, FS20, IT, Revolt, CUL_EM, HMS, KS300, OWServer,  ECMD, VSM-102, FHEM2FHEM, einige DOIFs...

neolux

Moin!

Seit dem Update von Perl startet das Modul nicht mehr.
This is perl 5, version 24, subversion 0 (v5.24.0) built for armv5tel-linux

es gibt folgende Meldung:
2016.10.20 12:11:39 0: Experimental keys on scalar is now forbidden at ./FHEM/73_km200.pm line 2432, <$fh> line 51.
2016.10.20 12:11:43 1: Including ./log/fhem.save
2016.10.20 12:11:45 1: configfile: Cannot load module km200


Gehe erstmal zurück auf perl 5.22

Sailor

Hallo Jens

Zitat von: Elektrolyt am 17 Oktober 2016, 14:20:11
Hallo Sailor,
...ja, das habe ich natürlich auch schon gemacht.

set myKm200 /heatingCircuits/hc1/temperatureLevels/comfort2 20

Wundert mich nicht, wird ja so auch nicht in der Drop-Down-Liste angeboten.
Geht das denn bei dir?

Gruß, Jens

Ja, deswegen wundert es mich ja gerade.

Meine Rückantwort lautet:

The service /heatingCircuits/hc1/temperatureLevels/comfort2 has been changed to: 21.5



Gebe mal folgenden Code ein:

get myKm200 /heatingCircuits/hc1/temperatureLevels JSON

sowie

get myKm200 /heatingCircuits/hc1/temperatureLevels/comfort2 JSON

und poste das Ergebnis.

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

Sailor

#1338
Hi Neolux

Zitat von: neolux am 20 Oktober 2016, 12:23:47
Seit dem Update von Perl startet das Modul nicht mehr.
This is perl 5, version 24, subversion 0 (v5.24.0) built for armv5tel-linux

es gibt folgende Meldung:
2016.10.20 12:11:39 0: Experimental keys on scalar is now forbidden at ./FHEM/73_km200.pm line 2432, <$fh> line 51.
2016.10.20 12:11:43 1: Including ./log/fhem.save
2016.10.20 12:11:45 1: configfile: Cannot load module km200


Gehe erstmal zurück auf perl 5.22

Tja, so ist das mit den "experimental" - Geschichten... Entweder sie werden übernommen oder irgendwann verboten...
Statt
(keys $ArrayItem)
muss es
(keys %{$ArrayItem})
heissen.

Gefixt und eingecheckt.
Da ich noch auf dem alten Perl Stand bin, teste es mal bitte für mich aus.

Gruss
    Sailor

PS: Wie bist du den beim RasPi auf 5.25 hoch gekommen? Nach sudo apt-get update & upgrade bin ich immer noch auf 5.20.
******************************
Man wird immer besser...

neolux

Zitat von: Sailor am 21 Oktober 2016, 09:05:30
Da ich noch auf dem alten Perl Stand bin, teste es mal bitte für mich aus.

Gruss
    Sailor

PS: Wie bist du den beim RasPi auf 5.25 hoch gekommen? Nach sudo apt-get update & upgrade bin ich immer noch auf 5.20.

Mach ich.
Ich bin auf einem Eigenbau-Ubuntu zum Testen, das soll dann mal alles auf einen RasPi laufen... :)

Ansonsten: Perl einfach mal selber bauen:
http://perlmaven.com/how-to-build-perl-from-source-code ;)

Gruß
Neo

neolux

So, hab es jetzt sei dem 22.10. unter Per 5.24. laufen. Bisher ist nix aufgefallen.  :)

Elektrolyt

Hallo Sailor,
entschuldige die späte Antwort, ich war 2 Wo. offline.

Die Rückantworten sind:
get myKm200 /heatingCircuits/hc1/temperatureLevels JSON
{"id":"/heatingCircuits/hc1/temperatureLevels","type":"refEnum","references":[{"id":"/heatingCircuits/hc1/temperatureLevels/eco","uri":"http://192.168.178.40/heatingCircuits/hc1/temperatureLevels/eco"},{"id":"/heatingCircuits/hc1/temperatureLevels/comfort2","uri":"http://192.168.178.40/heatingCircuits/hc1/temperatureLevels/comfort2"}]}

und
get myKm200 /heatingCircuits/hc1/temperatureLevels/comfort2 JSON
{"id":"/heatingCircuits/hc1/temperatureLevels/comfort2","type":"floatValue","writeable":1,"recordable":0,"value":21.0,"unitOfMeasure":"C","minValue":15.5,"maxValue":30.0}

und trotzdem liefert ein:
set myKm200 /heatingCircuits/hc1/temperatureLevels/comfort2 20
Unknown argument /heatingCircuits/hc1/temperatureLevels/comfort2, choose...

Gruß, Jens

PS
Meine Gateway Version ist:
/gateway/versionFirmware   04.00.04
/gateway/versionHardware   iCom_Low_NSC_v1
PasPi und Cb2 als Server, COC, CUL868, NanoCUL, RFBee als CUL_RFR, Buderus GB172 / 2 Kreise / CP / KM200 , FRM, FS20, IT, Revolt, CUL_EM, HMS, KS300, OWServer,  ECMD, VSM-102, FHEM2FHEM, einige DOIFs...

Sailor

Hallo Jens

Zitat von: Elektrolyt am 04 November 2016, 08:41:01
und trotzdem liefert ein:
set myKm200 /heatingCircuits/hc1/temperatureLevels/comfort2 20
Unknown argument /heatingCircuits/hc1/temperatureLevels/comfort2, choose...

Gruß, Jens

PS
Meine Gateway Version ist:
/gateway/versionFirmware   04.00.04
/gateway/versionHardware   iCom_Low_NSC_v1

OK, die JSON - Antworten sind schon mal in Ordnung!

Dann eben ans Eingemachte:
attr myKm200 verbose 5

Neustart durchführen und nochmal versuchen zu setzen.
Die Log-file Auszüge vom myKm200 posten...

Vergiss nicht den verbose zurückzusetzen. Da kommt ne menge Daten bei rum.

Gruss
    Sailor

******************************
Man wird immer besser...

Elektrolyt

Hallo Sailor,
...stürmische See, Takelage gebrochen, aber trotzdem im Hafen gelandet!
Nach "verbose 5" und Neustart wurde das Polling extrem träge. Ich habe die Daten geloggt - Auha! wirklich viel.

Es zeigte sich aber plötzlich das heiß ersehnte /heatingCircuits/hc1/temperatureLevels/comfort2 in der DropDown Liste für set
Jetzt ließ sich das Kommando erstmalig ausführen, leider aber nur sehr unstabil.
ERROR - The service /heatingCircuits/hc1/temperatureLevels/comfort2 could not changed to: 20
The value is: 21

kommt fast immer.
Dann kam auch sowas:
The service /heatingCircuits/hc1/temperatureLevels/comfort2 has been rounded to: ERROR
Aber dann auch mal der Erfolg!
The service /heatingCircuits/hc1/temperatureLevels/comfort2 has been changed to: 20

Nicht, dass du jetzt denkst, ich hätte das Komando während der polling-Phase abgesetzt, nein - schön mittels DOIF auf "Standby" Status synchronisiert!
Es ist Glücksache - mal klappts - meistens leider nicht. Aber immerhin Land in Sicht!

Alles macht mir den Eindruck, als hätte ich eine miserable Verbindung.
Ein kompletter Poll dauert ca. eine Minute!
Ein attr myKm200 DoNotPoll ... f ür unerwünschte Services habe ich wieder entfernt, dann ging es besser.

Hier meine Einstellungen:
DELAYDYNVAL     60
INTERVALDYNVAL   120
POLLINGTIMEOUT    80
READBACKDELAY   200
Vielleicht ist da was unglücklich definiert?

Fazit:
Es gibt bei mir schon beim initialen Sounding Probleme die Listen für die schreibbaren Services zu erzeugen.
Nach mehreren Neustarts scheint es dann aber zu klappen. Trotzdem entstehen Fehler beim Absetzen von set-Befehlen.

Danke für deinen Einsatz!
Gruß, Jens


PasPi und Cb2 als Server, COC, CUL868, NanoCUL, RFBee als CUL_RFR, Buderus GB172 / 2 Kreise / CP / KM200 , FRM, FS20, IT, Revolt, CUL_EM, HMS, KS300, OWServer,  ECMD, VSM-102, FHEM2FHEM, einige DOIFs...

neolux

#1344
Zitat von: Elektrolyt am 04 November 2016, 19:30:17
Jetzt ließ sich das Kommando erstmalig ausführen, leider aber nur sehr unstabil.
ERROR - The service /heatingCircuits/hc1/temperatureLevels/comfort2 could not changed to: 20
The value is: 21

kommt fast immer.
Das kenn ich auch, aber das ist ja noch relativ schmerzlos.
Schlimmer ist die Übermittlung von Programmen, das wird zum Glückspiel, was da rauskommt nach dem nächsten Polling, da konnte ich noch keinen reproduzierbaren Fehler eingrenzen.
z.B. "set Heizung /heatingCircuits/hc1/switchPrograms/Eigen1/1-Mo 0530 day 0710 night 1530 day 2200 night" klappt mal, klappt mal nicht, klappt mal nur teilweise, hat Seiteneffekte auf andere Tage...
Ergebnis war nach dem nächsten Polling z.B.:

/heatingCircuits/hc1/switchPrograms/Eigen1/1-Mo 0530 day

oder

/heatingCircuits/hc1/switchPrograms/Eigen1/1-Mo 0530 day 0710 night 1530 day 2200 night
dann aber
/heatingCircuits/hc1/switchPrograms/Eigen1/2-Di  0000 night
Der Dienstag also komplett gelöscht...

oder
/heatingCircuits/hc1/switchPrograms/Eigen1/1-Mo 0530 day 0710 night

Anpassungen an die Programme mache ich also immer noch über die Buderus App.

Ich hab mir die Readings mal mit Perl nach Hex dekodiert, da scheinen die Programm-Slots über den Tag verteilt zu werden und dazwischen nach bestimmten Regeln 0-Bytes gesetzt zu werden.

Ich überlege, da einen kleinen Editor zu schreiben, mit dem man bequem einen Wochenplan erstellen kann, ähnlich dem Wochenplan-Modul für MAX!/Homematic-Komponenten. Ist das von Interesse, daß ich für die Zeitpläne mal die Bytes durchforste? ::)

Sailor

Hallo NeoLux

Zitat von: neolux am 07 November 2016, 11:23:36
Ich überlege, da einen kleinen Editor zu schreiben, mit dem man bequem einen Wochenplan erstellen kann, ähnlich dem Wochenplan-Modul für MAX!/Homematic-Komponenten. Ist das von Interesse, daß ich für die Zeitpläne mal die Bytes durchforste? ::)

Diesen Editor hat DLindner schon geschrieben.

Irgendwo ab Seite 30 aufwärts in diesem Thread...

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

Sailor

Hallo Jens

Zitat von: Elektrolyt am 04 November 2016, 19:30:17
Nach "verbose 5" und Neustart wurde das Polling extrem träge. Ich habe die Daten geloggt - Auha! wirklich viel.
Nun ja, wer Fehler sucht braucht Input!  ;D

Zitat von: Elektrolyt am 04 November 2016, 19:30:17
Alles macht mir den Eindruck, als hätte ich eine miserable Verbindung.
Ein kompletter Poll dauert ca. eine Minute!
Ein attr myKm200 DoNotPoll ... f ür unerwünschte Services habe ich wieder entfernt, dann ging es besser.

Hmm, das hatten wir bei einem User schon mal gaaanz am Anfang.
Dort war in der Tat was mit dem eigenen Netzwerk, bzw. mit dem Hub was schief...


Zitat von: Elektrolyt am 04 November 2016, 19:30:17
Hier meine Einstellungen:
DELAYDYNVAL     60
INTERVALDYNVAL   120
POLLINGTIMEOUT    80
READBACKDELAY   200
Vielleicht ist da was unglücklich definiert?

Fazit:
Es gibt bei mir schon beim initialen Sounding Probleme die Listen für die schreibbaren Services zu erzeugen.
Nach mehreren Neustarts scheint es dann aber zu klappen. Trotzdem entstehen Fehler beim Absetzen von set-Befehlen.

Das ist die Standard-Werte und die sind für normale Verhältnisse so ok.

Setze mal den DELAYDYNVAL auf 200 hoch und starte neu.
Das dürfte dann richtig laaaange dauern, aber das Modul sollte dadurch geduldiger werden.

Für Fehlervermeidung beim Schreiben kann man das ReadBackDelay entsprechend hochsetzen.

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

neolux

#1347
Zitat von: Sailor am 08 November 2016, 10:43:25
Hallo NeoLux

Diesen Editor hat DLindner schon geschrieben.

Irgendwo ab Seite 30 aufwärts in diesem Thread...

Gruss
    Sailor

Oh, Danke... gleich mal suchen...

Sech mol, wat anneres: Werden da eigentlich auch die Service-Meldungen im Modul ausgelesen? Das wär schick....
Ich hatte im Februar eine Defekte Umwälzpumpe, da hatte ich allerdings FHEM noch nicht im Einsatz, und bin morgens in ner arschkalten Bude aufgewacht.
Die Störung war zwar in der Buderus-App dann drin, aber ne Pushmitteilung kam da leider nicht... Wär schick, wenn ich mir eventuelle Störungen über Telegram schicken könnte...

[edit]
...ah... hab sie gefunden... :) Lesen bildet. :)

Morluktom

Hallo,

ich bekomme das km200 Modul nicht zum laufen.

Anbei an Auszug aus meinem Log File (Passwörter gelöscht):

2016.11.16 20:40:15 5: Cmd: >define myKm200 km200 192.168.0.112 xxxx-xxxx-xxxx-xxxx xxxxxxxx<
2016.11.16 20:40:15 5: Loading ./FHEM/73_km200.pm
2016.11.16 20:40:15 4: myKm200 : km200 - Starting to define module
2016.11.16 20:40:15 4: myKm200 : km200 - InternalTimer has been removed.
2016.11.16 20:40:15 4: myKm200 : km200 - IPv4-address is valid                  : 192.168.0.112
2016.11.16 20:40:15 4: myKm200 : km200 - Provided GatewayPassword provided as bareword has the correct length at least.
2016.11.16 20:40:15 4: myKm200 : km200 - Provided PrivatePassword exists at least
2016.11.16 20:40:15 4: myKm200 : km200 - Define H                               : HASH(0x17bd440)
2016.11.16 20:40:15 4: myKm200 : km200 - Define D                               : myKm200 km200 192.168.0.112 xxxx-xxxx-xxxx-xxxx xxxxxxxx
2016.11.16 20:40:15 4: myKm200 : km200 - Define A                               : 5
2016.11.16 20:40:15 4: myKm200 : km200 - Define Name                            : myKm200
2016.11.16 20:40:15 4: myKm200 : km200 - Define Adr                             : 192.168.0.112
2016.11.16 20:40:15 5: myKm200 : km200 - GetSingleService - service            : /gateway/DateTime
2016.11.16 20:40:15 5: myKm200 : km200 - GetSingleService - url                : http://192.168.0.112/gateway/DateTime
2016.11.16 20:40:15 4: HttpUtils url=http://192.168.0.112/gateway/DateTime
2016.11.16 20:40:15 4: http://192.168.0.112/gateway/DateTime: HTTP response code 200
2016.11.16 20:40:15 4: HttpUtils http://192.168.0.112/gateway/DateTime: Got data, length: 154
2016.11.16 20:40:15 5: myKm200 : km200 - GetSingleService - err                :
2016.11.16 20:40:15 5: myKm200 : km200 - GetSingleService - data               :
22rADCr0S7+7wWzAZ4Y0y4nNPVU8ZwNo08Q4p5Xyy5M041IUl/OK+etRTYXa41t4xquhuhuGPG6CQkzI0K2KakzWmwJ6oCRqxSXAYnfHGVw9wiGwEwDGbwQ4i9Atad0esXcgFNoGbhGSeNMnUAjurA==
2016.11.16 20:40:15 5: myKm200 : km200 - decryptData1 - decipher_len                : 112
2016.11.16 20:40:15 5: myKm200 : km200 - decryptData1 - deciphertext                : ����[i�/��i
e������B�CPP�z��q#�aR���iE���-̲!�W,���va(+t���┲Dl�RHcL{�@ґ���}n�����2�9�}f�"��5zViJ
2016.11.16 20:40:15 5: myKm200 : km200_GetSingleService - Data cannot be parsed by JSON on km200 for http://http://192.168.0.112/gateway/DateTime
2016.11.16 20:40:15 4: myKm200 : km200_GetSingleService - type unknown for : /gateway/DateTime
2016.11.16 20:40:15 1: PERL WARNING: Use of uninitialized value $Km200Info in string eq at ./FHEM/73_km200.pm line 292, <$fh> line 48.
2016.11.16 20:40:15 1: PERL WARNING: Use of uninitialized value $Km200Info in string eq at ./FHEM/73_km200.pm line 302, <$fh> line 48.
2016.11.16 20:40:15 4: myKm200 : km200 - /gateway/DateTime                      : AVAILABLE
2016.11.16 20:40:25 5: myKm200Sounding and importing of services started
2016.11.16 20:40:25 4: HttpUtils url=http://192.168.0.112/
2016.11.16 20:40:25 4: myKm200 : km200 - Internal timer for Initialisation of services started for the first time.
2016.11.16 20:40:25 5: Cmd: >attr myKm200 IntervalDynVal 90<
2016.11.16 20:40:25 4: myKm200 : km200 - IntervalDynVal set to attribute value:90 s
2016.11.16 20:40:25 5: Cmd: >attr myKm200 PollingTimeout 200<
2016.11.16 20:40:25 4: myKm200 : km200 - Polling timeout set to attribute value:200 s
2016.11.16 20:40:25 5: Cmd: >attr myKm200 room Heizung<
2016.11.16 20:40:25 5: Cmd: >attr myKm200 verbose 5<

Hat jemand einen Tipp für mich was ich falsch mache?

Gruß

Tom

Sailor

Hallo Tom

Zitat von: Morluktom am 16 November 2016, 20:54:56
ich bekomme das km200 Modul nicht zum laufen.

Anbei an Auszug aus meinem Log File (Passwörter gelöscht):
Hat jemand einen Tipp für mich was ich falsch mache?

Sende mal bitte den gesamten Log-Auszug inklusive sounding - Resultate.

Aber vergiss bitte nicht den #-Button oben zu klicken.
Sonst wird der Beitrag laaaaang. :-)

Gruss
    Sailor

PS: Support zur Zeit eingeschränkt... Meine Fritte 7390 ist tot!   :'(
******************************
Man wird immer besser...