Neues Buderus KM Modul mit neuen Features 79_BDKM.pm

Begonnen von arnoaugustin, 15 Februar 2016, 12:54:20

Vorheriges Thema - Nächstes Thema

Jorge3711

Zitat von: furban am 17 Februar 2016, 21:43:09

Nun habe ich aber den Effekt das sich z.B. die Uhrzeit nicht verändert.
DateTime 2016-02-17T15:21:18 2016-02-17 15:22:10
Das war genau die Zeit als ich FHEM neu gestartet hatte

Wird lt.


get myBDKM INFO


beim Start nur einmal geholt.

Zitat
Noch komischer bei der Außentemperatur
OutdoorTemp 3.4 2016-02-17 17:19:17
Die hat sich also angeblich seit 4 Stunden nicht verändert.
Richtig ist aber aktuell eigentlich
/system/sensors/temperatures/outdoor_t1 3 2016-02-17 21:33:13
Das Delta für die Außentemperatur liegt im Standard bei 1.0, daher keine Änderung.

Zitat
Die Raumtemperatur fehlt ganz
/heatingCircuits/hc1/roomtemperature 24.3 2016-02-17 21:38:23

Steht nicht in den RC300DEFAULTS, also manuell in die PollIds eintragen. Glaub ich.

arnoaugustin

#16
Zitat von: furban am 17 Februar 2016, 21:43:09
Ja wenn man es richtig macht klappt es besser. An der Stelle hatte ich das glatt übersehen. Beim Logfile hatte ich es ja schon richtig
Jetzt sieht das schon richtig gut aus.

Nun habe ich aber den Effekt das sich z.B. die Uhrzeit nicht verändert.
DateTime 2016-02-17T15:21:18 2016-02-17 15:22:10
Das war genau die Zeit als ich FHEM neu gestartet hatte

Noch komischer bei der Außentemperatur
OutdoorTemp 3.4 2016-02-17 17:19:17
Die hat sich also angeblich seit 4 Stunden nicht verändert.
Richtig ist aber aktuell eigentlich
/system/sensors/temperatures/outdoor_t1 3 2016-02-17 21:33:13

Die Raumtemperatur fehlt ganz
/heatingCircuits/hc1/roomtemperature 24.3 2016-02-17 21:38:23
Schön das jemand aufmerksam testet und auch guckt was passiert  ;)
Außentemperatur ist ok, da in den Defaults (die du gesetzt hast) steht:
   /system/sensors/temperatures/outdoor_t1:1:1.0:OutdoorTemp
Das heißt: Jeden Zyklus Wert holen, aber nur Reading triggern, wenn Differenz größer 1.0 Grad.
von 3.4 nach 3 sinds weniger als 1 Grad.
Passt eigentlich alles.
Wenn du den Wert IMMER (Also jeden) willst:
   /system/sensors/temperatures/outdoor_t1:1:0:OutdoorTemp
Wenn du nur ab 0.2 Grad differenz willst:
   /system/sensors/temperatures/outdoor_t1:1:0.2:OutdoorTemp
Und wenn du nur Änderungen willst:
   /system/sensors/temperatures/outdoor_t1:1::OutdoorTemp

Mit dem "get myBDKM INFO" siehst du auch was für jede ID eingestellt ist.

OK  :-[ was nich passt ist, dass nur weil genau dieses Thermometer bei mir einfach laufend schwankt und das schlechteste im ganzen Haus ist (wahrscheinlich weils Kabel zum Außenfühler >10m lang ist) ich das in die Defaults so rein schreib.
Das ist mein Problem aber nicht Euer Problem. Ich stell das mal in den Defaults auf 0.5 Grad (mehr Genauigkeit hat das sowieso nicht) und setzt es bei mir in meinem Configfile auf 1 Grad...

DateTime is auch ok, da:
  /gateway/DateTime:0:0:DateTime
Erste 0: Nur beim Start holen
Was soll man die Uhrzeit immer auslesen, wenn die normal immer OK ist (Man kann sich auch so die Flashspeicher tot schrubben. Und Netz, Gateway und dem ems bus von der Heizung wirds auch nie langweilig  ;) ).
Momentan kommt die Uhrzeit beim Start einmal, dann kann man im Logfile sehen, ob sie noch ok ist.
Wenn Du sie gar nicht willst:
  /gateway/DateTime:::DateTime
