NEWS
Shelly addon über Node Red auf einer NAS mit iobroker
-
@mickym Und dort wird auch aktualisiert. Werde den Alias umstellen, auf "Tele".
-
@laser sagte in Shelly addon über Node Red auf einer NAS mit iobroker:
@mickym Und dort wird auch aktualisiert. Werde den Alias umstellen, auf "Tele".
Da ist es auch richtig.
-
@mickym So, jetzt wird aktualisiert. Mit dem "MQTT anders aufbauen", muß ich mir ansehen, wie das geht...
-
@laser Na wie gesagt - musst Du wissen - du kannst eine Struktur aufbauen - in dem Du die topics richtig benennst.
Wenn Du wie gesagt die tele,stat und cmnd Äste anders haben willst, dann ändere einfach die Reihenfolge der Variablen. Das geht allerdings nur, wenn Du wirklich mqtt benutzt und nicht sonoff-Adapter oder sowas.
Ich habe zum Beispiel alle tamota Geräte unter tasmota dann Gerät und dann die prefixe für cmnd, stat und tele unter den Geräten.
Du musst nur bei den einzelnen Geräten in der mqtt-Konfig ändern:
tasmota/%topic%/%prefix%/
Bei dem Topic könntest Du Dir noch eine Struktur überlegen
Also anstelle nur das Gerät im topic zu benennen - kannst Du Dir auch eine Hierarchie aufbauen - also zum Beispiel
schalter/kueche/steckdosen
Also alles Geschmackssache.
-
@mickym Meistens funktioniert das mit den "Konvertierungsfunktionen" auch. Aber relativ häufig stürzt IOBroker dabei ab. (Beim "Speichern").
Habe einen Tasmota ESP8266 am E-Zaehler installiert. Über einen Alias wollte ich nun die beiden Werte, die er ausgibt, auf 2 Datenpunkte verteilen.
Und diese Datenpunkte mit der Funktion: JSON.parse(val).SN175.E_in
und den anderen Datenpunkt: JSON.parse(val).Sn15.E_out
konvertieren. Hat 1x geklappt. Mit E_out. Der richtige Wert wurde angezeigt. Wenn ich die 2. Funktion in den 2. Datenpunkt eintrage, kommt es zum Absturz. Es hilft nur "iobroker restart" und schnell die Funktion austragen. -
@laser nun eigentlich sollte es meines Erachtens gehen. Hier hast du nur einmal sn175 und einmal sn15 geschrieben. Wenn alle Stricke reißen, dann dröselst Du alles mit Deiner Logikmaschine auf. In node-red habe ich auch einen fertigen Flow, der Dir alles in einzelne Datenpunkte schreibt.
Ich probiere das nachher trotzdem mal aus, ob man nicht 2 alias mit einer Quelle nutzen kann.
-
@mickym Das nach dem (val).xxx war ein Schreibfehler. Aus dem schlechten Gedächtnis- war ja abgestürzt. Mir ging es mehr darum, ob man überhaupt 2x den gleichen Datenpunkt nehmen kann.
-
@laser Ja eigentlich müsste es gehen - ich probier das bei mir gleich aus auch mit einem tele Wert.
-
@laser sagte in Shelly addon über Node Red auf einer NAS mit iobroker:
@mickym Das nach dem (val).xxx war ein Schreibfehler. Aus dem schlechten Gedächtnis- war ja abgestürzt. Mir ging es mehr darum, ob man überhaupt 2x den gleichen Datenpunkt nehmen kann.
Ja also ich sehe kein Problem - bei mir funktioniert das einwandfrei.
Du musst halt nur den richtigen Datentyp nehmen - also wenn das eine Zahl ist, dann musst Du auch den Alias Datenpunkt als Zahl definieren.
-
@mickym Bei mir klemmt es wo ganz anders. Ich lese den Datenpunkt über Alias ein. Aus dem Alias kommt aber nur ein Wert raus. Über "Experte" ausgelesen:
Aus dem MQTT tele-Pfad kommt auch schon nur ein wert (P) raus. Wie aus dem Alias.
In dem Pfad "discovery" des MQTT- Datenpunktes steht aber:
Die Datenpunkte habe ich schon mehrfach gelöscht und neu anlegen lassen. -
@laser Nun das sind aber Tasmota Probleme - wie gesagt ich bin mir nicht sicher, ob das mit discovery richtig ist - aber da dieser Discovery-Wert nicht aktualisiert wird, ist er ja nutzlos. Warum im tele Ast nur der P-Wert rauskommt, das kann ich Dir nicht beantworten. Das ist aber ein Tasmota Problem. Ggf. muss man ein Kommando abschicken, um die vollständigen Werte im tele Ast zu bekommen.
Die Datenpunkte habe ich schon mehrfach gelöscht und neu anlegen lassen.
wie gesagt - ich würde auf der Tasmota suchen und nicht auf der iobroker Seite. Hast Du im stat Ast auch keine Datenpunkte?
-
@mickym im Stat- Ast nur POWER und RESULT
Bei einem anderen Tasmota ESP8266 mit 2 Sensoren funktioniert es.
Mal in Tasmota Foren suchen, was da sein könnte... -
@laser Ja wie gesagt - da bin ich überfragt. Die erstellen da immer irgendwelche Skripts - vielleicht hilft Dir das ja:
https://www.mikrocontroller.net/topic/555811
Wenn ich mir diese Seite anschaue - dann ist das glaube normal, dass nur geänderte oder bestimmte Werte kommen:
https://forum.creationx.de/forum/index.php?thread/3640-smart-meter-mt175-braucht-kleinere-mqtt-reportfrequenz/16:25:11.061 MQT: tele/Stromzaehler/STATE = {"Time":"2022-03-20T16:25:11","Uptime":"13T20:34:39","UptimeSec":1197279,"Heap":21,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":67,"POWER":"OFF","Wifi":{"AP":1,"SSId":"WLS1924","BSSId":"DC:15:C8:5C:92:CC","Channel":11,"Mode":"11n","RSSI":48,"Signal":-76,"LinkCount":1,"Downtime":"0T00:00:03"}} 16:25:11.070 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:11","MT175":{"E_in":5194.0,"E_out":7854.3,"P":-2424.00,"L1":-877.00,"L2":-484.00,"L3":-1038.00,"Server_ID":"090149534b000485d342"}} 16:25:11.395 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:11","MT175":{"P":-2404.00}} 16:25:11.417 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:11","MT175":{"L1":-863.00}} 16:25:11.436 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:11","MT175":{"L2":-484.00}} 16:25:11.457 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:11","MT175":{"L3":-1038.00}} 16:25:12.495 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:12","MT175":{"P":-2201.00}} 16:25:12.516 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:12","MT175":{"L1":-805.00}} 16:25:12.536 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:12","MT175":{"L2":-390.00}} 16:25:12.558 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:12","MT175":{"L3":-989.00}} 16:25:13.676 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:13","MT175":{"P":-2022.00}} 16:25:13.698 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:13","MT175":{"L1":-739.00}} 16:25:13.718 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:13","MT175":{"L2":-364.00}} 16:25:13.738 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:13","MT175":{"L3":-920.00}} 16:25:14.710 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:14","MT175":{"P":-1885.00}} 16:25:14.731 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:14","MT175":{"L1":-686.00}} 16:25:14.751 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:14","MT175":{"L2":-327.00}} 16:25:14.771 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:14","MT175":{"L3":-869.00}} 16:25:15.777 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:15","MT175":{"P":-1761.00}} 16:25:15.799 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:15","MT175":{"L1":-656.00}} 16:25:15.819 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:15","MT175":{"L2":-272.00}} 16:25:15.840 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:15","MT175":{"L3":-832.00}} 16:25:16.882 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:16","MT175":{"P":-1701.00}} 16:25:16.893 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:16","MT175":{"L1":-633.00}} 16:25:16.902 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:16","MT175":{"L2":-259.00}} 16:25:16.920 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:16","MT175":{"L3":-811.00}} 16:25:17.998 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:17","MT175":{"P":-1699.00}} 16:25:18.017 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:18","MT175":{"L1":-632.00}} 16:25:18.037 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:18","MT175":{"L2":-256.00}} 16:25:18.060 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:18","MT175":{"L3":-808.00}} 16:25:19.032 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:19","MT175":{"P":-1635.00}} 16:25:19.053 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:19","MT175":{"L1":-616.00}} 16:25:19.074 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:19","MT175":{"L2":-240.00}} 16:25:19.095 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:19","MT175":{"L3":-787.00}} 16:25:56.698 MQT: tele/Stromzaehler/SENSOR = {"Time":"2022-03-20T16:25:56","MT175":{"P":-749.00}}
Vielleicht musst Du in dem letzten Link was am Script machen.
>D >B ->sensor53 r >M 1 +1,3,s,16,9600,MT175 1,77070100010800ff@1000,E-gekauft,kWh,E_in,1 1,77070100020800ff@1000,E-geliefert,kWh,E_out,1 1,77070100100700ff@1,P,W,P,18 1,77070100240700ff@1,L1,W,L1,18 1,77070100380700ff@1,L2,W,L2,18 1,770701004C0700ff@1,L3,W,L3,18 1,77070100000009ff@#,Zaehlernummer,,Server_ID,0 #
Das sieht so aus, als ob Du hier speziell diese Parameter in ein Script übernehmen musst, dass es via Sensor ausgegeben wird.
Aber das hat alles nichts mehr mit dem iobroker zu tun. - Sorry dass ich da nicht weiter helfen kann.
-
@mickym Danke. Ich forsche weiter. Mein Script sieht ebenso aus, etwas andere Bezeichnungen.
-
@laser Ja aber Du siehst - dass dieses E_in und E_out auch bei dem nur einmal ausgegeben wird und dann nur noch P,L1,L2,L3
-
@mickym Ja, die haben das gleiche Problem. Hoffentlich eine Lösung gefunden!
Wenn natürlich irgendwann der String von dem "JSON.parse" nicht gefunden wird und sich IOBroker jedes Mal aufhängt, ist das suboptimal. -
@mickym Dort wurde das so gelöst, daß zyklisch gesendet wird. Das erste gesendete Datenpaket enthält alle Werte.
Das in einen Alias zu packen hat bei mir nicht geklappt, ich nehme 3 Einzelne. -
@laser Ja aber wird ja nicht aktualisiert oder?
-
@mickym eben doch! Dort wurde dieses Script in den Tasmota geladen:
>D ;BOOT >B ;disable mqtt at boot prevents sending 0 smlj=0 ->sensor53 r ;SML >M 1 +1,3,s,16,9600,MT175 1,77070100100700ff@1,Leistung,W,Power_curr,0 1,77070100010800ff@1000,Verbrauch,KWh,Total_in,0 ;Die nächste 1 Zeile benötigt ihr nur, wenn ihr eine PV-Anlage habt. Sonst einfach löschen! 1,77070100020800ff@1000,Netzeinspeisung,KWh,Total_out,0 # ;EVERY SECOND >S ;start mqtt if smartmeter is sending if (sml[2]>0) { smlj=1 }
-
@laser Na dann wird es doch jede Sekunde gesendet - aber wie gesagt da bin ich nicht fit genug in Tasmota.