Tasmota (Smartmeter für Stromzaehler) manuell konfigurieren (MQTT2_DEVICE)

Begonnen von Fhemschorsch, 16 Dezember 2022, 13:23:11

Vorheriges Thema - Nächstes Thema

Fhemschorsch

Hi,

ich verzweifle grad an einem Thema:

Ich habe mir ein Wifi-Lesekopf für meinen Stromzähler gebaut, der auch schon sauber über MQTT kommuniziert.

MQTT Broker ist Mosquitto, welcher getrennt von fhem läuft. Das Autocreate geht dann meines Wissens dann nicht.

Im Augenblick kommen auf tasmota/discovery/C8C9A3581121/sensors die entsprechenden Werte an, das Reading ist derzeit ein JSON-Ausdruck:


{"sn":{"Time":"2022-12-16T12:35:03","Haus":{"Meter_id":"445a47","total_in":33593.24,"Power_curr":473.00}},"ver":1}


Gibt es eine Möglichkeit, die beiden Werte total_in und Power_curr als einzelne Readings rauszubekommen? Ich brauche auch keine dynamische Liste, die Werte werden ja wahrscheinlich gleich sein. Im Augenblick hab ich den Code nur als Gesamtreading.

defmod Stromzaehler MQTT_DEVICE
attr Stromzaehler userattr subscribeReading_Total subscribeReading_Current
attr Stromzaehler autoSubscribeReadings tasmota/discovery/C8C9A3581121/sensors
attr Stromzaehler room mobil
attr Stromzaehler subscribeReading_Total tasmota/discovery/C8C9A3581121/sensors {ReadingsNum('Meter_id','StromAktuell',99)}

setstate Stromzaehler 2022-12-16 12:34:26 IODev Mosquitto
setstate Stromzaehler 2022-12-16 12:35:03 Total {"sn":{"Time":"2022-12-16T12:35:03","Haus ":{"Meter_id":"445a47","total_in":33593.24,"Power_curr":473.00}},"ver":1}
setstate Stromzaehler 2022-12-16 12:35:03 transmission-state incoming publish received



rudolfkoenig

Wir haben uns viel Muehe gegeben, die MQTT-Anbindung in FHEM mit den MQTT2 Modulen benutzerfreundlich zu machen.
Manche Benutzer bestehen weiterhin auf das alte und komplizierte MQTT Modul.
Das ist OK, der Support ist halt dafuer relativ mager.

ZitatMQTT Broker ist Mosquitto, welcher getrennt von fhem läuft. Das Autocreate geht dann meines Wissens dann nicht.
Das ist so nicht richtig, der Aufwand ist aber hoeher, auch mit MQTT2_CLIENT.
Man muss in diesem Fall eine MQTT2_DEVICE als sog. Bridge-Device konfigurieren.
Es gibt aber auch dafuer Unterstuetzung ueber attrTemplate.

Zu den alten MQTT + MQTT_DEVICE Kombination kann ich nichts sagen.

Fhemschorsch

Ok, das MQTT-Modul läuft bei mir schon Ewigkeiten und unauffällig.

Ich habe derzeit nicht den Drive, groß was auf ein neues (und bestimmt viel komfortableres) Modul zu migrieren, daher hab ich mir jetzt mit nem Reading den JSON String gezogen und das Device ExpandJson zerlegt mir den String in Einzelreadings:

defmod expandJson expandJSON .*:.\{.*}

Aber vielen Dank, ich werde in einer ruhigeren stressfreieren Minute schauen, wie ich auf MQTT2 migriere :)