[Modul] ebusdMQTT - Einbindung von Vaillant Geräten

Ich habe jetzt die .csv gewechselt. Habe 2 Stück im Netz zur Wahl. Jetzt bekomme ich eine andere Fehlermeldung, komme aber immer noch nicht weiter. Aber vielleicht hilft das bei der Eingrenzung.

Fatal error: Uncaught TypeError: Return value of ebusdMQTTDevice::getFieldLabel() must be of the type string, int returned in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php:836
Stack trace:
#0 /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php(1014): ebusdMQTTDevice->getFieldLabel(Array, 0)
#1 /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php(584): ebusdMQTTDevice->getVariableList('{"Ablufttempera...')
#2 /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php(260): ebusdMQTTDevice->ReadConfiguration()
#3 /-(3): ebusdMQTTDevice->RequestAction('btnReadConfigur...', '')
#4 {main}
  thrown in /var/lib/symcon/modules/.store/de.bumaas.ebusdmqtt/ebusdMQTTDevice/module.php on line 836
 in /- on line 58

Da scheint jetzt eine Felddefinition nicht in Ordnung zu sein. Könntest du mir einmal von deinen beiden Versuchen die JSON Ergebnisse zukommen lassen? Dann schaue ich mir das gerne mal an.

Ich habe das Problem erstmal gelöst. Das Problem scheint zum einen der Aufbau der Messages in der .csv Datei zu sein mit der Ebusd arbeitet. Ich habe diese mal herunter gekürzt auf das nötigstet und siehe da…es läuft :slight_smile: D.h. es ist kein grundsätzliches JSON Problem.
Zum anderen stört es wohl, wenn man nur schreibende Messages hat und die dazugehörige Lesende fehlt. Ich versuche mal im Detail heraus zu finden woran es liegt.

Für den Modulentwickler wäre es sicherlich hilfreich, wenn du die JSON-Ausgabe deiner vorherigen Versuche trotzdem teilen könntest, um ggf. einen Fehler im Modul zu finden und zu beheben. :wink:

Werde ich auf jeden Fall nachreichen mit entsprechenden Informationen :wink:

1 „Gefällt mir“

Ich habe mit der gesamten Einrichtung ein paar Problemchen und habe mich jetzt schon etwas länger damit beschäftigt. Ich konnte mittlerweile mit Hilfe dieses Moduls die Variablen erstellen und auch aktuelle Werte lesen :star_struck:

(Allerdings gabe es bei Button-Click auf Aktuelle Werte Lesen einige PHP-Fehler wegen nicht mehr erlaubten set_time_limit-Befehlen im php-Modul-Code, z.B. C:\ProgramData\Symcon\modules.store\de.bumaas.ebusdmqtt\ebusdMQTTDevice\module.php on line 743)

Nun werden aber keine Werte aktualsisiert. Ich will hier niemanden mit Fehlersuche aufhalten, aber es wäre total hilfreich, wenn erklärt werden könnte, wie die Kommunikation so generell abläuft von Heizung, über Hardware-Platine, über ebusd-Dienst und IPS.

Also ich verstehe es aktuell so:
Der Hardware-Adapter lauscht auf dem Bus und ließt alle Änderungen mit, die die Heizung raus schreibt. Der EBUS-Dienst (bei mir im Docker) verbindet sich und holt periodisch alles ab.
Aber die Heizung schreibt nicht von selbst alle alle Änderungen!??

Über den HTTP-Dienst kann das Modul sich an den ebusd-Dienst wenden und per JSON-Tree die Variablen abholen. Irgendwie scheint ja auch ein Refresh bis in die Heizung hinein auslösbar zu sein, weil der Button lese aktuelle Werte alles abholt. Dazu gehen ja vermutlich echte Befehle auf den Bus, oder? Die werden von HTTP-Requests innerhalb von ebusd über den Hardwareadapter ausgelöst?

Völlig unklar ist mir der MQTT-Ablauf. Was ist denn nun MQTT-Server? Schreibt der ebusd in „sich selbst“ und IPS holt dort ab oder schreibt ebusd in IPS als MQTT-Server?
Müsste da nicht ein gemeinsames Topic vereinbart werden? Was läuft über HTTP, was über den MQTT-Port?
Ich vermute, dass MQTT generell für den Resourcen-schonenden push der Änderungen da ist oder?

Wie gesagt wäre für eine Diagnose total Klasse, wenn ein paar Infos zu den generellen Abläufen und Konzepten beschrieben würden. Das habe ich keiner Anleitung gefunden und ich habe viel gesucht. Das würde bestimmt vielen helfen.
Vielen Dank!

Ich kann dir schon mal den Tipp geben, wechsel auf die beta des Moduls. Hab meinen Adapter auch seit paar Tagen. Mit der beta läuft das schon wesentlich besser und ohne Fehler.
Gruß Dennis

