eBus Schaltung in Betrieb nehmen

Begonnen von Reinhart, 23 Dezember 2015, 15:19:45

Vorheriges Thema - Nächstes Thema

martin8310

Hi John,

zu
Zitatdu hast EBUSD_CONFIGPATH=/tmp/ gesetzt. sind denn im container unter /tmp die CSVs? bzw. auf dem Host unter /docker_folder/ebusd?

eigentlich ja, Pfad ist wie folgt unter Linux "/docker_folder/ebusd/de/broadcast.csv" und unter Docker "/tmp/de/broadcast.csv". Das habe ich gerade nochmal überprüft.

Was muss hier eigentlich stehen, wenn er sich die configs aus dem WWW ziehen soll?
- EBUSD_CONFIGPATH=/tmp/

Gruß und Dank
Martin

john30

Zitat von: martin8310 am 27 März 2022, 11:18:31
Was muss hier eigentlich stehen, wenn er sich die configs aus dem WWW ziehen soll?
- EBUSD_CONFIGPATH=/tmp/
nichts, also die Zeile einfach weglassen
author of ebusd

baumhous3

Zitat von: john30 am 19 März 2022, 14:50:01
du solltest dich vielleicht vorher mit ein paar Grundlagen zu Shell Scripting beschäftigen, bevor Du irgendwas an die Heizung hängst...
denn diese Zeile:veranlasst systemd, das binary ebusd mit Parameter EBUSD_OPTS=... zu starten, womit ebusd nichts anfangen kann. einfach EBUSD_OPTS=" weglassen und das abschließende doppelte Anführungszeichen, dann sollte es gehen

Das hatte ich vorher auch schonmal so probiert, allerdings kommt dort auch ein Fehler, weshalb ich verschiedene Möglichkeiten ausprobiert hatte.

Habe es nun wieder abgeändert nach (ebusd-2.service unter /etc/systemd/system):
  GNU nano 3.2                                                                                                  ebusd-2.service                                                                                                   Verändert

[Unit]
Description=ebusd, the daemon for communication with eBUS heating systems.
After=network-online.target
ConditionPathExists=/var/log

[Service]
Type=forking
Restart=always
RestartSec=30
PIDFile=/var/run/ebusd.pid
ExecStart=/usr/bin/ebusd --scanconfig --configpath=/etc/ebusd -d 192.168.178.50:5007 --mqtthost=127.0.0.1 --mqttport=1883 --mqttchanges --mqttjson --pollinterval=10


[Install]
WantedBy=multi-user.target


Und (ebusd-3.service unter /etc/systemd/system):
  GNU nano 3.2                                                                                                  ebusd-3.service

[Unit]
Description=ebusd, the daemon for communication with eBUS heating systems.
After=network-online.target
ConditionPathExists=/var/log

[Service]
Type=forking
Restart=always
RestartSec=30
PIDFile=/var/run/ebusd.pid
ExecStart=/usr/bin/ebusd --scanconfig --configpath=/etc/ebusd/ -d enh:192.168.178.65:9999 -p9998 --mqtthost=127.0.0.1 --mqttport=1883 --mqttchanges --mqttjson --address=ff --pollinterval=20


[Install]
WantedBy=multi-user.target


Erhalte jedoch wieder eine Fehlermeldung und er startet nicht:
pi@raspberrypi:/etc/systemd/system $ sudo service ebusd start
Job for ebusd.service failed because the control process exited with error code.
See "systemctl status ebusd.service" and "journalctl -xe" for details.


