NEWS
Adapter: ebus
-
@kanumouse erstelle mal bitte ein issue in github. Ich schaue mir das nochmal an...
Bei mir sieht das so aus:
und wie erkennst du, dass das Schreiben nicht funktioniert?
-
Bei mir steht unter „cmdResult“-Wert das:
usage: write [-s QQ] [-d ZZ] -c CIRCUIT NAME [VALUE[;VALUE]]
or: write [-s QQ] [-d ZZ] -def DEFINITION [VALUE[;VALUE]] (only if enabled)
or: write [-s QQ] [-c CIRCUIT] -h ZZPBSBNN[DD]*
Write value(s) or hex message.
-s QQ override source address QQ
-d ZZ override destination address ZZ
-c CIRCUIT CIRCUIT of the message to send
NAME NAME of the message to send
VALUE a single field VALUE
-def write with explicit message definition (only if enabled):
DEFINITION message definition to use instead of known definition
-h send hex write message:
ZZ destination address
PB SB primary/secondary command byte
NN number of following data bytes
DD data byte(s) to sendDas nichts geschrieben wird sehe ich an den unveränderten Werten, die ich beim Lesen im Log mitlesen kann. Außerdem habe ich sicherheitshalber auch noch direkt an der Heizung kontrolliert. Vorher hat alles problemlos funktioniert, ich konnte z.B. Solltemperatungen, Heizprogramme, Wartungstermine, ect. schreiben.
-
@kanumouse welche Version vom ebusd nutzt du? Hast du den auch aktualisiert? Funktioniert dein write-Befehl in Telnet noch?
-
Ich benutze ebusd- Version 21.2.
direkt mit telnetfunktioniert das Schreiben noch. -
@kanumouse und du nutzt in telnet den gleichen Schreibbefehl wie aus deinem script?
Das was als Resultat in cmdResult steht, ist das, was ich vom ebusd als Ergebnis auf die Ausführung des Kommandos erhalte. Wenn der ebusd mit
usage: write ...
antwortet, will er uns damit sagen, dass die Syntax des Befehls nicht passt. Da ich den Befehl aus dem Datenpunkt "cmd" direkt durchreiche, vermute ich ein Problem mit dem Kommando selbst.
Stelle den Adapter mal auf debug und poste das log. -
Also ich habe das jetzt noch einmal vo meinem anderen PC direkt mit telnet getestet. Ich kann alle Elemente fehlerfrei lesen, habe jetzt aber doch festgestellt, dass ich nicht schreiben kann. Dann kommt immer ERR: Element not found.
Kann z.B. PhoneNumber mit „read -f PhoneNumber“ lesen, aber nicht mit dem Kommando „write -c 470 PhoneNumber xxxxxxx“ schreiben. -
Hat jemand eine Idee, warum ich auf den ebus plötzlich mit telnet nicht mehr schreiben kann?
Das Lesen der Datenpunkte funktioniert einwandfrei. -
Ok, ich habe das Problem gefunden und kann jetzt auch schreiben.
Die ebusd-config habe ich um den Eintrag "accesslevel=*" ergänzt. War also ein Berechtigungsproblem. Warum das vorher funktioniert hat kann ich nicht nachvollziehen. Der Fahler ist also rein zufäälig mit dem Update des ebus-Adapter zu Tage getreten.
Der Adapter funktioniert also ordnungsgemäß.
Danke rene_hm für die Unterstützung! -
HAllo LEute,
ich habe seit gestren das Problem, das ich keine Daten mehr von meine Ebus empfange.
Das Problem scheint der Port zusein
pi@raspberrypi:~ $ sudo ebusctl stop error connecting to localhost:8888 pi@raspberrypi:~ $ sudo ebusctl start error connecting to localhost:8888 pi@raspberrypi:~ $ sudo nano /etc/default/ebusd pi@raspberrypi:~ $ ebusctl --server=192.168.178.48 i error connecting to 192.168.178.48:8888 pi@raspberrypi:~ $ sudo ebusctl info error connecting to localhost:8888 pi@raspberrypi:~ $ sudo ebusctl stop error connecting to localhost:8888 pi@raspberrypi:~ $ sudo ebusctl start error connecting to localhost:8888
Egal was ich eingebe ich bekomme immer diese Antwort.
Was ist da los?
Hat sich da die Portfreigabe in der Fritzbox geändert/gelöscht?
Oder ??? ....Danke
-
@timmerx Läuft Dein eBusD ? Was sagen ?
systemctl status ebusd ps aux | grep -i ebusd
-
Ich hab dies neuerdings im Log stehen. Was hat das zu bedeuten?
ebus.0 2021-10-03 09:52:08.245 info Terminated (NO_ERROR): Without reason ebus.0 2021-10-03 09:52:08.243 info all http done ebus.0 2021-10-03 09:52:08.162 info found ebusd version 21.2 ebus.0 2021-10-03 09:52:06.724 warn updateObject: not updated bai.messages.SetMode.fields.hwcflowtempdesired.value value: null ebus.0 2021-10-03 09:52:06.721 warn Key : bai.messages.SetMode.fields.hwcflowtempdesired.value, Value : null name SetMode ebus.0 2021-10-03 09:52:06.712 warn updateObject: not updated bai.messages.SetMode.fields.hwctempdesired.value value: null ebus.0 2021-10-03 09:52:06.708 warn Key : bai.messages.SetMode.fields.hwctempdesired.value, Value : null name SetMode ebus.0 2021-10-03 09:52:02.740 info starting. Version 2.3.2 in /opt/iobroker/node_modules/iobroker.ebus, node: v12.22.6, js-controller: 3.3.18
-
@cino ebusd stellt den Datenpunkt zwar zur Verfügung, liefert aber keinen Wert dazu. Ich habe das erst mal als Warnung eingebaut, ist aber nur kritisch, wenn man genau den Datenpunkt benötigt...
-
Hi
bei mir war das Problem, das der Bus nicht gelaufen ist.
-
Hallo in die Runde,
habe ein kleines Problem. Ich habe ein Gesheizung mit Pufferspeicher, Solarkollektoren und Trinkwasseranlage.Daten werden auch alle top geladen.
address 01: master #6 address 03: master #11 address 06: slave #6, scanned "MF=Vaillant;ID=PMS02;SW=0209;HW=8402", loaded "vaillant/06.pms.csv" address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0104;HW=7803", loaded "vaillant/bai.308523.inc", "vaillant/08.bai.csv" address 0a: slave, scanned "MF=Vaillant;ID=PMW01;SW=0206;HW=8302", loaded "vaillant/0a.pmw.hwc.csv" address 10: master #2 address 12: slave, scanned "MF=Vaillant;ID=PMW01;SW=0206;HW=8302" address 15: slave #2, scanned "MF=Vaillant;ID=70000;SW=0613;HW=6903", loaded "vaillant/15.700.csv" address 26: slave, scanned "MF=Vaillant;ID=VR_71;SW=0104;HW=0503", loaded "vaillant/26.vr_71.csv" address 31: master #8, ebusd address 36: slave #8, ebusd address ec: slave, scanned "MF=Vaillant;ID=SOL00;SW=0613;HW=6903", loaded "vaillant/ec.sol.sc.csv" address ed: slave, scanned "MF=Vaillant;ID=PMS02;SW=0209;HW=8402" address f7: master #20 address fc: slave #20, scanned "MF=Vaillant;ID=PMW01;SW=0206;HW=8302"
Jetzt zum Problem. Sowohl in der "vaillant/06.pms.csv"
r,,Ntc1Sensor,Ntc1Sensor,,,,"0500",,,tempsensor,,,Temperature in solar flow (from solar collector) r,,Ntc2Sensor,Ntc2Sensor,,,,"0600",,,tempsensor,,,Temperature in solar back flow (to solar collector) r,,Ntc3Sensor,Ntc3Sensor,,,,"0700",,,tempsensor,,,Temperature in buffer flow (to buffer) r,,Ntc4Sensor,Ntc4Sensor,,,,"0800",,,tempsensor,,,Temperature in buffer back flow (from buffer)
als auch in der "0a.pmw.hwc.csv"
r,,Ntc1Sensor,Ntc1Sensor,,,,"0000",,,tempsensor,,,T1 Temperature r,,Ntc2Sensor,Ntc2Sensor,,,,"0100",,,tempsensor,,,T2 Temperature r,,Ntc3Sensor,Ntc3Sensor,,,,"0200",,,tempsensor,,,T3 Temperature
stehen NTC1Sensor, NTC2Sensor und NTC3Senor drin.
Wie kann ich denn bei der Abfrage im ebusd Adapter im ioBroker unterscheiden, welchen er einsammelt.
Aktuell sammelt er Sensor 1-3 nur vom "hwc" ein und nicht vom "pms".
-
@dre83 wie sieht denn das ganze in den Datenpunkten in ioBroker aus? Intern schicke ich ein
read -f Ntc1Sensor
an den ebusd.
Du kannst aber auch basierend auf der Doku unter ebusd - Read ein eigenes Kommando bauen, welches du dann auf den Datenpunktebus.0.cmd
schreibst.
-
@rene_hm Sorry aber ich verstehe die Frage nicht. Was meinst du mit "wie sieht es in den Datenpunkten aus"?
Ich habe sowohl unter "pms" als auch bei "sc" und "hwc" z.B. den NTC Sensor 1. Allerdings bekomme ich nur für einen NTC1Sensor, einen NTC2Sensor, einen NTC3Sensor und einen NTC4 Sensor die Daten geliefert. Die anderen Sensoren, welche genauso heißen aktualisiert es nicht
Also Umgehungslösung habe ich es aktuell so gelöst, dass ich auf dem Raspberry mit einem Cron-Trigger
sudo crontab -e
die Daten jetzt aller 5 Minuten mit dem Raspberry abfrage. Danach werden auch die Daten aller NTC-Sensoren sauber importiert.
*/5 * * * * ebusctl r -c sc NTC1Sensor */5 * * * * ebusctl r -c sc NTC2Sensor */5 * * * * ebusctl r -c sc NTC3Sensor */5 * * * * ebusctl r -c sc NTC4Sensor */5 * * * * ebusctl r -c pms NTC1Sensor */5 * * * * ebusctl r -c pms NTC2Sensor */5 * * * * ebusctl r -c pms NTC3Sensor */5 * * * * ebusctl r -c pms NTC4Sensor */5 * * * * ebusctl r -c hwc NTC1Sensor */5 * * * * ebusctl r -c hwc NTC2Sensor */5 * * * * ebusctl r -c hwc NTC3Sensor
Kann ich auch mehrere Kommandos auf ebus.0.cmd legen?
Wenn ja wie ist dann die Syntax? -
@dre83 sagte in Adapter: ebus:
Kann ich auch mehrere Kommandos auf ebus.0.cmd legen?
Du kannst immer nur ein Kommando abschicken. Du kannst das aber per script lösen: erstelle dir ein Kommando nach dem anderen und schicke sie zeitlich versetzt. Alternativ schickst du ein Kommando, wartest auf das Ergebnis in ebus.0.cmdResult und schickst dann das nächste Kommando.
-
@rene_hm
Hi René,
habe es genau so mit dem Script umgesetzt wie von Dir beschrieben. Funktioniert wunderbar. Vielen Dank. Somit habe ich jetzt alles zentral im iobroker.
Da konnte ich auch meine Cron-Jobs auf dem Raspberry auch löschen. (war ja im Endeffekt das selbe Vorgehen) -
Hallo zusammen,
Bei mir läuft es nun auch so la la.
Meine frage: Wenn ich das hier ausführe steht da no data stored
root@ServerEbus:/home/pi# ebusctl find boiler nominal = no data stored boiler status = no data stored boiler tb = no data stored broadcast datetime = 11.398;10:15:34;12.10.2021 buffer boiler_b = no data stored buffer flow = no data stored buffer heating = no data stored buffer nominal = no data stored buffer status_b = no data stored buffer tpm = no data stored buffer tpo = no data stored circuit1config manualT = no data stored circuit1config status = no data stored circuit1mode manualtemp = no data stored circuit1mode modeC1 = no data stored circuit1preferences dayTH = no data stored circuit1preferences heating_limit = no data stored circuit1preferences heatinglimit = no data stored circuit1preferences nightTH = no data stored circuit1preferences outsideTH = no data stored circuit1preferences pointtemp = no data stored circuit1preferences remotecontrol = no data stored circuit1preferences roomfrost = no data stored circuit1preferences supplyTH = no data stored curveC outsideC = no data stored curveC pointC = no data stored curveC supplyC = no data stored curveH outsideH = no data stored curveH pointH = no data stored curveH supplyH = no data stored heatpump coolkwh = no data stored heatpump coolmwh = -;31;00;00;0;0;0 heatpump cycles = no data stored heatpump heatkwh = no data stored heatpump heatmwh = no data stored heatpump hours = no data stored heatpump nominal = no data stored heatpump status = no data stored heatpump tqa = 71;0;0d;02;1000;0;10.8 heatpump tqe = 80;1;1d;00;1;7721;0.0 heatpump twr = 70;0;0d;02;1000;0;6.9 heatpump twv = 7;0;0d;02;1000;0;32.0 heatpump volumekwh = no data stored heatpump volumemwh = no data stored heatpump waterkwh = no data stored heatpump watermwh = no data stored heatpump_m mode = 53;1;00;00;255;0;Extern gesperrt master 10u0503 = 1;0;0;0.0;1;0 master data1 = 32.398;-;0;0;0;0;0;0;1;27.398 master data2 = 0.000;53.000;0;0;2 scan.06 = TEM;25440;0113;0000 scan.08 = TEM;WE_1 ;3632;3030 scan.15 = TEM;24849;0605;0102 scan.18 = TEM;WE_2 ;3632;3030 target dayC = no data stored target dayH = no data stored target limitH = no data stored target nightC = no data stored target nightH = no data stored target SpointS = no data stored target Ssummer = no data stored temperature boiler2 = no data stored temperature buffer1 = 96;0;0d;02;1000;0;32.4 temperature buffer2 = no data stored temperature outside1 = no data stored temperature outside2 = no data stored temperature outside = 0;0;0d;02;500;-500;11.4 temperature tqe1 = no data stored temperature twr1 = no data stored temperature twv1 = no data stored temperature water = 4;0;0d;02;1000;0;52.3 unknow 01940048 = no data stored unknow 01960042 = no data stored unknow 01cc0042 = no data stored unknow 02c60040 = 70;65;04;28;-1;0;192 unknow 02c80040 = 72;65;04;2a;1439;0;103
Dann kann ich mit z.B.
root@ServerEbus:/home/pi# ebusctl r -c heatpump volumekwh 218;10;0d;34;1000;0;0.0
den wert holen.
Nach einen reboot sind diese Werte alle wieder auf no data stored.
Gibt's da ne Lösung für?
-
@winny1900 typischerweise lauscht der ebusd nur, was am Bus vorbeikommt. Wenn kein anderes Gerät die Daten abfragt, gelangen sie nicht auf den Bus und somit auch nicht in ebusd. Zusätzlich speichert ebusd keine Daten. Wenn du also möchtest, das bestimmte Daten aktualisiert werden, musst du sie aktiv abfragen, was du ja mit
ebusctl r
schon machst.