Buderus KM200 Kommunikationsmodul

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

Vorheriges Thema - Nächstes Thema

daheim

Zitat von: Sailor am 26 August 2016, 20:21:31
An die restliche Gemeinde: Mag Jemand Daniel als Tutor am Anfang beiseite stehen? Muss mich noch um die beiden anderen Module kümmern.

Die könnte ich wirklich gebrauchen, da ich gerade auf dem Schlauch stehe.

Ich habe das userReading bei der ReadingsGroup hinterlegt und weiss jetzt nicht wie ich das in meine ReadingsGroup einbinden kann.

Über jede Hilfe würde ich mich freuen :)

Viele Grüße

Daniel

hijo

@Sailor, sorry hast natürlich recht, ist das File-Log und nicht das Logfile.
Wie auch immer, jetzt geht es  :D
Raspi mit FHEM 5.8, Qivicon mit Telekom App, Web KM200 von Buderus, Philips HUE System, Xiaomi Smart Home Kit, HM-CFG-LAN LAN mit 6x HM-CC-RT-DN und HM-TC-IT-WM-W-EU, Ikea Tradfri, TP-Link HS110

daheim

Kurze Rückmeldung.

Ich habe es hinbekommen mit dem Codeschnippsel von Sailor.

Habe das userReadings im KM200 gemacht und nicht bedacht, dass ich warten muss, bis der nächste Updatelauf lief.


Betriebsstundenzaehler {sprintf("%.1f",ReadingsVal("Buderus_SB105", "/heatSources/workingTime/totalSystem","???")/60)}, Heizungsdruck {sprintf("%.1f",ReadingsVal("Buderus_SB105", "/system/appliance/systemPressure","???")*0.0689476)}


Jetzt läuft alles. Vielen Dank

Daniel

fruemmel

Hallo Allerseits,

ich habe durch Zufall festgestellt, dass bei mir diverse Werte mehrfach (bis zu 10 Mal) bei einem einzigen Durchlauf abgefragt werden.

Mit etwas Suchen im Code ist mir aufgefallen, dass in der Funktion km200_ParseHttpResponseInit die gefundenen Services mit dem Befehl push (@KM200_RespondingServices, $Service);
an eine Liste aller Services angehängt werden. Dabei werden zumindest bei mir auch viele bereits vorhandene Services erneut in das Array geschoben.
Dies hat bei mir zur Folge, dass statt 86 Services insg. 436 abgefragt werden. Warum die Services mehrfach gemeldet werden, ist mir nicht klar.

Nachvollziehen lässt sich das Problem bei mir mit verbose 5 für das km200-device.

Gruß Wolfgang

Sailor

Hallo Wolfgang

Zitat von: fruemmel am 09 September 2016, 12:49:49
ich habe durch Zufall festgestellt, dass bei mir diverse Werte mehrfach (bis zu 10 Mal) bei einem einzigen Durchlauf abgefragt werden.
Nachvollziehen lässt sich das Problem bei mir mit verbose 5 für das km200-device.

Ich habe mich lange gesträubt für das von dir genannte Array eine "Doppelter-Eintrag-Löschen" - Funktion einzusetzen, weil ich die Ursache dafür finden wollte.

Da dieser Fehler bei mir nicht auftrat, habe ich mich damit schwer getan...  :(

Sei es drum: Nach langem Suchen in diversen Perl-Foren habe ich eine Funktion aufgetan, die angeblich auf einem Raspberry Pi 2 bis zu 2,56 Millionen Einträge pro Sekunde! vergleichen können soll.

Ich denke dies ist schnell genug um fhem nicht lange zu blocken. Da diese ohnehin nur beim Initialisieren - also bei Systemstart -  aufgerufen wird, dürfte es keine Probleme geben.

Darüber hinaus habe ich mal die Log-Meldungen für die verbose=5 - Stufe bereinigt, so dass diese wesentlich besser lesbar sind.

Und was soll ich sagen... Plötzlich fällt mir ins Auge, dass da noch ein Wert ist, den wir bisher nicht ausgelesen haben...
Es gibt also noch ein paar Readings mehr... Aber fragt mich bitte nicht wozu DIE gut sein sollen.
Für mich haben die NULL Informationswert.

Vielleicht habt Ihr ja eine Ahnung.


Also die Bitte an Euch:
a) Neues Modul einspielen (Version 12146)
b) verbose = 5 setzen
c) "shutdown restart" ausführen
d) Log-Eintrag nach Initialisierung auf doppelte Einträge hin untersuchen.
e) Bitte hier Rückmeldung geben.

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

fruemmel

Zitat von: Sailor am 12 September 2016, 20:55:59
Also die Bitte an Euch:
a) Neues Modul einspielen (Version 12146)
b) verbose = 5 setzen
c) "shutdown restart" ausführen
d) Log-Eintrag nach Initialisierung auf doppelte Einträge hin untersuchen.
e) Bitte hier Rückmeldung geben.

Gruss
    Sailor
Hallo Sailor,

es scheint jetzt zu funktionieren. Beim Init kommen die Einträge natürlich weiterhin mehrfach, aber die Events anschließend aufgrund der entfernten Duplikate nicht mehr.
Hier nur mal ein Ausschnitt, wie bei mir das Log nach dem Starten aussieht:
2016.09.14 11:12:24 5: mykm200______________________________________________________________________________________________________________________
2016.09.14 11:12:24 5: mykm200 : km200 - decryptData1 - decipher_len                : 130
2016.09.14 11:12:24 5: mykm200 : km200 - decryptData1 - deciphertext                : {"id":"/system/sensors/temperatures/outdoor_t1","type":"floatValue","writeable":0,"recordable":1,"value":23.7,"unitOfMeasure":"C"}
2016.09.14 11:12:24 5: mykm200 : km200_ParseHttpResponseInit - value found for      : /system/sensors/temperatures/outdoor_t1
2016.09.14 11:12:24 5: mykm200 : km200_ParseHttpResponseInit - id                   : /system/sensors/temperatures/outdoor_t1
2016.09.14 11:12:24 5: mykm200 : km200_ParseHttpResponseInit - type                 : floatValue
2016.09.14 11:12:24 5: mykm200 : km200_ParseHttpResponseInit - value                : 23.7
2016.09.14 11:12:24 4: mykm200 : The following Service can be read                  : /system/sensors/temperatures/outdoor_t1
2016.09.14 11:12:24 5: mykm200______________________________________________________________________________________________________________________
2016.09.14 11:12:24 5: mykm200 : km200 - decryptData1 - decipher_len                : 130
2016.09.14 11:12:24 5: mykm200 : km200 - decryptData1 - deciphertext                : {"id":"/system/sensors/temperatures/outdoor_t1","type":"floatValue","writeable":0,"recordable":1,"value":23.7,"unitOfMeasure":"C"}
2016.09.14 11:12:24 5: mykm200 : km200_ParseHttpResponseInit - value found for      : /system/sensors/temperatures/outdoor_t1
2016.09.14 11:12:24 5: mykm200 : km200_ParseHttpResponseInit - id                   : /system/sensors/temperatures/outdoor_t1
2016.09.14 11:12:24 5: mykm200 : km200_ParseHttpResponseInit - type                 : floatValue
2016.09.14 11:12:24 5: mykm200 : km200_ParseHttpResponseInit - value                : 23.7
2016.09.14 11:12:24 4: mykm200 : The following Service can be read                  : /system/sensors/temperatures/outdoor_t1

Insgesamt kommen die Einträge bei mir für das Beispiel des outdoor_t1 Readings sieben mal.

Durch die Änderung ist jetzt auch das Pollen viel schneller, da er eben erheblich weniger Readings setzt. Ist übrigens Version 12148 (nicht 12146).

Vielen Dank !!

PS: Ich hatte zum Testen in der alten Version die Namen der Readings als key in ein hash geschrieben und nur dann in @KM200_RespondingServices übertragen, wenn der key im hash noch nicht vorhanden war. Das Resultat ist aber natürlich das gleiche und die Performance dürfte hier keine Rolle spielen.

Gruß Wolfgang

Sailor

#1311
Hallo Wolfgang

Zitat von: fruemmel am 14 September 2016, 11:28:17
es scheint jetzt zu funktionieren. Beim Init kommen die Einträge natürlich weiterhin mehrfach, aber die Events anschließend aufgrund der entfernten Duplikate nicht mehr.
Hier nur mal ein Ausschnitt, wie bei mir das Log nach dem Starten aussieht:

Tja, es funktioniert aber warum er mehrfach ein und denselben Wert einliest ist mir nach wie vor ein Rätsel.  :o
Zumindest weiß ich jetzt, dass ich im Bereich der Initialisierung weitersuchen muss.  ::)

Es gibt Rätsel auf der Welt...


Obwohl... Wie viele Attribute hast du für das km200 gesetzt? Genau so viele, wie ein und derselbe Wert mehrfach eingelesen wird?

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

fruemmel

Hallo Sailor,

ich habe 8 Attribute gesetzt. Das hat aber wohl nichts mit dem Problem zu tun. Ich habe ein paar zusätzliche Zeilen eingebaut, um das Verhalten zu loggen.
Daraus resultiert eine Datei, in der immer beim Neustart von FHEM festgehalten wird, welche Services vom km200 erkannt werden, und mit wie vielen
Wiederholungen. Man sieht daran auch, dass das Verhalten nicht bei jedem Neustart identisch ist. Vielleicht kannst Du etwas mit den Daten anfangen.
Teilweise werden Services bis zu 13 Mal erkannt. Die Gesamtzahl der Service schwankt bei mir incl. Wiederholungen zwischen 120 und 493.
Anscheinend sind es immer entweder um die 130 oder um die 490. Das ist auffällig.

Protokolliert werden die Daten nach den Original-Programmzeilen (ca. Zeilennr. 2018)
### Add service to the list of responding services
push (@KM200_RespondingServices, $Service);


Gruß Wolfgang

h3llsp4wn

Hallo Sailor,

bei mir sind im Init die Werte auch noch doppelt - allerdings fehlen mir nun auch Werte, wie z.B. der gesamte holidayModes-Block, der nicht mehr gelesen wird?
Ich bin mir aber auch nicht sicher seit welcher Version das der Fall ist. Vielleicht "biegt" er bei den Pfaden auch falsch ab ...

h3ll


bumbumb

wie kann ich den die Werte aus dem Readings in einen Dummy bzw. auslesen.

Sailor

Zitat von: fruemmel am 15 September 2016, 12:30:35
Hallo Sailor,

ich habe 8 Attribute gesetzt. Das hat aber wohl nichts mit dem Problem zu tun. Ich habe ein paar zusätzliche Zeilen eingebaut, um das Verhalten zu loggen.
Daraus resultiert eine Datei, in der immer beim Neustart von FHEM festgehalten wird, welche Services vom km200 erkannt werden, und mit wie vielen
Wiederholungen. Man sieht daran auch, dass das Verhalten nicht bei jedem Neustart identisch ist. Vielleicht kannst Du etwas mit den Daten anfangen.
Teilweise werden Services bis zu 13 Mal erkannt. Die Gesamtzahl der Service schwankt bei mir incl. Wiederholungen zwischen 120 und 493.
Anscheinend sind es immer entweder um die 130 oder um die 490. Das ist auffällig.

Protokolliert werden die Daten nach den Original-Programmzeilen (ca. Zeilennr. 2018)
### Add service to the list of responding services
push (@KM200_RespondingServices, $Service);


Gruß Wolfgang
Hallo fruemmel

Das ist doch irre!

493! Werte... :o

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

Sailor

Zitat von: h3llsp4wn am 15 September 2016, 13:18:44
Hallo Sailor,

bei mir sind im Init die Werte auch noch doppelt - allerdings fehlen mir nun auch Werte, wie z.B. der gesamte holidayModes-Block, der nicht mehr gelesen wird?
Ich bin mir aber auch nicht sicher seit welcher Version das der Fall ist. Vielleicht "biegt" er bei den Pfaden auch falsch ab ...

h3ll
Kannst du den holiday Mode block mit dem get-Befehl Manuel einlesen?

Gruß
   Sailor

Gesendet von meinem SM-T819 mit Tapatalk

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

stratege-0815

Hallo zusammen,
seit dem letzten Wochenende habe ich auch endlich die Kommunikation mit FHEM hergestellt.
Ich habe die Codeschnipsel aus dem Wiki verwendet.
Nun sehe ich die Daten meiner GB152 über ein bei Ebay ersteigertes KM50 Modul
z.B. Temperaturen

Ich habe hier den Thread mal grob überflogen, gibt es irgendwo eine Sammlung eurer Codes mit denen Ihr die ganzen Dialoge baut? Oder Werte an die Heizung zurückschreibt? Interessieren würden mich die Wochenprogramme interessieren oder auch die Modi: Tag/Nacht/Auto

Gruß
Jan

Elektrolyt

Hallo Fhem Freunde,

auch ich bedanke mich sehr für die viele Arbeit, die schon geleistet wurde!

Ich würde ebenfalls sehr gerne meine Zirkulationspumpe bei Bedarf über Fhem ein- und ausschalten können.
Die Frage kam im April schon einmal auf: https://forum.fhem.de/index.php/topic,25540.msg441583.html#msg441583
ZitatIch werde das mal untersuchen.
Ggf. ist die Gültigkeitsabfrage nach den möglichen Werten Blödsinn...
Hat sonst noch Jemand die gleiche Problematik?
Gruss
   Sailor

Wenn Ich bei meiner GB172 RC300 ein Zeitprogramm für die Zirkulationspumpe aktiviere, dann bekomme ich eine Liste von IDs mit den Wochen-Schaltzeiten.
Wenn ich aber die Zirkulationspumpe am RC300 auf "Dauer EIN" konfiguriere, dann gibt es keine ID für /dhwCircuits/dhw1/switchPrograms/cp mehr. (nach erneutem Sounding)

Ich habe vergeblich etwas wie:
set /dhwCircuits/dhw1/switchPrograms/cp high
probiert, was einen Fhem Programm-Abbruch verursacht.

Klar, man könnte die CP auch per Relais von Fhem aus steuern - aber eleganter wär's natürlich mit dem km200 Modul.

Grüße, 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...

Sailor

Hallo Jens

Zitat von: Elektrolyt am 10 Oktober 2016, 17:28:28
Ich habe vergeblich etwas wie:
set /dhwCircuits/dhw1/switchPrograms/cp high
probiert, was einen Fhem Programm-Abbruch verursacht.

Also das wird tatsächlich so nichts!
Entweder man deaktiviert den Betriebsodus der Heizung oder man löscht und setzt alle Programmzeiten.

AQber fhem sollte dennoch nicht bei Falscheingabe abstürzen.

Magst du bitte nochmal einen Absturz provozieren und mir die letzten relevanten Zeilen aus dem Log - File posten?

Danke!

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