Buderus ems an fhem

Begonnen von Lorenz, 26 Juli 2014, 14:09:21

Vorheriges Thema - Nächstes Thema

bgewehr

Ich habe die classdef im Verdacht, aber ich verstehe nur Bahnhof... Daymode klappt, alles andere nicht.


Sent from my iPhone using Tapatalk
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

Lorenz

Hallo Bernd,

ich denke, es liegt an den letzten Änderungen an ECMD, wahrscheinlich an: http://forum.fhem.de/index.php/topic,21515.msg197863.html#msg197863 und der Aussage, dass der match auf die gesamte Sendung vom physikalischen Geräte passen muss. Das kann dann nicht funktionieren. Ich werde darüber nachdenken. Vielleicht ist es auch einfacher, ein kleines, spezielles Modul zu schreiben... Dann entkoppelt man sich von derartigen Einflüssen. Zwischenzeitlich werde ich die Updates für das Modul erst einmal sperren.

Gruss Lorenz
. . . . . .
Fhem auf NUC7i3BNH, Raspberry Pi B und B+, Raspberry Pi 2 B, Peripherie: FB7490, 1-Wire, Homematic, FS20, Lampen, Briefkasten, Klingel, Sonos, GardenaSmart, Unifi, Gaszähler an GPIO, Stromzähler EFR SGM-C4, Heizung Buderus GBH 172, Alarmanlage EMA und BMA von Bosch

bgewehr

#17
Hallo, Lotenz,

ich habe das hier mit Boris diskutiert: http://forum.fhem.de/index.php?topic=27162

Mit dem Split \n Parameter kann man die Telegramme trennen. Ich krieg's trotzdem nicht hin, aber es soll angeblich funktionieren.

Das mit Split definierte Trennzeichen wird aus dem Telegramm entfernt.

Bin leider kein Regex Experte, kannst Du nochmal nachsehen, ob Du den Fehler erkennst?

Dank Dir!


Sent from my iPhone using Tapatalk
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

Lorenz

Hallo Bernd,

nach den Hinweisen von Boris und Dir habe ich das getestet, die Attribute split \n und timeout 3 gesetzt und die classdef angepasst.
Wichtig war: Das Trennzeichen wird entfernt, daher muss das auch aus der classdef raus. Dabei habe ich auch die eckigen Klammern entfernt und noch einige kleine Korrekturen eingebracht.
Und mit dieser .classdef läuft es wieder:

