[gelöst] Owl +USB Energiemesser über mqtt in fhem eingebunden

Begonnen von dadoc, 02 Juli 2023, 16:40:09

Vorheriges Thema - Nächstes Thema

dadoc

Hallo zusammen,
ich bin kurz davor, den hier öfters behandelten Energiemesser Owl +USB, für den es bei Nuztzung des entsprechenden fhem-Moduls immer wieder neuer Kernel-Treiber bedarf (die aber keiner mehr machen mag), in mein fhem zurück zu holen. Ohne Notwendigkeit von sql-DBs, Apache usw.
Der Fork https://github.com/jesjimher/eagle-owl von Jesús Jiménez schickt den aktuellen Energieverbrauch per MQTT raus: Kompilieren und Senden an fhem (auf demselben Raspberry) habe ich zu meiner Verwunderung auch hinbekommen.
Die Config von eagleowl sieht so aus:
# MQTT broker connection information for publishing values as a MQTT topic
mqtt_host="127.0.0.1"
mqtt_port=1883
mqtt_topic="eagleowl"

In fhem habe ich per
define m2s MQTT2_SERVER 1883 globalangelegt. autocreate = simple. Der empfängt auch mqtt-Traffic:
mosq_8U9mZRcm_NmQAZK_rK    eagleowl    547.400000
mosq_8U9mZRcm_NmQAZK_rK    eagleowl    597.400000
 
der letzte Wert in der Zeile ist der Verbrauch in Watt.
Allerdings wird kein Device angelegt, und manuell habe ich es auch nicht hinbekommen mit
define myowl MQTT2_DEVICE eagleowlbzw.
define myowl MQTT2_DEVICE mosq_8U9mZRcm_NmQAZK_rKHabe es auch mit ein paar Templates versucht, aber da kommt nix.
Da ich zugegebenermaßen immer noch nicht so recht weiß, was ich in fhem mit mqtt und den ganzen unterschiedlichen Modulen tue: Was mache ich falsch bzw. wie bekomme ich ein Device, dass als Reading den Energieverbrauch enthält?

Kleine OT-Anekdote: Sehe gerade, dass Jesús Jiménez, der die Software vor 7 Jahren geforked hat, als Standort Esporles auf Mallorca hat. Das ist das Nachbardorf von uns! Die Welt ist ein Taschentuch, wie der Spanier sagt...

Danke & 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

TomLee

Evt. nicht mitbekommen das es angelegt wurde und du siehst es, warum auch immer, nur nicht im Raum MQTT2_DEVICE ?

Gibt list MQTT2_mosq_8U9mZRcm_NmQAZK_rK was zurück ?

Ein Device vom Type autocreate existiert und in dem Attribut ignoreTypes ist nicht MQTT2.* eingetragen ?


Beta-User

Das scheint intern mosquitto-pub zu verwenden. Damit funktioniert autocreate nur, wenn man eine ClientID vergibt.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

dadoc

List findet das Device nicht (das BTW bei jedem Start von cm160 anders heisst). Autocreate existiert, keine ignores. Bei verbose 5 steht im Log:

2023.07.02 17:12:52 4: Connection accepted from m2s_127.0.0.1_58752
2023.07.02 17:12:52 5: in@127.0.0.1:58752 CONNECT: (16)#(0)(4)MQTT(4)(2)(0)(5)(0)(23)mosq/8U9mZRcm[NmQAZK@rK
2023.07.02 17:12:52 4:   m2s_127.0.0.1_58752 cid:mosq/8U9mZRcm[NmQAZK@rK CONNECT V:4 keepAlive:5
2023.07.02 17:12:52 5: out@127.0.0.1:58752 CONNACK:  (2)(0)(0)
2023.07.02 17:12:52 5: in@127.0.0.1:58752 PUBLISH: 0(20)(0)(8)eagleowl547.400000
2023.07.02 17:12:52 4:   m2s_127.0.0.1_58752 mosq/8U9mZRcm[NmQAZK@rK PUBLISH eagleowl:547.400000
2023.07.02 17:12:52 5: m2s: dispatch autocreate=simple\000mosq_8U9mZRcm_NmQAZK_rK\000eagleowl\000547.400000
2023.07.02 17:12:52 5: in@127.0.0.1:58752 DISCONNECT: (224)(0)
2023.07.02 17:12:52 4:   m2s_127.0.0.1_58752 mosq/8U9mZRcm[NmQAZK@rK DISCONNECT
Wie/wo muss die ClientID vergeben werden?
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

Beta-User

Zitat von: dadoc am 02 Juli 2023, 16:40:09Die Config von eagleowl sieht so aus:
# MQTT broker connection information for publishing values as a MQTT topic
mqtt_host="127.0.0.1"
mqtt_port=1883
mqtt_topic="eagleowl"
Da muss es irgendwie hin...

(Doku wälzen...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

dadoc

Zitat von: Beta-User am 02 Juli 2023, 18:31:10Da muss es irgendwie hin...

(Doku wälzen...)
Ich würde ja gern wälzen, aber die Doku auf https://github.com/jesjimher/eagle-owl ist sehr übersichtlich.
Etwas wie ClientID="190162" einfach in die Conf einzufügen geht erwartungsgemäß nicht bzw. dann wird garnichts mehr an fhem geschickt (obwohl auf der Konsole die Werte weiter angezeigt werden, d.h. das Programm läuft.)
Ich würde ja mit Grausen vermuten, dass man die ClientID irgendwo im Quelltext einbauen muss, damit die korrekt übermittelt wird?
Kann ich denn das Device nicht manuell in fhem anlegen?
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

TomLee

ZitatKann ich denn das Device nicht manuell in fhem anlegen?

Versuch mal:

attr <deindevicename> readingList
eagleowl:.* watt

dadoc

Done, aber ohne erkennbaren Effekt. Zur Sicherheit, dass ich nichts falsch verstanden habe, das list:
Internals:
   CID        eagleowl
   DEF        eagleowl
   FUUID      64a18050-f33f-04c7-dcdb-2bbc7bbbf9bb9fda
   IODev      m2s
   NAME       owlmqtt
   NR         364
   STATE      ???
   TYPE       MQTT2_DEVICE
   eventCount 1
   OLDREADINGS:
   READINGS:
   hmccu:
Attributes:
   autocreate 1
   icon       mqtt_bridge_2
   model      MQTT2_CLIENT_general_bridge
   readingList eagleowl:.* watt
   room       Energie,mqtt
   setList    clear_all:noArg {fhem("deleteattr $NAME readingList; deletereading -q $NAME (?!associatedWith|IODev).*");return undef}
   setStateList on off
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

TomLee

War auch nur so ein Gedanke, hab gedacht das würde klappen.
Bin genauso nass wie du, ich wüsste nicht wie/wo man das "[-i client-id]" einbaut, wenn ich mich dazu einlese.

Es geht auf jeden Fall auch ohne CID, denk ich, sonst käm ja nix an, aber wie der entsprechende ReadingList-Eintrag auszusehen hat ¯\_(ツ)_/¯

rudolfkoenig

Ich habe erst Folgendes definiert:
define m2s MQTT2_SERVER 1883 global
define owl MQTT2_DEVICE
attr owl readingList eagleowl:.* watt
und dann Folgendes abgesetzt:
mosquitto_pub -t eagleowl -m 547.400000
Ich bekam Folgendes an Reading:
2023-07-02 21:10:53  watt            547.400000

dadoc

#10
Danke! So hatte ich es eigentlich ja auch, aber ich habe in fhem jetzt mal gelöscht + neu angelegt. Interessanterweise ergab Dein mosquitto_pub-Befehl im Reading nicht 547.00 Watt, sondern
watt 499.100000 2023-07-02 21:31:52Beim zweiten Mal waren es dann 547.
EDIT: Aber wie kriege ioch das jetzt hin, dass es kontinuierlich die aktuellen Werte ins Reading schreibt?
Jetzt kommen anscheinend aktuelle Werte herein. Klasse, vielen Dank.
Ich werde das jetzt ein Weilchen beobachten und dann versuchen, das im Wiki zu dokumentieren, das es anscheinend neben mir noch eine ganze Reihe anderer verlorener Seelen gibt, die nach neuen Kernel-Treibern gieren, um ihre Eulen wieder nutzen zu können...
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

dadoc

Zitat von: dadoc am 02 Juli 2023, 21:38:17Ich werde das jetzt ein Weilchen beobachten und dann versuchen, das im Wiki zu dokumentieren, das es anscheinend neben mir noch eine ganze Reihe anderer verlorener Seelen gibt, die nach neuen Kernel-Treibern gieren, um ihre Eulen wieder nutzen zu können...
Scheint stabil zu laufen. Ich habe das jetzt erstmal "ne Nummer kleiner" als Wiki-Eintrag hier zusammengefasst.
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