Wenn Du Wert auf dauerhaftes Pollen und Loggen der Uhrzeit legst:
/gateway/DateTime:1:0:DateTime  ;)

/heatingCircuits/hc1/roomtemperature
Die kenn ich gar nicht. Steht also auch in keinen Defaults. Was ist das für ein Wert? Hast Du Zimmertemperaturfühler? Oder Bedieneinheit im Zimmer?
Ich kann das noch aufnehmen für die RC300DEFAULTS - aber was ist das für ein Wert? Hast Du echt 24.3 Grad im Raum?
Aber probier bei dir bei den PollIds einfach:
/heatingCircuits/hc1/roomtemperature:1:0.5:RoomTemperature
oder
/heatingCircuits/hc1/roomtemperature:1:0.5:RoomTemp
oder wie auch immer.
Also jedes mal holen, triggern (loggen) wenn Delta größer 0.5.



Ich hoffe das mit den PollIds ist jedem klar. Damit kann man sich eigentlich genau seine Wünsche erfüllen.
Vlt. übertreibe ich es ja mit der Datensparsamkeit was die Defaults an geht. Aber erst mal lieber zu wenig als zu viel. Wer alles oder einfach nur mehr will kann beliebig ändern.

Schönen Abend Euch allen zusammen und viel Spass beim finden der optimalen persönlichen Einstellung   ;D

Arno



Jorge3711

Zitat von: arnoaugustin am 17 Februar 2016, 12:20:28

Ich hab hier ein paar Module mit userReadings. Bei mir ploppt da kein Editor hoch. In der Eingabezeile kannst Du es ja jetzt auch schon editieren (Musst evtl. die "\" weg lassen und alles in eine Zeile schreiben.)
Wenn ich den Editor aktiviere:
attr   <DEIN_FHEMWEB_NAME> JavaScripts codemirror/fhem_codemirror.js
dann kann ich auf DEF klicken und die Definition ändern. Für attribute tut das nicht (bei mir) auch nicht für userReadings. Das ist ja ein Feature von FHEMWEB. Weiß hier jemand was dazu?
Bei welchem Modul geht das bei Dir? Würde weiter helfen, weil ich denke, dass es wenn dann nur ein Flag ist oder so (Das kommt dann praktisch auf irgend eine Weise von selber.)

Das ist kein Modul, sondern ein 1-Wire Device. Habe es eben auch mit einem DUMMY getestet. Dort popt der Editor bei auf, wenn ich ein UserReadings erzeugen möchte.


Zitat
Ja, das hatte ich auch schon. Für mich sieht das aber irgendwie nach dem Gateway aus. Ich probiere deshalb jetzt 3x den Wert zu setzen und zu lesen (Hattest du neuste Version? 15.2.2016 15:40?). Mir kommt es so vor als müsste da erst irgendwas auf wachen. Denn wenn ich ihn einmal gesetzt habe, dann reagiert da Gateway plötzlich sofort. So ganz sauber tut das da nicht. Sobald ich das aber nachvollziehen kann werd ich das versuchen, z.B. durch Verzögerungen etc. zu umgehen. Wenn das wieder auftritt, dann könnte man zumindest feststellen, ob das Gateway selber nicht antwortet. Ich habe aber bemerkt, dass das Gateway den Wert schon richtig bekommen hat. Beim nächsten Poll ist das Reading auch ok.
Bitte mit der neusten Version testen.

Mit dem aufwachen könntest Du richtig liegen. Eben festgestellt, dass ein "get Buderus INFO" über das FHEM Eingabefeld gar keinen Output lieferte. Ne knappe Minute später kam der Output aber prompt.

Zitat
Nachtrag:
Hab nochmal ein neues Modul hin gehängt.

Probiere ich aus, ich bin mir gerade nicht sicher welche Version (kann ich die irgendwo auslesen?) ich aktiv habe.

Grüße Carsten

arnoaugustin

Zitat von: Jorge3711 am 18 Februar 2016, 09:58:16
Das ist kein Modul, sondern ein 1-Wire Device. Habe es eben auch mit einem DUMMY getestet. Dort popt der Editor bei auf, wenn ich ein UserReadings erzeugen möchte.


Mit dem aufwachen könntest Du richtig liegen. Eben festgestellt, dass ein "get Buderus INFO" über das FHEM Eingabefeld gar keinen Output lieferte. Ne knappe Minute später kam der Output aber prompt.

Probiere ich aus, ich bin mir gerade nicht sicher welche Version (kann ich die irgendwo auslesen?) ich aktiv habe.

Grüße Carsten
OK, das mit dem Dummy teste ich.
nach dem Starten dauert es immer bis zu einer Minute. Am Anfang sammelt er alles ein mal vom Gateway ein um zu sehen was das alles für IDs hat.
Wenn du gleich nach dem Start immer wieder get INFO machst, dann siehst du sogar wie die Liste länger wird.

arnoaugustin

Zitat von: arnoaugustin am 18 Februar 2016, 10:02:27
OK, das mit dem Dummy teste ich.
nach dem Starten dauert es immer bis zu einer Minute. Am Anfang sammelt er alles ein mal vom Gateway ein um zu sehen was das alles für IDs hat.
Wenn du gleich nach dem Start immer wieder get INFO machst, dann siehst du sogar wie die Liste länger wird.
Ich hab neue Version angehängt. Hast Deinen Editor für das PollIds Attribut.
War eigentlich so wie ich sagte (Ein Flag)

Jorge3711

Super, vielen Dank! Funktioniert und erleichtert die Eingabe doch erheblich  :)