params ww_currenttemp heater_currenttemp returnflow_currenttemp outdoor_temp heaterpump_currentmodulation ww_targettemp heater_targettemp warmwaterpreparationactive zirkpumpactive flameactive heateractive ignitionactive heater_pumpactive 3wayonww ww_daymode burner_targetmodulation burner_currentmodulation flamecurrent heater_maintenancedue systemtime
reading ww_currenttemp match "ww currenttemperature (\d+.\d)"
reading ww_currenttemp postproc { s/ww currenttemperature (\d+.+)/$1/;; $_ }
reading heater_currenttemp match "heater currenttemperature (\d+.\d)"
reading heater_currenttemp postproc { s/heater currenttemperature (\d+.+)/$1/;; $_ }
reading returnflow_currenttemp match "returnflow currenttemperature (\d+.\d)"
reading returnflow_currenttemp postproc { s/returnflow currenttemperature (\d+.+)/$1/;; $_ }
reading outdoor_temp match "outdoor currenttemperature (\d+.\d)"
reading outdoor_temp postproc { s/outdoor currenttemperature (\d+.+)/$1/;; $_ }
reading heaterpump_currentmodulation match "heaterpump currentmodulation (\d+)"
reading heaterpump_currentmodulation postproc { s/heaterpump currentmodulation (\d+)/$1/;; $_ }
reading ww_targettemp match "ww targettemperature (\d+.\d)"
reading ww_targettemp postproc { s/ww targettemperature (\d+.+)/$1/;; $_ }
reading heater_targettemp match "heater targettemperature (\d+)"
reading heater_targettemp postproc { s/heater targettemperature (\d+)/$1/;; $_ }
reading warmwaterpreparationactive match "warmwaterpreparationactive (on|off)"
reading warmwaterpreparationactive postproc { s/warmwaterpreparationactive (on|off)/$1/;; $_ }
reading zirkpumpactive match "zirkpumpactive (on|off)"
reading zirkpumpactive postproc { s/zirkpumpactive (on|off)/$1/;; $_ }
reading flameactive match "flameactive (on|off)"
reading flameactive postproc { s/flameactive (on|off)/$1/;; $_ }
reading heateractive match "heateractive (on|off)"
reading heateractive postproc { s/heateractive (on|off)/$1/;; $_ }
reading ignitionactive match "ignitionactive (on|off)"
reading ignitionactive postproc { s/ignitionactive (on|off)/$1/;; $_ }
reading heater_pumpactive match "heater pumpactive (on|off)"
reading heater_pumpactive postproc { s/heater pumpactive (on|off)/$1/;; $_ }
reading 3wayonww match "3wayonww (on|off)"
reading 3wayonww postproc { s/3wayonww (on|off)/$1/;; $_ }
reading ww_daymode match "ww daymode (on|off)"
reading ww_daymode postproc { s/ww daymode (on|off)/$1/;; $_ }
reading burner_targetmodulation match "burner targetmodulation (\d+)"
reading burner_targetmodulation postproc { s/burner targetmodulation (\d+)/$1/;; $_ }
reading burner_currentmodulation match "burner currentmodulation (\d+)"
reading burner_currentmodulation postproc { s/burner currentmodulation (\d+)/$1/;; $_ }
reading flamecurrent match "flamecurrent (\d+)"
reading flamecurrent postproc { s/flamecurrent (\d+)/$1/;; $_ }
reading heater_maintenancedue match "heater maintenancedue (no|yes)"
reading heater_maintenancedue postproc { s/heater maintenancedue (no|yes)/$1/;; $_ }
reading systemtime match "systemtime (\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)"
reading systemtime postproc { s/systemtime (\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)/$1/;; $_ }


Gruss Lorenz
. . . . . .
Fhem auf NUC7i3BNH, Raspberry Pi B und B+, Raspberry Pi 2 B, Peripherie: FB7490, 1-Wire, Homematic, FS20, Lampen, Briefkasten, Klingel, Sonos, GardenaSmart, Unifi, Gaszähler an GPIO, Stromzähler EFR SGM-C4, Heizung Buderus GBH 172, Alarmanlage EMA und BMA von Bosch

bgewehr

Mist. Ihr seid alle besser als ich!!! Bleibt mir nur eins übrig:
DANKE!


Sent from my iPhone using Tapatalk
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

Lorenz

Gerne - Du solltest es aber mit Deinem System noch ausgiebig testen, ich hatte nur ein paar Minuten Zeit. Mit Timeout 3 bin ich mir nicht sicher, dass habe ich so von Dir übernommen. Eventuell muss da noch justiert werden.

Gruss Lorenz
. . . . . .
Fhem auf NUC7i3BNH, Raspberry Pi B und B+, Raspberry Pi 2 B, Peripherie: FB7490, 1-Wire, Homematic, FS20, Lampen, Briefkasten, Klingel, Sonos, GardenaSmart, Unifi, Gaszähler an GPIO, Stromzähler EFR SGM-C4, Heizung Buderus GBH 172, Alarmanlage EMA und BMA von Bosch

bgewehr

Läuft!
Ich musste aber meinen Define neu anpassen, weil Du inzwischen offensichtlich noch mehr readings verwendest.

Daher hier einmal der aktuell funktionierende Stand der Dinge:

Define:

define EMS ECMD telnet 192.168.178.45:7778
attr EMS classdefs ems_messages=./FHEM/emsmessages.classdef
attr EMS split \n

define EMSClient ECMDDevice ems_messages ww_currenttemp heater_currenttemp returnflow_currenttemp outdoor_temp heaterpump_currentmodulation ww_targettemp heater_targettemp warmwaterpreparationactive zirkpumpactive flameactive heateractive ignitionactive heater_pumpactive 3wayonww ww_daymode burner_targetmodulation burner_currentmodulation flamecurrent heater_maintenancedue systemtime
attr EMSClient IODev EMS
attr EMSClient event-on-change-reading ww_currenttemp:0.3,heater_currenttemp:0.3,returnflow_currenttemp:0.3,outdoor_temp:0.3,heaterpump_currentmodulation,ww_targettemp:0.3,heater_targettemp:0.3,warmwaterpreparationactive,zirkpumpactive,flameactive,heateractive,ignitionactive,heater_pumpactive,3wayonww,ww_daymode,burner_targetmodulation,burner_currentmodulation,flamecurrent


emsmessages.classdef (als Datei in FHEM-Verzeichnis legen!):

params ww_currenttemp heater_currenttemp returnflow_currenttemp outdoor_temp heaterpump_currentmodulation ww_targettemp heater_targettemp warmwaterpreparationactive zirkpumpactive flameactive heateractive ignitionactive heater_pumpactive 3wayonww ww_daymode burner_targetmodulation burner_currentmodulation flamecurrent heater_maintenancedue systemtime
reading ww_currenttemp match "ww currenttemperature (\d+.\d)"
reading ww_currenttemp postproc { s/ww currenttemperature (\d+.+)/$1/;; $_ }
reading heater_currenttemp match "heater currenttemperature (\d+.\d)"
reading heater_currenttemp postproc { s/heater currenttemperature (\d+.+)/$1/;; $_ }
reading returnflow_currenttemp match "returnflow currenttemperature (\d+.\d)"
reading returnflow_currenttemp postproc { s/returnflow currenttemperature (\d+.+)/$1/;; $_ }
reading outdoor_temp match "outdoor currenttemperature (\d+.\d)"
reading outdoor_temp postproc { s/outdoor currenttemperature (\d+.+)/$1/;; $_ }
reading heaterpump_currentmodulation match "heaterpump currentmodulation (\d+)"
reading heaterpump_currentmodulation postproc { s/heaterpump currentmodulation (\d+)/$1/;; $_ }
reading ww_targettemp match "ww targettemperature (\d+.\d)"
reading ww_targettemp postproc { s/ww targettemperature (\d+.+)/$1/;; $_ }
reading heater_targettemp match "heater targettemperature (\d+)"
reading heater_targettemp postproc { s/heater targettemperature (\d+)/$1/;; $_ }
reading warmwaterpreparationactive match "warmwaterpreparationactive (on|off)"
reading warmwaterpreparationactive postproc { s/warmwaterpreparationactive (on|off)/$1/;; $_ }
reading zirkpumpactive match "zirkpumpactive (on|off)"
reading zirkpumpactive postproc { s/zirkpumpactive (on|off)/$1/;; $_ }
reading flameactive match "flameactive (on|off)"
reading flameactive postproc { s/flameactive (on|off)/$1/;; $_ }
reading heateractive match "heateractive (on|off)"
reading heateractive postproc { s/heateractive (on|off)/$1/;; $_ }
reading ignitionactive match "ignitionactive (on|off)"
reading ignitionactive postproc { s/ignitionactive (on|off)/$1/;; $_ }
reading heater_pumpactive match "heater pumpactive (on|off)"
reading heater_pumpactive postproc { s/heater pumpactive (on|off)/$1/;; $_ }
reading 3wayonww match "3wayonww (on|off)"
reading 3wayonww postproc { s/3wayonww (on|off)/$1/;; $_ }
reading ww_daymode match "ww daymode (on|off)"
reading ww_daymode postproc { s/ww daymode (on|off)/$1/;; $_ }
reading burner_targetmodulation match "burner targetmodulation (\d+)"
reading burner_targetmodulation postproc { s/burner targetmodulation (\d+)/$1/;; $_ }
reading burner_currentmodulation match "burner currentmodulation (\d+)"
reading burner_currentmodulation postproc { s/burner currentmodulation (\d+)/$1/;; $_ }
reading flamecurrent match "flamecurrent (\d+)"
reading flamecurrent postproc { s/flamecurrent (\d+)/$1/;; $_ }
reading heater_maintenancedue match "heater maintenancedue (no|yes)"
reading heater_maintenancedue postproc { s/heater maintenancedue (no|yes)/$1/;; $_ }
reading systemtime match "systemtime (\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)"
reading systemtime postproc { s/systemtime (\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)/$1/;; $_ }


Nochmals vielen Dank!
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

Lorenz

Ich habe mir das Auswerteverhalten noch einmal genauer angeschaut. Es gibt bei mir (fast) keine zerstückelten Informationen mehr. Auf der Konsole sind die Fehler auch weg. Allerdings habe ich das mit dem Timeout Attribut verwechselt. Boris meinte ja partial, timeout ist standardgemäß auf 3, also kann man das auch weglassen. Partial hatte ich aber nicht gesetzt, nur split wie angegeben. In ganz seltenen Fällen wird das reading von 3wayonww zerteilt. Ich habe zusätzlich jetzt partial 3 probiert -> keine Veränderung. Aber da die Information derart oft wiederholt wird, sollte das nicht stören. Letztendlich finde ich das Ergebnis viel besser als vorher. Das mag aber bei mehr readings anders aussehen?! Bei mir fehlt ja der ems-plus Teil noch, also keine Infos von hk1 und Solar.

Der andere Thread kann dann eigentlich auf gelöst ...

LG
. . . . . .
Fhem auf NUC7i3BNH, Raspberry Pi B und B+, Raspberry Pi 2 B, Peripherie: FB7490, 1-Wire, Homematic, FS20, Lampen, Briefkasten, Klingel, Sonos, GardenaSmart, Unifi, Gaszähler an GPIO, Stromzähler EFR SGM-C4, Heizung Buderus GBH 172, Alarmanlage EMA und BMA von Bosch

tommi

Moin,

hab das ganze mal nachgebaut und leider funktioniert es nur bedingt. Die grüne LED am EMS-Gateway blinkt regelmäßig -->  gutes Zeichen
Manueller Aufruf von collectord funktioniert und es kommen hex Zeichen an wie diese hier:

Zitat
sudo collectord -u ems -p ems -f -d all tcp:192.168.178.155:7950
IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e 0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64 0xa 00
Error: End of file
IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e 0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64 0xa 00
Error: End of file
IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e 0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64 0xa 00
Error: End of file
IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e 0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64 0xa 00
Error: End of file
IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e 0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64 0xa 00
Error: End of file
IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e 0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64 0xa 00
Error: End of file
IO: Got bytes 0x45 0x52 0x52 0x4f 0x52 0x3a 0x20 0x43 0x6f 0x6e 0x6e 0x65 0x63 0x74 0x69 0x6f 0x6e 0x20 0x62 0x6c 0x6f 0x63 0x6b 0x65 0x64 0xa 00
Error: End of file

Mehr funktioniert leider nicht. Die div. Threads und zu dem Thema haben leider nicht geholfen. Jedoch habe ich auch keine RC 35 o.ä. Den Bus habe ich direkt am GB152 angeklemmt. Kann es sein dass es ohne RC 35 o.ä. gar  nicht funktioniert????


Peter

ZitatEMS-Gateway blinkt regelmäßig -->  gutes Zeichen

Hi tommi, wenns blinkt besteht keine Verbindung zum EMS - Bus.
LED muss grün dauerleuchten.

Gruß Peter

bgewehr

Das kann ich so nicht bestätigen! Grün blinkt bei mir im Takt der eingehenden Daten! Hast Di die ethersex selbst gemacht oder das fertige Paket aus dem Forum verwendet?


Sent from my iPhone using Tapatalk
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

tommi

Hab die ethersex anhand der Anleitung im EMS-Wiki selbst erstellt. Die grüne LED blinkt im Takt der Daten denke ich. So alle 3 - 6 Sekunden

bgewehr

Es gab eine fertige Firmware im Forum, mit der läuft's bei mir.


Sent from my iPhone using Tapatalk
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

bgewehr

Das Blinken kann ich definitiv bestätigen! Sieht fürchte eher so aus, als würden die Telegramme nicht sauber decodiert -> ethersex!!


Sent from my iPhone using Tapatalk
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

bgewehr

fürchte --> für mich... (Immer diese Rechtschreibkorrektur!)


Sent from my iPhone using Tapatalk
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868