Mit den entsprechenden Infos:
i@raspberrypi:/etc/systemd/system $ systemctl status ebusd.service
● ebusd.service - ebusd, the daemon for communication with eBUS heating systems.
   Loaded: loaded (/lib/systemd/system/ebusd.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Sat 2022-04-02 11:22:01 CEST; 7s ago
  Process: 25439 ExecStart=/usr/bin/ebusd $EBUSD_OPTS (code=exited, status=22)


pi@raspberrypi:/etc/systemd/system $ journalctl -xe
-- Support: https://www.debian.org/support
--
-- An ExecStart= process belonging to unit ebusd.service has exited.
--
-- The process' exit code is 'exited' and its exit status is 22.
Apr 02 11:21:51 raspberrypi systemd[1]: ebusd.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- The unit ebusd.service has entered the 'failed' state with result 'exit-code'.
Apr 02 11:21:51 raspberrypi systemd[1]: Failed to start ebusd, the daemon for communication with eBUS heating systems..
-- Subject: A start job for unit ebusd.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A start job for unit ebusd.service has finished with a failure.
--
-- The job identifier is 7028562 and the job result is failed.
Apr 02 11:21:51 raspberrypi systemd[1]: Stopped ebusd, the daemon for communication with eBUS heating systems..
-- Subject: A stop job for unit ebusd.service has finished
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A stop job for unit ebusd.service has finished.
--
-- The job identifier is 7028622 and the job result is done.
Apr 02 11:21:51 raspberrypi sudo[25384]: pam_unix(sudo:session): session closed for user root
Apr 02 11:21:59 raspberrypi sudo[25412]:       pi : TTY=pts/0 ; PWD=/etc/systemd/system ; USER=root ; COMMAND=/usr/sbin/service ebusd start
Apr 02 11:21:59 raspberrypi sudo[25412]: pam_unix(sudo:session): session opened for user root by pi(uid=0)
Apr 02 11:22:01 raspberrypi systemd[1]: Starting ebusd, the daemon for communication with eBUS heating systems....
-- Subject: A start job for unit ebusd.service has begun execution
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A start job for unit ebusd.service has begun execution.
--
-- The job identifier is 7028623.
Apr 02 11:22:01 raspberrypi ebusd[25439]: 2022-04-02 11:22:01.828 [main error] invalid configpath without scanconfig
Apr 02 11:22:01 raspberrypi systemd[1]: ebusd.service: Control process exited, code=exited, status=22/n/a
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- An ExecStart= process belonging to unit ebusd.service has exited.
--
-- The process' exit code is 'exited' and its exit status is 22.
Apr 02 11:22:01 raspberrypi systemd[1]: ebusd.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- The unit ebusd.service has entered the 'failed' state with result 'exit-code'.
Apr 02 11:22:01 raspberrypi systemd[1]: Failed to start ebusd, the daemon for communication with eBUS heating systems..
-- Subject: A start job for unit ebusd.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A start job for unit ebusd.service has finished with a failure.
--
-- The job identifier is 7028623 and the job result is failed.
Apr 02 11:22:01 raspberrypi sudo[25412]: pam_unix(sudo:session): session closed for user root



tho-mas

Moin!

Nachdem ich jetzt alle 123 Seiten zu 20 Einträge dieser Diskussion durchgearbeitet habe bin ich nicht schlauer als vorher - eher noch verwirrter. Ich bekomme im Terminal folgende Werte angezeigt:

pi@pi4:/opt/fhem/FHEM $ ebusctl find -d
720 WaterPressure = 1.9
bai DateTime = valid;14:26:37;04.04.2022;4.500
bai FlowTemp = 31.19;ok
bai ReturnTemp = 31.94;65024;ok
bai SetMode = auto;49.5;-;-;0;0;0;0;0;0
bai Status01 = 31.0;30.0;4.500;30.0;-;off
bai Status02 = auto;60;75.0;70;65.0
bai StatusCirPump = on
broadcast outsidetemp = 4.500
broadcast vdatetime = 14:26:36;04.04.2022
scan.08  = Vaillant;BAI00;0407;7603
scan.08 id = 21;20;49;0010022004;3100;005497;N2
scan.15  = Vaillant;72000;0122;7703
scan.15 id = 21;20;23;0020260914;0953;008247;N4


Leider klappt die Übersetzung nach FHEM nur bei der Vorlauftemperatur, alle anderen Meßwerte geben entweder 0.0 oder "ERR: Element not found" zurück. Ich habe inzwischen alle möglichen Werte von (für) expect ausprobiert, die hier mal geschrieben wurden, geholfen hat es mir nicht.

Ich bitte um die Angabe(n) was denn nun genau in der fhem.cfg und bai00.cfg drinstehen muß damit es klappt. Ich vermute das es am Parameter expect liegt.

################### bai00.cfg ###############
#
#!/usr/bin/perl
# Warmwassertemp
#get Warmwasser cmd {"r -f HwcTemp temp\n"}
#get Warmwasser expect ".*\n*"
#get Warmwasser postproc { $_ }


# Aussentemperatur
get Aussentemp cmd {"r -f outsidetemp temp\n"}
get Aussentemp expect ".*\n*"
get Aussentemp postproc { $_ }
#
# Warmwasser test
get Warmwasser cmd {"r -m 10 status01 temp4.0\n"}
get Warmwasser expect "\d+\.\d+\n\n"
get Warmwasser postproc { sprintf("%5.1f",$_) }
#

# vorlauftemperatur NEU
get Vorlauf cmd {"r -f Hc1ActualFlowTempDesired tempv\n"}
get Vorlauf expect "\d+\.\d+\n*"
get Vorlauf postproc { sprintf("%5.1f",$_) }


# Ruecklauftemperatur
# get Ruecklauf cmd {"r -m 10 status01 temp1.1\n"}
get Ruecklauf cmd {"r -f ReturnTemp temp\n"}
get Ruecklauf expect ".*\n*"
get Ruecklauf postproc { sprintf("%5.1f",$_) }
#
# Pumpenleistung
get PumpeWatt cmd {"r -f PumpStarts\n"}
get PumpeWatt expect "\d+\n*"
get PumpeWatt postproc { sprintf("%5.0f",$_) }
#
# Fanspeed
get Fanspeed cmd {"r -f FanSpeed\n"}
get Fanspeed expect "\d+\n*"
get Fanspeed postproc { sprintf("%5.0f",$_) }
#
# Heizkurve lesen
get HKurve cmd {"r -f Hc1HeatCurve\n"}
get HKurve expect "\d+\.\d+\n"
get HKurve postproc { sprintf("%3.1f",$_) }
#
# HeizkurveSchreiben
get HeizkurveSchreiben cmd {"write 430 Hc1HeatCurve ".Value("HeizkurveEinstelle>
get HeizkurveSchreiben expect ".*\n\n"
get HeizkurveSchreiben postproc  { $_ }

# Teillast
get PartialPower cmd {"r -f PartloadHcKW\n"}
get PartialPower expect "\d+\n*"
get PartialPower postproc { sprintf("%5.0f KW",$_) }

# Anlagendruck
get Druck cmd {"r -f waterpressure press.0\n"}
get Druck expect ".*\n*"
get Druck postproc { sprintf("%5.1f",$_) }





#fhem.cfg (gekürzt auf die ECMD-Daten)
#################################
#      E C M D  - Installer     #
#################################
define EBUS ECMD telnet localhost:8888
setuuid EBUS 6223a90f-f33f-1cdf-6377-fb5f16772e23bd76
attr EBUS classdefs bai00.class=/opt/fhem/FHEM/bai01.cfg
attr EBUS icon usb
attr EBUS requestSeparator 000
attr EBUS room Vaillant

define Aussentemp ECMDDevice bai00.class
setuuid Aussentemp 6223a90f-f33f-1cdf-d3a6-dc61560395cd84ff
attr Aussentemp IODev EBUS
attr Aussentemp group Vaillant
attr Aussentemp icon temp_outside
attr Aussentemp room Vaillant

define Vorlauf ECMDDevice bai00.class
setuuid Vorlauf 6223a90f-f33f-1cdf-8b23-b09f3e8a47026181
attr Vorlauf IODev EBUS
attr Vorlauf group Vaillant
attr Vorlauf icon sani_supply_temp
attr Vorlauf room Vaillant

define Ruecklauf ECMDDevice bai00.class
setuuid Ruecklauf 6223a90f-f33f-1cdf-0c1a-16a63d65cb28d964
attr Ruecklauf IODev EBUS
attr Ruecklauf group Vaillant
attr Ruecklauf icon sani_return_temp
attr Ruecklauf room Vaillant

define PumpeWatt ECMDDevice bai00.class
setuuid PumpeWatt 6223a90f-f33f-1cdf-e0db-81a4bd522b6c45b1
attr PumpeWatt IODev EBUS
attr PumpeWatt group Vaillant
attr PumpeWatt icon measure_power
attr PumpeWatt room Vaillant

define Fanspeed ECMDDevice bai00.class
setuuid Fanspeed 6223a90f-f33f-1cdf-16bc-22109711a35e5df3
attr Fanspeed IODev EBUS
attr Fanspeed group Vaillant
attr Fanspeed icon vent_ventilation_level_automatic
attr Fanspeed room Vaillant

#define HKurve ECMDDevice bai00.class
#setuuid HKurve 6223a90f-f33f-1cdf-b63f-ed9c8c4472bd2c6f
#attr HKurve IODev EBUS
#attr HKurve group Vaillant
#attr HKurve icon temp_control
#attr HKurve room Vaillant

define Druck ECMDDevice bai00.class
setuuid Druck 624ac622-f33f-1cdf-c236-c4a20094f4a986bc
attr Druck IODev EBUS
attr Druck group Vaillant
attr Druck room Vaillant

# Abfrage Timersteuerung, fhem.cfg
define EBUS.Timer at +*00:15:00 get Aussentemp Aussentemp;;get Vorlauf Vorlauf;;get Ruecklauf Ruecklauf;;get PumpeWatt PumpeWatt;;get Fanspeed Fanspeed;;get >
setuuid EBUS.Timer 6223a90f-f33f-1cdf-0dd4-8be8dc6eb22f57cf
attr EBUS.Timer group VaillantControl
attr EBUS.Timer icon time_timer
attr EBUS.Timer room Vaillant
attr EBUS.Timer verbose 0





2022.03.31 23:30:41 1: EBUS: unexpected answer ERR: element not found\n\n (\105\122\122\072\040\145\154\145\155\145\156\164\040\156\157\164\040\146\157\165\156\144\012\012) received (wrote r -f SDFanSpeed\n (\162\040\055\146\040\123\104\106\141\156\123\160\145\145\144\012), expected \d+\n\n)
2022.03.31 23:30:41 1: PERL WARNING: Argument "ERR: element not found\n\n" isn't numeric in sprintf at (eval 667052) line 1.
2022.03.31 23:30:41 3: eval: { sprintf("%5.0f",$_) }
2022.03.31 23:30:41 1: EBUS: unexpected answer ERR: element not found\n\n (\105\122\122\072\040\145\154\145\155\145\156\164\040\156\157\164\040\146\157\165\156\144\012\012) received (wrote r -f PumpPower\n (\162\040\055\146\040\120\165\155\160\120\157\167\145\162\012), expected \d+\n\n)
2022.03.31 23:30:41 1: PERL WARNING: Argument "ERR: element not found\n\n" isn't numeric in sprintf at (eval 667054) line 1.
2022.03.31 23:30:41 3: eval: { sprintf("%5.0f",$_) }
2022.03.31 23:45:41 1: EBUS: unexpected answer ERR: element not found\n\n (\105\122\122\072\040\145\154\145\155\145\156\164\040\156\157\164\040\146\157\165\156\144\012\012) received (wrote r -f sdtrt temp\n (\162\040\055\146\040\163\144\164\162\164\040\164\145\155\160\012), expected \d+\.\d+\n\n)
2022.03.31 23:45:41 1: PERL WARNING: Argument "ERR: element not found\n\n" isn't numeric in sprintf at (eval 667571) line 1.
2022.03.31 23:45:41 3: eval: { sprintf("%5.1f",$_) }
2022.03.31 23:45:41 1: EBUS: unexpected answer ERR: element not found\n\n (\105\122\122\072\040\145\154\145\155\145\156\164\040\156\157\164\040\146\157\165\156\144\012\012) received (wrote r -f PumpPower\n (\162\040\055\146\040\120\165\155\160\120\157\167\145\162\012), expected \d+\n\n)
2022.03.31 23:45:41 1: PERL WARNING: Argument "ERR: element not found\n\n" isn't numeric in sprintf at (eval 667573) line 1.
2022.03.31 23:45:41 3: eval: { sprintf("%5.0f",$_) }
2022.03.31 23:45:41 1: EBUS: unexpected answer ERR: element not found\n\n (\105\122\122\072\040\145\154\145\155\145\156\164\040\156\157\164\040\146\157\165\156\144\012\012) received (wrote r -f SDFanSpeed\n (\162\040\055\146\040\123\104\106\141\156\123\160\145\145\144\012), expected \d+\n\n)
2022.03.31 23:45:41 1: PERL WARNING: Argument "ERR: element not found\n\n" isn't numeric in sprintf at (eval 667575) line 1.
2022.03.31 23:45:41 3: eval: { sprintf("%5.0f",$_) }
2022.03.31 23:45:41 1: EBUS: unexpected answer ERR: element not found\n\n (\105\122\122\072\040\145\154\145\155\145\156\164\040\156\157\164\040\146\157\165\156\144\012\012) received (wrote r -f PumpPower\n (\162\040\055\146\040\120\165\155\160\120\157\167\145\162\012), expected \d+\n\n)
2022.03.31 23:45:41 1: PERL WARNING: Argument "ERR: element not found\n\n" isn't numeric in sprintf at (eval 667577) line 1.
2022.03.31 23:45:41 3: eval: { sprintf("%5.0f",$_) }


Internals:
   DEF        bai00.class
   FUUID      6223a90f-f33f-1cdf-d3a6-dc61560395cd84ff
   IODev      EBUS
   NAME       Aussentemp
   NR         302
   STATE      Aussentemp ERR: element not found


   TYPE       ECMDDevice
   READINGS:
     2022-04-04 14:53:40   Aussentemp      ERR: element not found


     2022-03-19 19:52:17   Fanspeed        0
     2022-04-04 14:56:59   IODev           EBUS
     2022-03-19 19:52:29   PumpeWatt       0
     2022-03-19 19:52:35   Ruecklauf       0.0
     2022-03-07 22:54:49   Vorlauf         63.9
     2022-04-04 14:53:40   state           Aussentemp ERR: element not found


   fhem:
     classname  bai00.class
Attributes:
   IODev      EBUS
   group      Vaillant
   icon       temp_outside
   room       Vaillant


Falls das hier in der Diskussion immer noch nicht klappt: Gibt es jemand, der mir vielleicht hier (Norderstedt, Raum Hamburg) am Rechner direkt helfen würde? Ich habe diese Woche noch Urlaub, bin also fast ganztags (ausser Freitag und Samstag nachmittag) zu Hause. Fahrkosten werden von mir erstattet, eine Eisdiele ist im Nebengebäude... :-))

Thomas


jkriegl

#1834
Ist bei mir schon lange her, aber folgendes funktioniert
# Außentemperatur
get A.Temp cmd {"r -f OutsideTemp temp\n"}
get A.Temp expect ".*\n\n"
get A.Temp postproc { sprintf("%.1f",$_) }

gross/klein beachten OutsideTemp

Edit: Führe Dein cmd in der commandozeile aus und versuche die gewünschten Daten per regex zu extrahieren.
Und bei write ein set angeben, dann bekommst Du gets und sets in der Oberfläche.
# Zeitplan Puffer laden
get T1.Mo cmd {"read -d 25 Timer.Monday\n"}
get T1.Mo expect ".*\n\n"
get T1.Mo postproc { my $rval=$_; $rval=~ s/\n//g; $rval; }
set T1.Mo cmd { "w -c hwc Timer.Monday %temp\n" }
set T1.Mo params temp
set T1.Mo expect "done\n"
set T1.Mo postproc {if ($_ =~ "done") {"%temp"} else {$_}}


Edit2: Deine Def Aussentemp device bai.class irritiert mich, es reicht doch z.B.:
defmod EBUS ECMD telnet 127.0.0.1:8888
attr EBUS classdefs HK.SOL.class=/opt/fhem/ebus_solar.cfg:HK.WW.class=/opt/fhem/ebus_ww.cfg:HK.Hz.class=/opt/fhem/ebus_hz.cfg:HK.Th.class=/opt/fhem/ebus_therme.cfg
attr EBUS requestSeparator \000

in z.B. bai.cfg werden dann die Readings (Aussentemp, Vorlauf usw. ) via gets und sets definiert.

Beispiel für Unterfelder
# Absenktemperatur Heizkreis 2. Feld
get T.Absenken cmd {"r -f -c hc TempDesiredLow temp1.1\n"}
get T.Absenken expect ".*\n\n"
get T.Absenken postproc { my $rval=sprintf("%.1f",$_);\
  $rval=~ s/\n//g;\
  $rval; }

ob tempv funktioniert in
get Vorlauf cmd {"r -f Hc1ActualFlowTempDesired tempv\n"}
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

tho-mas

#1835
@jkriegl:

Groß/klein ist egal:

pi@pi4:~ $ ebusctl find OutsideTemp
720 DisplayedOutsideTemp = no data stored
720 OutsideTempAvg = no data stored
broadcast outsidetemp = 7.312

pi@pi4:~ $ ebusctl find outsidetemp
720 DisplayedOutsideTemp = no data stored
720 OutsideTempAvg = no data stored
broadcast outsidetemp = 7.312


Zitat von: jkriegl am 04 April 2022, 18:18:36
Führe Dein cmd in der commandozeile aus und versuche die gewünschten Daten per regex zu extrahieren.

Leider haben wir da ein Verständigungsproblem:
"commandozeile" von fhem (vermute ich mal) oder vom Terminal? Funktioniert aber beides nicht:

pi@pi4:~ $ get Aussentemp cmd {"r -f outsidetemp temp\n"}
bash: get: Kommando nicht gefunden.
pi@pi4:~ $



"per regex zu extrahieren." - Dafür fehlt mir das Wissen. Ohne exakte Anleitung (auf deutsch!) geht da gar nichts.


Gruß
Thomas

jkriegl

mach mal im Terminal: ebusctl r -f outsidetemp
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

tho-mas

Hatte ich doch gerade eine Nachricht drüber gemacht...

jkriegl

#1838
ZitatHatte ich doch gerade eine Nachricht drüber gemacht...
Aber etwas anderes - Na gut dann nicht.
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

tho-mas

Sorry, ich hatte zu schnell gelesen.

pi@pi4:~ $ ebusctl r -f outsidetemp
ERR: element not found

pi@pi4:~ $ ebusctl r -f Outsidetemp
ERR: element not found

pi@pi4:~ $ ebusctl r -f OutsideTemp
ERR: element not found

pi@pi4:~ $ ebusctl find -d
bai DateTime = valid;11:08:08;06.04.2022;9.250
bai FlowTemp = 34.69;ok
bai SetMode = auto;43.5;-;-;0;0;0;0;0;0
bai Status01 = 34.0;33.5;9.250;33.5;-;off
bai Status02 = auto;60;75.0;70;65.0
bai StatusCirPump = on
broadcast outsidetemp = 9.250
broadcast vdatetime = 11:08:07;06.04.2022
scan.08  = Vaillant;BAI00;0407;7603
scan.08 id = 21;20;49;0010022004;3100;005497;N2
scan.15  = Vaillant;72000;0122;7703
scan.15 id = 21;20;23;0020260914;0953;008247;N4



Warum wird mir (am Ende) eine Schreibweise angezeigt, die dann mit "r -f" NICHT zu finden ist?

jkriegl

#1840
Bitte dort noch einmal genauer lesen.
https://forum.fhem.de/index.php/topic,46098.msg415492.html#msg415492
und auch die #502
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

john30

Zitat von: baumhous3 am 02 April 2022, 11:28:55
Das hatte ich vorher auch schonmal so probiert, allerdings kommt dort auch ein Fehler, weshalb ich verschiedene Möglichkeiten ausprobiert hatte.

Habe es nun wieder abgeändert nach (ebusd-2.service unter /etc/systemd/system):
  GNU nano 3.2                                                                                                  ebusd-2.service                                                                                                   
...

im Protokoll ist zu sehen, dass ebusd.service fehlschlägt, nicht -2 und nicht -3, also musst Du schon in der Datei nachschauen und editieren.
author of ebusd

Willi_70

Hallo Leute,
ich bin ziemlich neu hier angemeldet. Ich habe schon eine Weile mitgelesen und wollte anhand der superguten Anleitungen hier im Forum meine eBus Schaltung in Betrieb nehmen. Leider klappt das nicht wie geplant und ich habe hier im Forum dazu auch nichts passendes gefunden. Langsam verzweifle ich und meine Frau wird bei meinen vielen Bastelversuchen an unserer Heizung schon nervös...
Ich habe eine Vaillant Ecovit mit einer VRC 700/6 Steuerung. Dazu noch ein VC 920 Internetmodul. Das funzt alles prima. Als zusätzliche Hardware habe ich eine eBus-Adapter Platine V1.6.
Auf meinem Raspi habe ich die ebusd-Version 22.3 per apt-get installiert (nicht die Quelldateien selbst compiliert und das Programm gebaut, sondern per apt-get "fertig" installiert):


pi@Raspi-EBus:~ $ ebusd --version
ebusd 22.3.p20220508


Wenn ich das richtig verstanden habe, dann brauche ich ab der ebusd-Version 3.2 keine ebusd-configuration mehr zu installieren, weil wenn ich "ebusd.eu" beim Startparameter "--configpath" eingebe, dann wird die Konfiguration mit "--scanconfig" automatisch erstellt.
Meine erste Frage: habe ich das richtig verstanden, oder habe ich da den ersten Denkfehler?

In meinem Verzeichnis /etc/ebusd/ liegen keine *.csv-Dateien, was mich ein bisschen wundert.
Ich habe das Poti auf der Platine so eingestellt, dass ich "aa" im Terminalfenster gesehen habe. Wenn ich den ebusd-Service starte, dann erhalte ich beim "ebusd info" folgende Ausgabe:


pi@Raspi-EBus:~ $ ebusctl info
version: ebusd 22.3.p20220508
device: /dev/ttyUSB0
signal: acquired
symbol rate: 23
max symbol rate: 95
reconnects: 0
masters: 4
messages: 14
conditional: 0
poll: 0
update: 4
address 00: master #1
address 03: master #11
address 08: slave #11
address 10: master #2
address 15: slave #2
address 31: master #8, ebusd
address 36: slave #8, ebusd


Ich würde das so interpretieren, dass tatsächlich Geräte neben dem ebusd auf dem Bus gefunden werden.
Im Logfile finde ich z. B. folgende Einträge:


2022-05-14 19:43:49.766 [update notice] received unknown MS cmd: 1008b5110102 / 05033c96507a
2022-05-14 19:43:50.007 [update notice] received unknown BC cmd: 10feb516080050431914050622
2022-05-14 19:43:50.280 [update notice] received unknown MS cmd: 1008b5110100 / 08620417001f000080
2022-05-14 19:43:50.503 [update notice] received unknown BC cmd: 10feb51603010014


Wenn ich das halbwegs richtig gelesen habe, dann ist "b5" der Herstellercode von Vaillant.

Irgendwie werde ich das Gefühl nicht los, dass meine Konfiguration nicht korrekt ist. Ich weiß aber auch echt nicht mehr weiter (an welcher Stelle ich noch suchen könnte).
Könnt Ihr vielleicht aus meinen - zugegebenermaßen etwas wirren - Ausführungen etwas herauslesen und mir weiterhelfen?

Vielen Dank und viele Grüße,
Willi

PS: Wenn das Thema hier nicht hingehört, ich irgendwo etwas zu genau diesem Thema überlesen habe oder die Konversation anderweitig gestört habe, dann tut es mir leid. Gebt mir in dem Fall bitte ein kurzes Signal.

Willi_70

Moin zusammen,
irgendwie bin ich noch nicht so richtig weiter gekommen. Bevor ich jetzt aber die Platine dem Elektroschrott zuführe, habe ich noch ein bisschen im Internet geschaut. Wenn ich das richtig gesehen habe, dann bedeutet der letzte angegebene Log-Eintrag

2022-05-14 19:43:50.503 [update notice] received unknown BC cmd: 10feb51603010014

laut Erläuterung "eBusd Bedeutung der Telegramme" (FHEM-Wiki eBusd), dass die Vaillant-Zentrale an alle Geräte die Außentemperatur von 14°C broadcastet.
Somit scheint mir die Verbindung des Adapters mit dem eBus zu funktionieren. Lediglich die Konfiguration scheint nicht korrekt zu sein (Daten kommen an, scheinen auch korrekt zu sein, lediglich eBusd kann sie nicht interpretieren). Ein fehlerhafter Abgleich des Potis scheint es also nicht zu sein (hab' ich auch schon unzählige Male erfolglos dran rumgespielt).
Mittlerweile habe ich alte Versionen von eBusd installiert (1-er Versionen, 2-er Versionen und auch 3-er Versionen). Jeweils per dpkg (nicht, wie zuvor beschrieben per apt-get). Zudem habe ich die ebusd-config installiert und dann sowohl diese, als auch ebusd.eu als Konfiguration angegeben. Selbst mit "Latency" habe ich "rumgespielt", aber irgendwie scheint das Programm die korrekte Konfiguration nicht einzulesen.
Weiß irgend jemand, was ich falsch mache?

Viele Grüße,
Willi

john30

Zitat von: Willi_70 am 20 Mai 2022, 22:41:31
Moin zusammen,
irgendwie bin ich noch nicht so richtig weiter gekommen. Bevor ich jetzt aber die Platine dem Elektroschrott zuführe, habe ich noch ein bisschen im Internet geschaut. Wenn ich das richtig gesehen habe, dann bedeutet der letzte angegebene Log-Eintrag

2022-05-14 19:43:50.503 [update notice] received unknown BC cmd: 10feb51603010014

laut Erläuterung "eBusd Bedeutung der Telegramme" (FHEM-Wiki eBusd), dass die Vaillant-Zentrale an alle Geräte die Außentemperatur von 14°C broadcastet.
Somit scheint mir die Verbindung des Adapters mit dem eBus zu funktionieren. Lediglich die Konfiguration scheint nicht korrekt zu sein (Daten kommen an, scheinen auch korrekt zu sein, lediglich eBusd kann sie nicht interpretieren). Ein fehlerhafter Abgleich des Potis scheint es also nicht zu sein (hab' ich auch schon unzählige Male erfolglos dran rumgespielt).
Mittlerweile habe ich alte Versionen von eBusd installiert (1-er Versionen, 2-er Versionen und auch 3-er Versionen). Jeweils per dpkg (nicht, wie zuvor beschrieben per apt-get). Zudem habe ich die ebusd-config installiert und dann sowohl diese, als auch ebusd.eu als Konfiguration angegeben. Selbst mit "Latency" habe ich "rumgespielt", aber irgendwie scheint das Programm die korrekte Konfiguration nicht einzulesen.
Weiß irgend jemand, was ich falsch mache?
liegt sicher daran, dass das Interface nicht schreiben kann. Oder ebusd ist auf readonly gestellt, dann sieht das auch so aus. Stell halt mal den Log Level höher und schau ins Logfile insbesondere wegen Scan und Arbitration Meldungen
author of ebusd