furban

Zitat von: arnoaugustin am 17 Februar 2016, 23:15:28
/heatingCircuits/hc1/roomtemperature
Die kenn ich gar nicht. Steht also auch in keinen Defaults. Was ist das für ein Wert? Hast Du Zimmertemperaturfühler? Oder Bedieneinheit im Zimmer?
Ich kann das noch aufnehmen für die RC300DEFAULTS - aber was ist das für ein Wert? Hast Du echt 24.3 Grad im Raum?

Das ist der im RC300 integrierter Temperaturfühler. Das Ding hängt bei im Wohnzimmer und da heize ich mit einem Hoizkamin und auch gerne mal etwas wärmer.

Ich vermisse auch die Updates auf SystemWorkingTime.
Über den Wert berechne ich mir mit SystemWorkingTime*0.03l meinen Ölverbrauch und stelle das in einer Grafik da. So habe ich immer meinen Tankinhalt im Blick und das passt erstaunlich genau.

Alles weitere ist ok. Das mit den eigenen Pollings muss ich mir noch anschauen. War bisher auch zu faul mit das beim Sailor Modul Gedanken darüber zu machen und ja meine Logfiles sind sehr sehr groß. Aber auf die 8 GByte SD passt schon ein wenig was drauf und dann lösche ich halt mal wieder was.


1977er

Hallo arnoaugustin,

danke nochmal für Dein Modul.

Eine Sache, die mich bereits bei dem anderen KM200 Modul gestört hat - als Feature-Request an Dich formuliert: Könntest Du den Regex, der die Konfigdaten der IP Adresse prüft eventuell auf FQDNs ausweiten? Ich finde es immer sehr hässlich, wenn ich IP Adressen fest in Konfigdateien kodieren muss.

Könntest Du

$ip =~ m/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/ and
$1<256 and $2<256 and $3<256 and $4<256


bitte gegen etwas wie

$ip =~ m/(?=^.{1,253}$)(^(((?!-)[a-zA-Z0-9-]{1,63}(?<!-))|((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z]{2,63})$)/ or    # FQDN
$ip =~ m/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/                # IPv4


ersetzen?

Mein KM200 ist bei mir unter heizung.meinedomain.de erreichbar. Alles Weitere regelt ein DHCP Server. ;-)

