[Modul] ebusdMQTT - Einbindung von Vaillant Geräten

bei der d.06 kommt die 0 aber bei der d.07 bekomme ich die Solltemperatur

StorageTempDesired

Das lesen funktioniert ! Ich versteh allerdings nicht warum die variablen in Symcon alle auf 0 stehen

UPDATE : Die abgefragten Werte stehen jetzt auch in Symcon !

und schreiben funktioniert auch :

2023-10-06 23:54:46.370 [update notice] sent read bai WPPostrunTime QQ=31: 6
2023-10-06 23:55:03.952 [update notice] sent write bai WPPostrunTime QQ=31: 6
2023-10-06 23:55:03.952 [main notice] write bai WPPostrunTime: done
2023-10-06 23:55:22.709 [update notice] sent write bai WPPostrunTime QQ=31: 5
2023-10-06 23:55:22.709 [main notice] write bai WPPostrunTime: done

@bumaas herzlichen Dank für die Hilfe jetzt müsste ich die Therme von Symcon aus abfragen und steuern können

Das hab ich bei mir auch. Bei einigen Temperaturen kommt auch der Status des Fühlers. In diesem Fall ist mit dem sensor alles gut.

Hier scheint es noch einen Fehler im Modul zu geben.
Wenn ich den folgenden Aufruf mache erhalte ich die Fehlermeldung das die Funktion set_time_limit() fehlt :

<?php

$InstanceID = 30019;                                  // die Instanz ID des "ebusd MQTT Device"
$topic      = 'ebusd/bai/FlowTemp/set';  // <Schaltkreis> und <Parameter> sind entsprechend zu ersetzen ('ebusd/bai/FlowsetHCMax')
$payload    = '';                                   // der Wert ist als String zu übergeben

EBM_publish($InstanceID, $topic, $payload)
Fatal error: Uncaught Error: Call to undefined function set_time_limit() in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php:483
Stack trace:
#0 /var/lib/symcon/scripts/__generated.inc.php(4687): ebusdMQTTDevice->publish('ebusd/bai/FlowT...', '')
#1 /var/lib/symcon/scripts/23073.ips.php(7): EBM_publish(30019, 'ebusd/bai/FlowT...', '')
#2 {main}
  thrown in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 483

Danke, das hatte ich übersehen. Viele Sensoren haben zusätzlich das Statusflag.

Gehe mal bitte auf die Beta Version des Moduls. Da ist der Aufruf der nicht mehr unterstützten Funktion bereits entfernt.

OK der Fehler ist jetzt weg. Aber wenn ich die Variablen anlegen will bekomme ich die folgende Meldung

Warning: Float Variable konnte nicht angelegt werden. Ident: averageIgnitiontime, Label: EBM.averageIgnitiontime in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: HwcWaterflow, Label: EBM.HwcWaterflow.uin100 in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: HwcWaterflowMax, Label: EBM.HwcWaterflowMax.uin100 in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: IonisationVoltageLevel, Label: EBM.IonisationVoltageLevel in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: maxIgnitiontime, Label: EBM.maxIgnitiontime in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: minIgnitiontime, Label: EBM.minIgnitiontime in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: ModulationTempDesired, Label: EBM.ModulationTempDesired in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278
 in /- on line 73

Schau bitte mal, ob die Variablen bereits (als Integer) existieren. Da war noch eine Ungenauigkeit in der alten Modulversion. Die Variablen müssen als Float angelegt werden.
Bitte die Variablen einmal löschen und neu anlegen lassen.

Ich habe alle Variablen gelöscht und dann durch das Modul neu angelegt.
Es kommt die folgende Fehlermeldung

Warning: Float Variable konnte nicht angelegt werden. Ident: HwcWaterflow, Label: EBM.HwcWaterflow.uin100 in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: HwcWaterflowMax, Label: EBM.HwcWaterflowMax.uin100 in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: IonisationVoltageLevel, Label: EBM.IonisationVoltageLevel in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: ModulationTempDesired, Label: EBM.ModulationTempDesired in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: averageIgnitiontime, Label: EBM.averageIgnitiontime in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: maxIgnitiontime, Label: EBM.maxIgnitiontime in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278