Danke, habe auf Beta gewechselt, set-time-limit ist weg, dafür bei nur einer bestimmten Variable!! der neue Fehler:
PHP-Error- PHP-Error-User Warning: Float Variable konnte nicht angelegt werden. Ident: averageIgnitiontime, Label: EBM.averageIgnitiontime
Error in Script C:\ProgramData\Symcon\modules.store\de.bumaas.ebusdmqtt\ebusdMQTTDevice\module.php on Line 1279
Wenn ich die nicht markiere, kommt kein Fehler.

Ich könnte auch etwas Hilfe benötigen. Ich habe eine Vaillant EcoTec Plus, den EBUSD Adapter Vers.5 auf einem Raspberry und bin dabei das ganze zu intsallieren bzw. zu konfigurieren.
Ich vermute ich bekomme keine EBus Telegramme von meiner Therme und habe den Verdacht das bei einem Platinenaustausch die EBus Funktionalität „verloren“ ging. Falls einer von euch die gleiche Therme hat wäre ich an der Platinen Nummer interessiert.


Ich habe den Adapter an der Klemme Bus (weiß / Braun) angeschlossen

Wie lang ist das Kabel zum Adapter?

2 meter ungefähr glaube ich

Benutzt du twisted pair Kabel? Z. B. Ein Patchkabel? Da es eine busleitung ist sollten die Adern schon miteinander verdrallt sein um Störungen entgegen zu wirken. Man erkennt das nicht auf dem Foto.

Ich nutze ein grünes KNX Kabel. Verdrillt und abgeschirmt. Auf dem Photo ist noch das alte Kabel das ich mittlerweile ersetzt habe

KNX Kabel ist ein IY (St) Y. Müsste 4 Adern haben und sind nicht paarweise verdrallt nur bundweise. Ich kann jetzt nicht sagen ob das zum Problem führt. Aber 2 Meter sollte gehen. Was steht auf der Adapter Webseite bei den beiden punkten?

ebusd connected: ?
eBUS signal:?

Hier ist der Screenshot :
image

Log Raspberry

2023-09-18 23:37:47.983 [main notice] ebusd 23.2.23.2 started with auto scan on device: /dev/ttyAMA0
2023-09-18 23:37:48.438 [bus notice] bus started with own address 31/36

Config EBUSD auf Raspberry

# /etc/default/ebusd:
# config file for ebusd service.

# Options to pass to ebusd (run "ebusd -?" for more info):
#EBUSD_OPTS="--scanconfig"
EBUSD_OPTS="--device=/dev/ttyAMA0 --scanconfig --configpath=http://ebusd.eu/config/"
# MULTIPLE EBUSD INSTANCES WITH SYSV
# In order to run multiple ebusd instances on a SysV enabled system, simply
# define several EBUSD_OPTS with a unique suffix for each. Recommended is to
# use a number as suffix for all EBUSD_OPTS settings. That number will then be
# taken as additional "instance" parameter to the init.d script in order to
# start/stop an individual ebusd instance instead of all instances.
# Example: (uncomment the EBUSD_OPTS above)
#EBUSD_OPTS1="--scanconfig -d /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A50285BI-if00-port0 >
#EBUSD_OPTS2="--scanconfig -d /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A900acTF-if00-port0 >
#EBUSD_OPTS3="--scanconfig -d /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A900beCG-if00-port0 >
#EBUSD_OPTS="--device=/dev/ttyebus  --scanconfig --configpath=http://ebusd.eu/config/"
# MULTIPLE EBUSD INSTANCES WITH SYSTEMD
# In order to run muiltiple ebusd instances on a systemd enabled system, just
# copy the /lib/systemd/system/ebusd.service file to /etc/systemd/system/
# with a different name (e.g. ebusd-2.service), remove the line starting with
# 'EnvironmentFile=', and replace the '$EBUSD_OPTS' with the options for that
# particular ebusd instance.
-d ens:/dev/ttyAMA0 --latency=50

Also wie es aussieht ist der eBus verbunden → eBUS signal: acquired.
Aber der ebusd Dienst hat sich nicht mit dem Adapter verbunden.
Also Fehlersuche auf der ebusd seite.

Die im vorigen Beitrag hinzugefügten Screenshots sehen all gut aus. Bis auf die Rückmeldung der Therme, da werden keine Geräte gelistet. Ansonsten fällt mir nichts auf. Kann mir jemand mit einer schlauen Idee helfen ?

Hast du mal in das Logfile von ebusd geschaut?
Vielleicht ist deine config Datei nicht korrekt.

Die Kurzanleitung zur Installation, die bei der Modulbeschreibung ist, hast du gefunden?

Ich hatte die ganzen Logs, screenshots etc oben geposted

Es würde mir wirklich sehr helfen wenn du mir einen Tipp geben kannst

Momentan bin ich im Urlaub und kann nur wenig helfen.
Mir scheint in der config Datei die letzte Zeile in der Luft zu hängen und nicht korrekt zu sein.
Die hast du eingetragen, oder?

Die Device Konfiguration gehört eigentlich in die EBUSD_OPTS Zeile

EBUSD_OPTS="--device=ens:/dev/ttyAMA0 …