Besten Dank im Voraus. :)

Disclaimer: untested StackOverflow Code

arnoaugustin

Zitat von: 1977er am 18 Februar 2016, 16:55:03
Hallo arnoaugustin,

danke nochmal für Dein Modul.

Eine Sache, die mich bereits bei dem anderen KM200 Modul gestört hat - als Feature-Request an Dich formuliert: Könntest Du den Regex, der die Konfigdaten der IP Adresse prüft eventuell auf FQDNs ausweiten? Ich finde es immer sehr hässlich, wenn ich IP Adressen fest in Konfigdateien kodieren muss.

Könntest Du

$ip =~ m/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/ and
$1<256 and $2<256 and $3<256 and $4<256


bitte gegen etwas wie

$ip =~ m/(?=^.{1,253}$)(^(((?!-)[a-zA-Z0-9-]{1,63}(?<!-))|((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\.)+[a-zA-Z]{2,63})$)/ or    # FQDN
$ip =~ m/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/                # IPv4


ersetzen?

Mein KM200 ist bei mir unter heizung.meinedomain.de erreichbar. Alles Weitere regelt ein DHCP Server. ;-)

Besten Dank im Voraus. :)

Disclaimer: untested StackOverflow Code
Mit Regex kann mans auch übertreiben....;-) Längenprüfungen muss man da ja nicht unbedingt mit rein machen....
Ich habs oben angehängt. Hast recht. Wenn der Nameserver hängt, dann hängt FHEM ;-)

arnoaugustin

Zitat von: furban am 18 Februar 2016, 14:50:13
Das ist der im RC300 integrierter Temperaturfühler. Das Ding hängt bei im Wohnzimmer und da heize ich mit einem Hoizkamin und auch gerne mal etwas wärmer.

Ich vermisse auch die Updates auf SystemWorkingTime.
Über den Wert berechne ich mir mit SystemWorkingTime*0.03l meinen Ölverbrauch und stelle das in einer Grafik da. So habe ich immer meinen Tankinhalt im Blick und das passt erstaunlich genau.

Alles weitere ist ok. Das mit den eigenen Pollings muss ich mir noch anschauen. War bisher auch zu faul mit das beim Sailor Modul Gedanken darüber zu machen und ja meine Logfiles sind sehr sehr groß. Aber auf die 8 GByte SD passt schon ein wenig was drauf und dann lösche ich halt mal wieder was.
Mit an die PollIds kleben:
  /heatSources/workingTime/totalSystem:1:0:SystemWorkingTime
oder statt der 1 eben wie oft du es haben willst.
verloren geht ja nichts.

Jorge3711

Seit der Version, die ich heute Mittag heruntergeladen habe, funktioniert Deine ReadingsGroup "Heizkreis Einstellung" -> Modus nicht mehr. Kein DropDown mehr, bei klick kommt Meldung "Unknown command Mode:, try help."

arnoaugustin

Zitat von: Jorge3711 am 18 Februar 2016, 22:19:21
Seit der Version, die ich heute Mittag heruntergeladen habe, funktioniert Deine ReadingsGroup "Heizkreis Einstellung" -> Modus nicht mehr. Kein DropDown mehr, bei klick kommt Meldung "Unknown command Mode:, try help."

Die oben angehängten sollten zusammen passen. Hatte den Mode in HeatMode umbenannt weil Mode so allgemein ist.

furban

Zitat von: arnoaugustin am 18 Februar 2016, 21:32:36
Mit an die PollIds kleben:
  /heatSources/workingTime/totalSystem:1:0:SystemWorkingTime
oder statt der 1 eben wie oft du es haben willst.
verloren geht ja nichts.

Jetzt habe ich mich dann auch mal mit diesem PollIds beschäftigt.
Direkt im Webfrontend kann ich die nicht setzten. Das scheint er den \ nicht zu vertragen. Wenn ich es direkt in der fhem.cfg eintrage, funktioniert es.
Ist das ein Problem auf meinem Raspi mit irgendwelchen ISO Einstellungen, oder ist das ein grundsätzliches Problem bei FHEM? Kann man da vielleicht ggfs. einen anderen Trenner nehmen?
Nun wollte ich gerade mal das Programm fürs Warmwasser anpassen. Das Warmwasserprogramm gibt es aber bei den Set Einstellungen nicht. Kommt das noch, oder muss ich mir das auch selbst irgendwie einbauen?
Ich habe das Warmwasserprogramm dann mit dem Sailor Modul angepasst. Da gibt es diese Set Kommandos und die funktionieren auch.

Gruß

Frank


arnoaugustin

Zitat von: furban am 19 Februar 2016, 08:36:41
Jetzt habe ich mich dann auch mal mit diesem PollIds beschäftigt.
Direkt im Webfrontend kann ich die nicht setzten. Das scheint er den \ nicht zu vertragen. Wenn ich es direkt in der fhem.cfg eintrage, funktioniert es.
Ist das ein Problem auf meinem Raspi mit irgendwelchen ISO Einstellungen, oder ist das ein grundsätzliches Problem bei FHEM? Kann man da vielleicht ggfs. einen anderen Trenner nehmen?
Nun wollte ich gerade mal das Programm fürs Warmwasser anpassen. Das Warmwasserprogramm gibt es aber bei den Set Einstellungen nicht. Kommt das noch, oder muss ich mir das auch selbst irgendwie einbauen?
Ich habe das Warmwasserprogramm dann mit dem Sailor Modul angepasst. Da gibt es diese Set Kommandos und die funktionieren auch.

Gruß

Frank
Die Trenner werden vom FHEM unterstützt, um aus einer Zeile mehrere machen zu können. Da habe ich keinen Einfluss drauf, das müsstest Du wo anders posten. Aber du kannst die Trenner weg lassen und alles in eine Zeile schreiben.

Das mit dem Warmwasserprogramm verstehe ich nicht. Wenn es im Gateway liegt, dann zeigt er es doch bei "get <NAME> INFO" an und dann kannst Du es doch in den PollIds eintragen, als:

/dhwCircuits/dhw1/switchPrograms/Eigenes/1-Mo:0::MeinWasserProg1-Mo \
/dhwCircuits/dhw1/switchPrograms/Eigenes/2-Tu:0::MeinWasserProg2-Di \
/dhwCircuits/dhw1/switchPrograms/Eigenes/3-We:0::MeinWasserProg2-Mu \
/dhwCircuits/dhw1/switchPrograms/Eigenes/4-Th:0::MeinWasserProg2-Do \
/dhwCircuits/dhw1/switchPrograms/Eigenes/5-Fr:0::MeinWasserProg2-Fr \
/dhwCircuits/dhw1/switchPrograms/Eigenes/6-Sa:0::MeinWasserProg2-Sa \
/dhwCircuits/dhw1/switchPrograms/Eigenes/7-Su:0::MeinWasserProg2-So \


Dann wird es einmal am Anfang in die Readings übernommen und bei Änderungen durch set/get

Nochmal zum klar stellen: Von selber wird gar nichts gepollt! Es wird nur gepollt, was auch in den PollIds steht. Die RC300DEFAULTS geben (so lala) eine Liste vor, damit man schon mal was "sieht".
Das Vorgehen ist eigentlich so:
Mit get INFO kann man nachschauen was es gibt. Und dann sollte man sich Gedanken machen, was man überhaupt wie haben möchte oder überhaupt braucht und wie die Readings heißen sollen.
Ich kann gerne eine "ALL" Option für die PollIds einbauen, dann wird ALLES IMMER geholt und tirggert IMMER ein Reading (so wie es das km200 macht). Spezielle Aliase gibt es dann nicht, weil ich ja gar nicht wissen kann was der Anwender möchte und was welches Gateway wie liefert.
Aber genau von der Variante wollte ich ja weg.
Gerade Werte wie die Programme sollte man eigentlich immer auf ":0::" stellen können, dann werden sie nur beim Start geholt, triggern da ein Reading, so das sie im FHEM sichtbar sind. Wenn man sie dann nur vom FHEM aus ändert bleiben die Readings auch immer aktuell - ohne dass sie laufend gelesen werden müssen. Alles andere würde Logfiles, FHEM, das Netz uns nur sinnlos beschäftigen.....

