OWL +USB ohne Kernelmodul per mqtt nutzen

Begonnen von dadoc, 15 Juli 2023, 16:41:09

Vorheriges Thema - Nächstes Thema

dadoc

Hallo zusammen,
aus Gründen, die im spanischen Stromversorgervertragsrecht liegen (überschreitet man die gebuchte Wattleistung, wird automatisch der gesamte Strom abgeschaltet und man muss ihn nach fünf Minuten wieder manuell einschalten) habe ich vor Jahren ein OWL +USB Strommesser gekauft, der die den aktuellen Verbrauch induktiv über eine Zangenklemme an der Zuleitung abgreift.
Das Gerät ist per USB an den Raspi angeschlossen, auf dem auch fhem läuft. Es gab/gibt auch ein Modul dafür, allerdings war es erforderlich, jeweils das zum OS passende und spezielle Kernelmodul zu haben und zu installieren, obwohl der CM160-Chip von den aktuellen OS bereits nativ unterstützt wird. D.h. nach jedem Update geht das aufs Neue los. Das Modul zu erstellen ist anscheinend alles andere als trivial, und die guten Geister, die dies in der Vergangenheit taten, haben wohl die Lust verloren...
Ich habe dann einen Work-Around gefunden, dass die Verbrauchsdaten ohne Kernelmodul zugänglich macht: https://github.com/cornetp/eagle-owl
Die Daten werden über eine php-Seite live angezeigt und zusätzlich in eine sql-Datenbank geschrieben. Man braucht folglich php, apache, mysql... und es scheint massiv viele Schreibvorgänge zu geben. Mir ist jedenfalls nach ein paar Monaten zum ersten Mal eine SD-Karte verstorben, wobei ich nicht weiß, ob es einen kausalen Zusammenhang gab.

Mehr oder weniger durch Zufall habe ich eine abgeänderte Version (Fork) gefunden, die die Live-Verbrauchsdaten per mqtt zur Verfügung stellt, d.h. ohne die Notwendigkeit von php, apache, mysql...
Laut Beschreibung soll alternativ/zusätzlich auch das Schreiben in eine Textdatei möglich sein, das hat bei mir allerdings nicht funktioniert.
Fork ist unter https://github.com/jesjimher/eagle-owl zu finden.

Der Einsatz ist relativ simpel, man sollte allerdings das Kompilieren unter dem RaspiOS beherrschen, was aber auch kein Teufekswerk ist. Gegebenenfalls muss man mehrere Pakete nachinstallieren, einfach den Fehlermeldungen von make folgen. Obacht: Binaries usw. aus dem o.g. Repository sind die ursprünglichen, d.h. man muss die sources wirklich kompilieren.

Dann braucht man noch
apt-get install mosquitto-clients
apt-get install libusb-dev

Meine /etc/eagleowl.conf für die Nutzung über mqtt auf demselben Raspi sieht so aus:
# eagleowl configuration file

# Execute a command for every consumption value (NOT YET IMPLEMENTED)
#system_command=""

# Output consumption values to a file in disk. Disabled by default
#output_file="/opt/eagleowl/powercons"

# MQTT broker connection information for publishing values as a MQTT topic
mqtt_host="127.0.0.1"
mqtt_port=1883
mqtt_topic="eagleowl"

# install_path: path where the eagleowl software is installed
install_path="/opt/eagleowl"
Wenn das dann läuft, kann man eagleowl (wie im Repository beschrieben) als daemon installieren, der bei jedem Boot automatisch startet.

In fhem ist zu beachten, dass das bei mqtt-Devices übliche autocreate nicht funktioniert, da die Software (Zitat Beta-User) "mosquitto-pub [verwendet]. Damit funktioniert autocreate nur, wenn man eine ClientID vergibt."

Daher muss man, nachdem man den mqtt-Broker/Server per
define m2s MQTT2_SERVER 1883 globalangelegt hat, das Device manuell wie folgt anlegen (Dank an TomLee und Rudi):
define owl MQTT2_DEVICE
attr owl readingList eagleowl:.* Watt
Nach kurzer Zeit sollte dich das Reading des neuen Device mit dem aktuellen Verbauch befüllen und dann regelmäßig aktualisieren.

Viele Grüße
Martin
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods