Hallo zusammen,
ich habe für meine Vaillant Therme plus Vaillant Solarthermie zwei Ebus-Adapter in Betrieb genommen. Der an der Solarthermie arbeitet einwandfrei, einmal connected und läuft. Der an der Heizung erzeugt im ECMD-Device ständige disconnects. Ich habe sowohl den Adapter gegen einen dritten als auch Netzteil (mit dem von der Solarthermie) getauscht, verschiedene Firmawares getestet, immer das selbe.
Hier mal ein Info aus dem EBUSD:
localhost: info
version: ebusd 25.1.25.1
device: 192.168.2.16:9999, TCP, enhanced, firmware 1.1[5114].1[5114]
access: *
signal: acquired
symbol rate: 41
max symbol rate: 43
min arbitration micros: 9
max arbitration micros: 139
min symbol latency: 5
max symbol latency: 6
reconnects: 0
masters: 3
messages: 11
conditional: 0
poll: 0
update: 4
address 03: master #11
address 08: slave #11
address 10: master #2
address 31: master #8, ebusd
address 36: slave #8, ebusd
Hier ein List aus dem ECMD-Device:
FUUID 5c477535-f33f-1755-98b2-9ee9fb0b43a1a1a1
NAME EBUS
NEXT_OPEN 1764416249.06331
NR 749
PARTIAL
Protocol telnet
STATE disconnected
TYPE ECMD
eventCount 16
READINGS:
2025-11-29 12:36:29 state disconnected
fhem:
classDefs:
Heizungsfunktionen.class:
filename /opt/fhem/FHEM/ebusd_Heizungsfunktionen.cfg
gets:
Aussentemperatur:
cmd {"r outsidetemp\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.2f",$_); } $rval; }
Betriebsart_Heizung:
cmd {"r -f hc1opmode\n"}
expect \d+\.\d+\n\n
Betriebsstunden_Heizung:
cmd {"r HcHours\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.0f",$_); } $rval; }
Betriebsstunden_Warmwasser:
cmd {"r HwcHours\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.0f",$_); } $rval; }
Brenner_Heizung:
cmd {"r -f sdflame\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=$_; } $rval; }
Brennersperrzeit:
cmd {"r -f RemainingBoilerblocktime\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.0f",$_); } $rval; }
Druck:
cmd {"r -f WaterPressure\n"}
expect \d+\.\d+
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ my $Stop = index($_,";");my $zurueck = substr($_,0,$Stop); $rval=sprintf("%5.2f",$zurueck); } $rval; }
Fehlermeldung:
cmd {"r -f -c bai currenterror\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%s",$_); } $rval; }
Flowrate:
cmd {"r -f primarycircuitflowrate\n"}
expect \d+\.\d+\n\n
Heizkurve:
cmd {"r -f Hc1HeatCurve\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.1f",$_); } $rval; }
Heizung_Soll:
cmd {"r -f Hc1ActualFlowTempDesired\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.2f",$_); } $rval; }
Heizung_max:
cmd {"r -f PartloadHcKW\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.0f",$_); } $rval; }
Pumpenpower:
cmd {"r -f wppwmPower\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.0f",$_); } $rval; }
Raumtemperatur:
cmd {"r -f DisplayedRoomTemp\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.2f",$_); } $rval; }
Ruecklauf:
cmd {"r -f SDTRT\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ my $Stop = index($_,";");my $zurueck = substr($_,0,$Stop); $rval=$zurueck; } $rval; }
SendToEbus:
cmd {"".Value("EBUS_CMD")."\n"}
expect .*\n\n
postproc { $_ }
Volumenstrom:
cmd {"w -h 08b509030dfb00\n"}
expect \d+\.\d+\n\n
Vorlauf:
cmd {"r -f FlowTemp\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ my $Stop = index($_,";");my $zurueck = substr($_,0,$Stop); $rval=$zurueck; } $rval; }
WW_max:
cmd {"r -f PartloadHwcKW\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.0f",$_); } $rval; }
Warmwasser_Soll:
cmd {"r -f storagetempdesired\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.2f",$_); } $rval; }
Warmwasserbetrieb:
cmd {"r -f HwcOPMode\n"}
expect \d+\.\d+\n\n
Wunsch_heute:
cmd {"r -f Hc1QuickVetoTemp\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.2f",$_); } $rval; }
Wunschtempnacht:
cmd {"r -f hc1nighttemp\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.2f",$_); } $rval; }
Wunschtemptag:
cmd {"r -f hc1daytemp\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.2f",$_); } $rval; }
errorhistory:
cmd {"r -f -c bai -i 0 -V errorhistory\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%s",$_); } $rval; }
erster_Fehlstart:
cmd {"r -f CounterStartattempts1\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.0f",$_); } $rval; }
search_activ:
cmd {"find -d\n"}
expect .*
postproc { s_ebus($_); }
zweiter_Fehlstart:
cmd {"r -f CounterStartattempts2\n"}
expect \d+\.\d+\n\n
postproc { my $rval; if(($_ eq "")||($_ eq "no data stored") ){ $rval = "err"; }else{ $rval=sprintf("%5.0f",$_); } $rval; }
sets:
Heizautomatik:
cmd {"w -c 470 hc1opmode 2\n"}
Partymodus:
cmd {"w -c 470 hwcOPMode 4\n"}
Sommerbetrieb:
cmd {"w -c 470 hc1opmode 5\n"}
Speicher_laden:
cmd {"w -c 470 hwcOPMode 6\n"}
Speicherautomatik:
cmd {"w -c 470 hwcOPMode 2\n"}
Speicherfüllung:
cmd {"w -c 470 hwctempdesired 45\n"}
Wannenfuellung:
cmd {"w -c 470 hwctempdesired 60\n"}
Attributes:
alias EBUSD Heizung
classdefs Heizungsfunktionen.class=/opt/fhem/FHEM/ebusd_Heizungsfunktionen.cfg
group eBus
requestSeparator �
room Technik->Heizung
verbose 5
Mit der Grundkonfiguration lief mein altes System mit USB-Adaptern über Jahre problemfrei. Nun ist da so praktisch nicht brauchbar, mal bekomme ich Werte, dann wieder nicht, mal schaltet die Therme, dann wieder nicht....
Hat jemand eine Idee ?
Grüße
Christian