NEWS
Wie mit MQTT Daten in der IOBroker VIS justgage anzeigen?
-
Hallo zusammen,
was mit dem Sonoff Adapter sehr einfach war, will mir mit dem Moquitto MQTT nicht gelingen.Folgende Idee habe ich....
Eine Steckdose Sonoff POW2 mit Tasmota,
der angeschlossene Verbraucher nimmt z.B. 100W.Diese möchte ich A: Verbrauch Aktuell in dem Justgage Widget sehen
B: den Gesamt Verbrauch auch als Zähler unter dem Widget sehen.Die Daten sind da, aber ich weiß nicht wie ich diese umwandeln kann oder muß.
{ "Time": "2023-08-07T18:58:04", "ENERGY": { "TotalStartTime": "2022-07-22T12:21:12", "Total": 0.583, "Yesterday": 0, "Today": 0, "Period": 0, "Power": 0, "ApparentPower": 0, "ReactivePower": 0, "Factor": 0, "Voltage": 235, "Current": 0 } }
Ich hatte es so in der VIS am laufen, aber seit der Umstellung auf Mosquitto bekomme ich dies nicht mehr hin.
Kann mir bitte einer von Euch mal sagen woran ich scheitere.
Vielen Lieben Dank jetzt schon mal.
Grüße Michael
-
@einstein2002 Dann mach dir halt eigene Datenpunkte oder Aliase. Wenn Du NodeRed nutzt habe ich einen Flow - der Dir automatisch die Datenpunkte erstellt.
-
@mickym
Da ich aber den Wald vor lauter Bäume nicht sehe, weiß ich nicht was ich im MQTT Explorer anlegen muss.Könntest Du dies etwas ausführlicher erläutern??
Danke
-
@mickym
Node Red benutze ich nicht, aber wenn es damit geht versuche ich es damit. -
@einstein2002 sagte in Wie mit MQTT Daten in der IOBroker VIS justgage anzeigen?:
@mickym
Node Red benutze ich nicht, aber wenn es damit geht versuche ich es damit.Na es ist ein tolles Tool - und ich mag es viel lieber als Puzzeln oder Code schreiben. Wenn Du nur einzelne Daten extrahieren willst, dann reicht es einen Alias anzulegen, den kannst Du dann als Input für VIS verwenden. Ich verlinke Dir gleich einen Link zu dem Thread, indem ich Dir das Vorgehen beschrieben habe.
Schau mal hier habe ich beschrieben, wie Du mit einem Alias einzelne Eigenschaft aus einem Objekt extrahierst.
https://forum.iobroker.net/post/980575#
Wenn Du also Total für den Gesamtverbrauch extrahieren willst, dann gibst Du als Konvertierungsfunktion.
JSON.parse(val).ENERGY.Total
ein
-
@einstein2002 sagte in Wie mit MQTT Daten in der IOBroker VIS justgage anzeigen?:
@mickym
Node Red benutze ich nicht, aber wenn es damit geht versuche ich es damit.Wenn Du es lernen willst und tiefer einsteigen willst, dann helfe ich Dir gerne. Wie gesagt ich habe einen Flow erstellt, der macht Dir einzelne Datenpunkte - aber macht nur Sinn wenn Du da tiefer einsteigen willst.
https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen
-
@mickym
Sorry Frau hatte kurz zum Essen gerufen.Klar möchte ich da einsteigen.
Ich schau mal kurz auf den link und lese mal was du dort geschrieben hattest.Geb mir mal ein paar Minuten.
Danke!!!
-
@einstein2002 Schau Dir erst mal das mit dem Alias an - das ist die schnelle Lösung.
-
@mickym sagte in Wie mit MQTT Daten in der IOBroker VIS justgage anzeigen?:
JSON.parse(val).ENERGY.Total
Dies bei Lesen und Schreiben eingeben?
-
@einstein2002 Beim Lesen - Du willst den Originaldatenpunkt lesen bzw. spielt eigentlich keine Rolle - weil Du eigentlich keine unterschiedliche Konvertierungsfunktionen benutzt (also Haken raus).
-
@mickym
So das hat geklappt! Danke dafür!!Aber nun habe ich den Verbrauch Total, was ist mit dem Verbrauch Aktuell?
Wie lautet dafür die Eingabe????
Sorry aber wenn Du so gar keine Ahnung hast, obwohl ich weiß was da ja rein muss, dann ist das schon manchmal echt nicht sehr schön!!
Aber danke danke danke!!! -
@mickym
obwohl....Ich glaube ich weis was da rein muss....
Nicht .ENERGY.TOTAL
sondern
ENERGY.POWER -
@einstein2002 Na der wird wohl unter Current stehen. Dann halt neuen Alias
JSON.parse(val).ENERGY.Current
oder Power
aber Du siehst ja wie das Prinzip funktioniert.
-
@mickym
Manchmal ist es so einfach!!!Das habe ich jetzt verstanden!!
Nochmals Danke!! Auch wenn es für Euch absoluter Anfänger Horror sein muss!!
Mir hat es sehr geholfen! -
-
@einstein2002 Ja das ist recht einfach - Du liest entweder über die iobroker-In oder über die mqtt-In node den Sensor Wert ein und überprüfst mit einer switch Node ob der Wert über 15 oder kleiner gleich 15 ist und setzt dann halt als payload on oder off. Damit schaltest Du dann den 2. POW2. Damit nicht sinnlos geschaltet wird - kann man noch eine filter Node dazwischen hängen.
Am Besten ist immer zu zeigen, was Du bereits gemacht hast.Die tele Äste melden zwar meist periodisch, aber oft hast du auch unter stat einen direkten Wert zum Beispiel STATUS8 für den Sensor. - musst mal schauen.
Meine Sensor schaut so aus:{"Time":"2023-09-17T12:19:31","ENERGY":{"TotalStartTime":"2020-01-24T22:21:27","Total":4.102,"Yesterday":0.026,"Today":0.009,"Period":9,"Power":127,"ApparentPower":133,"ReactivePower":39,"Factor":0.96,"Voltage":228,"Current":0.582}}
So ich gehe mal davon aus - dass wenn Power über 15 ist dann möchtest Du Power On dann über den cmnd Ast Deines 2. Sonoff schalten. Ich simuliere das mal mit Inject und Debug Nodes.
-
Hallo mickym,
vielen Dank für die Antwort,
ich habe noch nicht viel gemacht, habe im IOBroker einen Datenpunkt erstellt der mir einfach den Power Wert ausgibt. Diesen habe ich in einer inject eingefügt. Das wars.
[ { "id": "2b32c5600523cb37", "type": "tab", "label": "Partykeller Lüftersteuerung", "disabled": false, "info": "", "env": [] }, { "id": "3a114f3e5d7c60a4", "type": "ioBroker in", "z": "2b32c5600523cb37", "name": "Denon AV Verstärker Power", "topic": "alias.0.DenonAV_Verstärker_Power", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "outFormat": "ioBroker", "x": 140, "y": 100, "wires": [ [] ] } ]
-
@mickym
wäre es möglich das du es kurz bei Dir in NodeRed aufbaust und es dann Exportierst? -
@einstein2002 Ja mache ich gleich - ich sehe Du gehst also nicht auf die originalen Werte sondern auf den Alias.
Kannst Du machen - mit NodeRed kannst Du aber auch ohne Konvertierung direkt mit den Objekten arbeiten, dass ist einer der Vorteile gegenüber den anderen Logikmaschinen.
Ich nehm also mal eine Inject Node in dem ich den Zahlenwert 30 und einmal 10 einspeise und mache eine Flow.
.... wird fortgesetzt.
-
@mickym
wenn es einfacher ist dann nehme ich logisch die Originalen Werte und gehe nicht über den Datenpunkt im IOB