Datenaustausch mit externem Programm (z.B. weewx)

Begonnen von olwaldi, 06 August 2026, 16:10:45

Vorheriges Thema - Nächstes Thema

olwaldi

Ich überlege, ob ich einige Daten aus meiner Wettersoftware weewx in fhem verfügbar machen sollte. Dazu gibt es viele Möglichkeiten. Meine Idee ist, daß weewx automatisch regelmäßig die interessierenden Daten als fhem-Skript generiert und fhem diese automatisch lädt. Die Daten sollen in einem dummy in einer readingList abgespeichert werden. Das Ganze sind nur 2..3 Zeilen fhem-Code:

define weewx dummy
attr weewx readingList temp1 temp2 ...
define updateWeewx at +*00:05:00 include /var/www/html/weewx/fhem.cfg
In der Datei fhem.cfg (vielleicht ungeschickt gewählter Dateiname) werden die Werte durch z.B.
set weewx temp1 23
set weewx temp2 10
gesetzt. All das funktioniert prima, allerdings wird jeder include-Aufruf im log protokolliert. Laut KI könnte ich temporär den globalen Loglevel auf 0 erniedrigen. Ginge das auch eleganter? Auch unschön: keine Fehlerbehandlung, falls die Datei nicht existiert.

An meiner Lösung gefällt mir die extreme Kürze. Eleganter wären sicherlich mqtt oder json oder http.

Ein zweites Problem könnte im readingList liegen, etwa wenn ich 20 oder 30 Variablen übergeben will.


Grüßle, Michael



Beta-User

Kommt mir überkomplex vor.

Falls es nicht irgendwo eine MQTT-Lösung geben sollte (was ich annehme), würde ich inotify und/oder jsonMod/HTTPMOD als Stichwort in den Raum stellen...
Server: HP-elitedesk@Debian 13, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

olwaldi

Naja, diese Alternativen kommen mir komplexer vor. Für weewx gibt es ansatzweise MQTT-Support, und in meinem fhem müßte ich MQTT erst aktivieren. Ähnlich bzgl. json, gibts nur ansatzweise.

Daher empfinde ich ja meine include-Lösung ja als wesentlich unter-komplexer. Auf weewx-Seite hingegen ist es sehr einfach, ein beliebiges Outputformat erzeugen zu lassen, könnte auch problemlos ein json sein. Aber das müßte man auf fhem-Seite wieder dekodieren. Und genau das spare ich mit dem include. Aber json gucke ich mir mal an, da mir json als Standard auch recht gut gefällt.