VG
Arno

furban

Zitat von: arnoaugustin am 19 Februar 2016, 10:03:08
Die Trenner werden vom FHEM unterstützt, um aus einer Zeile mehrere machen zu können. Da habe ich keinen Einfluss drauf, das müsstest Du wo anders posten. Aber du kannst die Trenner weg lassen und alles in eine Zeile schreiben.

Kann das auch an deiner Syntaxprüfung liegen das die den \ nicht akzeptiert? Mit Leerzeichen funktioniert es zwar, aber dann wird die Webseite immer breite rund breiter bis man nichts mehr sieht.

Zitat von: arnoaugustin am 19 Februar 2016, 10:03:08
Das mit dem Warmwasserprogramm verstehe ich nicht. Wenn es im Gateway liegt, dann zeigt er es doch bei "get <NAME> INFO" an und dann kannst Du es doch in den PollIds eintragen, als:

Angezeigt bekomme ich die Readings ja schon und auch meine Änderung wurde aktualisiert.
.... und jetzt schaue ich gerade noch mal auf mein FHEM und nun sind die Werte auch unter Set verfügbar. Da waren sie heute morgen nicht. Da scheint mein FHEM Restart von heute morgen noch was geändert zu haben

Zitat von: arnoaugustin am 19 Februar 2016, 10:03:08
Nochmal zum klar stellen: Von selber wird gar nichts gepollt! Es wird nur gepollt, was auch in den PollIds steht. Die RC300DEFAULTS geben (so lala) eine Liste vor, damit man schon mal was "sieht".
Das Vorgehen ist eigentlich so:
Mit get INFO kann man nachschauen was es gibt. Und dann sollte man sich Gedanken machen, was man überhaupt wie haben möchte oder überhaupt braucht und wie die Readings heißen sollen.
Ich kann gerne eine "ALL" Option für die PollIds einbauen, dann wird ALLES IMMER geholt und tirggert IMMER ein Reading (so wie es das km200 macht). Spezielle Aliase gibt es dann nicht, weil ich ja gar nicht wissen kann was der Anwender möchte und was welches Gateway wie liefert.
Aber genau von der Variante wollte ich ja weg.
Gerade Werte wie die Programme sollte man eigentlich immer auf ":0::" stellen können, dann werden sie nur beim Start geholt, triggern da ein Reading, so das sie im FHEM sichtbar sind. Wenn man sie dann nur vom FHEM aus ändert bleiben die Readings auch immer aktuell - ohne dass sie laufend gelesen werden müssen. Alles andere würde Logfiles, FHEM, das Netz uns nur sinnlos beschäftigen.....

VG
Arno

Das ist nun in der Tat Geschmacksfrage. Ich mülle lieber meine SD Karte voll, habe aber immer aktuelle Daten vor der Nase. Ich benutzt auch die Buderus App und die Buderus Webseite um Änderungen vorzunehmen und mache nicht alles aus FHEM.
Es gibt aber natürlich genügend Werte die man nicht alle 5min aktualisieren muss und auch schon gar kein Logeintrag dafür brauch.
So muss ich nun immer mal wieder mit "INFO" schauen welche Readings es überhaupt gibt und diese selbst einbauen.
Sehe auch gerade das ich z.B immer mal wieder gerne auf die Firmware Version schaue da die sich schon immer mal wieder ändert und dadurch ja neue Readings entstehen können. Aber die Firmware ist auch nicht bei den Defaulteinstellungen dabei.
Ich denke für mich ist der Sailor Ansatz besser alles verfügbare anzuzeigen und wer möchte nimmt raus was er nicht haben will.

Es ist nicht einfach

Gruß

Frank