Warning: Float Variable konnte nicht angelegt werden. Ident: minIgnitiontime, Label: EBM.minIgnitiontime in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 1278
 in /- on line 73

Prüfe mal bitte, ob die unter Label angegebenen Profile („Label: EBM.HwcWaterflow.uin100“, …) noch als Integer Profile existieren. Die müssten auch manuell gelöscht werden.

Ja das wars, jetzt sieht es gut aus Danke

Hallo Burkhard,

ich habe das Problem aus dem Beitrag immer noch.
Ich habe inzwischen ein Update von ebusd auf 23.2 ausgeführt, die richtige CSV (25.ehp.hwc.csv) wird auch gezogen.
In der CSV ist der Wert weiterhin als schreibbar markiert, in Symcon kommt der Wert aber nur lesbar an.

root@ebusd:/# ebusctl i
version: ebusd 23.2.23.2
update check: OK
device: /dev/ttyUSB0
signal: acquired
symbol rate: 17
max symbol rate: 195
min arbitration micros: 1
max arbitration micros: 5773
min symbol latency: 0
max symbol latency: 35
scan: finished
reconnects: 0
masters: 3
messages: 742
conditional: 262
poll: 3
update: 60
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201", loaded "vaillant/08.ehp.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=UIH00;SW=0374;HW=6901", loaded "vaillant/15.uih.csv"
address 23: slave, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201", loaded "vaillant/23.ehp.cc.csv"
address 25: slave, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201", loaded "vaillant/25.ehp.hwc.csv"
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 50: slave, scanned "MF=Vaillant;ID=EHP00;SW=0419;HW=7201", loaded "vaillant/50.ehp.mc.csv"
address e0: slave, scanned "MF=Vaillant;ID=OMU00;SW=0118;HW=5202", loaded "vaillant/e0.omu.csv"

Könntest du einmal die Testfunktion „Lese Konfiguration aus“ durchführen und davon einen Debug ziehen? Ich hoffe, da findet sich ein Hinweis.

Dump anbei.
dump.txt (127,2 KB)

Da sieht man etwas. Die Abfrage

http://192.168.178.81:8080/data/hwc/?def&verbose&exact&write

liefert den Grund.

Einschränken kannst du die Abfrage mit

http://192.168.178.81:8080/data/hwc/LegioProtectionDay?def&verbose&exact&write

In der Antwort steht

write: false

Kannst du denn den Wert in der ebusd Konsole ändern?

Ich habe ein paar Versuche gemacht:

localhost: r -c hwc LegioProtectionEnabled
yes

localhost: w -c hwc LegioProtectionEnabled no
ERR: element not found

localhost: wi -c hwc LegioProtectionEnabeld no
ERR: command not found

localhost: write -c hwc LegioProtectionEnabled no
ERR: element not found

localhost: r -c hwc LegioProtectionEnabled
yes

localhost: write -c HWC LEGIOPROTECTIONENABLED NO
ERR: element not found

Hast du schon eine Idee, warum der Wert nicht mehr schreibbar ist?

Hier ist das Write Kommando

Diese beiden Aufrufe sind soweit richtig, aber ebusd findet kein schreibbares Element mit dem Namen.
Das kann nur an der Definition in der Konfigurationsdatei liegen.

Da müsstest du mal bei ebusd nachfragen.

Danke dir, ich gehe nochmal auf John zu.

Hi Burkhard, John hat das Thema gelöst. Ich hatte im Container keine ACL angelegt. Ich starte den Container jetzt mit --accesslevel=* und schon läufts. Danke für deine Hilfe!

Super das freut mich. Gibt es da eventuell noch etwas, was ich dokumentieren sollte?
Wenn du magst schau doch mal in die Doku, ob du eine Stelle findest, die vielleicht noch ergänzt werden sollte.

Ja, ich denke das fehlt noch in der Installationskurzanleitung zu ebusd:

Ich denke unter 2.) sollte das erwähnt werden, spätestens unter 4.) beim Schreiben, da man eben zum Schreiben teilweise höhere Rechte benötigt.

John verweist in der Doku unter GitHub - john30/ebusd: daemon for communication with eBUS heating systems aktuell ganz unten auf die User Authentication 3.1. TCP client commands · john30/ebusd Wiki · GitHub und die ACL 2. Run · john30/ebusd Wiki · GitHub