Buderus ems an fhem

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

Vorheriges Thema - Nächstes Thema

Lorenz

Ich sehe momentan für mich keinen Bedarf.
Was ich an der Buderus noch bediene, ist lediglich Winter- und Sommerbetrieb und Urlaub und das geht über die RC300 ganz gut.
Den Rest habe ich an der Regelung und Steuerung mit den Zeitprogrammen mit den Erkenntnissen aus dem Plot der Werte so optimiert, dass mir kein weiterer Eingriff sinnvoll erscheint.

Alle Räume haben Fußbodenheizung mit Einzelraumregelung, hier wird raumweise noch bedient, aber das betrifft die Heizung ja nur indirekt.
Viel wichtiger wäre für mich die Implementierung der ems-plus Telegramme, da ich einige Parameter, wie z.B. den Solarteil noch nicht sehe. Aber das ist eine andere Baustelle und da kann ich nicht wirklich helfen.
Wenn ems-plus mal gehen sollte, dann könnte sich meine Meinung zum Bedienen vielleicht ändern, um weiter zu optimieren.

Andererseits möchte ich nicht elementare Bestandteile des Hauses von fhem abhängig machen. Das Haus soll auch ohne fhem funktionieren. So scheidet für mich generell ein automatisierter Eingriff in die zentrale Heizungssteuerung aus.

Einzig ein heute nicht möglicher Fernzugriff auf z.B. den Absenkbetrieb wäre denkbar, ist aber bei einem so trägen System wie der Fußbodenheizung für mich auch zu verschmerzen. Außerdem kann man das auch mit einem Zugriff auf die Einzelraumregelung lösen.

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

bgewehr

Ja, das ist eine klare und verständliche Position.

Ich muss zugeben, dass ich einen Hang zur Vollständigkeit habe und darüber gelegentlich die Notwendigkeitsfrage in den Hintergrund gerät.

Mit fällt ein, die Anwesenheitsüberwachung mit fhem mit EMS zur Absenkung zur nutzen, dazu müsste aber erstmal eine zuverlässige Anwesenheitsüberwachung in fhem entwickelt werden, alles bisherige ist ja lückenhaft.

Ansonsten ist ja immer der Rückgriff auf das PHP Webinterface im fhem iFrame möglich, den aber bekomme ich dann nicht über alternative Frontends direkt gesteuert.

Ich gebe Dir Recht, dass eine Heizung kein Gegenstand der ständigen Einstellung ist, sondern eher ein Gegenstand der ständigen Überwachung (wenn man Freude daran hat).

Also gut, lassen wir es erstmal dabei.


Gesendet von iPhone mit 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

nexulm

Hallo,

ich habe meine Bruders (RC35) Steuerung erfolgreich mit dem EMS-Adapter an einem AVR-Net-IO wie hier beschrieben laufen:
http://ems-gateway.myds.me/dokuwiki/doku.php?id=wiki:ems:net_io

Der ems-collector Daemon läuft bei mir auf einem BeagleBon Black mit dem letzten Stand von "Moosy" von hier:
https://github.com/moosy/ems-collector

Das dazugehörige Webfrontend von Mossy läuft auch fehlerfrei.
Nun habe ich die direkte Anbindung in FHEM versucht und wundere mich gerade darüber, dass ich keine Daten in der Logdatei sehe und auch mein Plot leer ist/bleibt.

Leider kann ich den Fehler in der Config noch nicht entdecken, deshalb füge ich sie nochmal bei und würde mich über Tipps und Hinweise freuen:
heizung.cfg
define EMS ECMD telnet localhost:7778
attr EMS classdefs ems_messages=/opt/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

define Filelog_emsClient FileLog /var/log/fhem/emsClient-%Y-%m.log emsClient:(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:).*
define SVG_Filelog_emsClient_1 SVG Filelog_emsClient:SVG_Filelog_emsClient_1:CURRENT
attr SVG_Filelog_emsClient_1 plotsize 1024,480
attr SVG_Filelog_emsClient_1 room Heizung


emsmessages.classdef
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/;; $_ }


gplot
# Created by FHEM/98_SVG.pm, 2014-07-26 09:15:52
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'ems Buderus'
set ytics
set y2tics
set grid y2tics
set ylabel "Leistung in %"
set y2label "Temperatur"

#FileLog 4:emsClient.heater_currenttemp\x3a:.*:
#FileLog 4:emsClient.outdoor_temp\x3a:.*:
#FileLog 4:emsClient.returnflow_currenttemp\x3a:.*:
#FileLog 4:emsClient.ww_currenttemp\x3a:.*:
#FileLog 4:emsClient.zirkpumpactive\x3a:0:$fld[3]eq"on"?55:0
#FileLog 4:emsClient.warmwaterpreparationactive\x3a:0:$fld[3]eq"on"?25:0
#FileLog 4:emsClient.burner_currentmodulation\x3a:.*:
#FileLog 4:emsClient.heaterpump_currentmodulation\x3a:.*:

plot "<IN>" using 1:2 axes x1y2 title 'Kesseltemp' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Aussentemp' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Ruecklauftemp' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'WWTemp' ls l5fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'ZirkPump' ls l8 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'WW Erzeugung' ls l5 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'Brenner' ls l3fill lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'Kesselpumpe' ls l7 lw 1 with steps


Danke + Gruss
Michael
BeagleBone Black (Debian), FHEM SVN
HmLAN, 12x HM-LC-Bl1PBU-FM, 7xCC-RT-DN, >10x HM-SEC-SC-2, 3x HM-LC-SW1-FM, 1x HM-SEC-SD, 2x MK1010W, DM800, Yamaha RX-V771

Lorenz

Hallo Michael,

so direkt sehe ich keine Probleme. Aber man sollte immer zuerst in die Logdatei schauen. Steht da so etwas :
xxxx.xx.xx xx:xx:xx 3: Opening emsServer device localhost:7778
xxxx.xx.xx xx:xx:xx 3: emsServer device opened
Genaueres sieht man durch Hochsetzen des Loglevel...
Dann wäre ein Blick auf die Readings im Client gut.
Wenn Readings da sind, sollte man die auch im Eventmonitor sehen.
Bei Fehlern kann man mit dem Attribut logTraffic 5 dem ECMD auf die Finger schauen, um das einzugrenzen.

Viele Grüße

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

nexulm

Hallo Lorenz,

Danke für die schnelle Rückmeldung.
Ich habe nochmal systematisch den fhem Logfile angeschaut und den Fehler gefunden. Nun läuft der emsServer und emsClient auch in meiner FHEM Umgebung.
Sowas passiert, wenn man mit zufielen unterschiedlichen Configs und Parametern rumspielt. :-)

Gruss
Michael 
BeagleBone Black (Debian), FHEM SVN
HmLAN, 12x HM-LC-Bl1PBU-FM, 7xCC-RT-DN, >10x HM-SEC-SC-2, 3x HM-LC-SW1-FM, 1x HM-SEC-SD, 2x MK1010W, DM800, Yamaha RX-V771

rspecht

#50
Wie Debugge ich das ganze?
Bis zum geöffneten telnetstream komme ich. Aber wie stoße ich ein request des EMSClients an?

Gruß

--------
Tante Edit: Stoppt die Pferde... ich war auf dem falschen Port. 7777 statt 7778 - Also auf der Commandline statt dem Datenausgang

Lorenz

Liebe Leute,

bei der Erstellung der .classdef hatte ich doch tatsächlich nicht berücksichtigt, dass die Außentemperaturen auch mal ins Minus rutschen können.
Die aktuellen Witterungsbedingungen haben mich jetzt auch im Münsterland eines Besseren belehrt  ;)

Zur Abhilfe müssen in der emsmessages.classdef 2 Zeilen für das matching und den postproc angepasst werden:

reading outdoor_temp match "outdoor currenttemperature ((\+|-)?\d+.\d)"
reading outdoor_temp postproc { s/outdoor currenttemperature ((\+|-)?\d+.+)/$1/;; $_ }


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

Gruenbacher

Hallo zusammen,
habe gerade alles installiert und sieht auch soweit gut aus.

Wenn ich auf Everything und dann auf EMSClient gehe, sehe ich die aktuelle Temperatur und alle anderen Eigenschaften.

Leider ist emsclient-..... .log leer (0 Bytes), dementsprechend ist auch das Diagramm leer.

Kann mir jemand helfen und sagen wie ich den Fehler finde,
muss leider dazu sagen, das ich FHEM heute erst installiert habe und ein totaler newby bin.

Danke

Gruenbacher

Hallo,

ich meinen Fehler gefunden.

Ich habe die Configs von nexulm aus Post 47 genommen.

Leider ist dort ein Fehler in der Logdatei (fhem.cfg):
define EMSClient ECMDDevice ems_messages ......
....
define Filelog_emsClient FileLog /var/log/fhem/emsClient-%Y-%m.log emsClient:............

Fehler!
es muss lauten:

define Filelog_emsClient FileLog /var/log/fhem/emsClient-%Y-%m.log EMSClient:

mfg.
Sven