NEWS
Tasmota mqtt wird nicht komplett empfangen
-
@warp735 sagte in Tasmota mqtt wird nicht komplett empfangen:
Muss da was bei Tasmota anders konfiguriert werden? (ausser port)
Port, User und Password müssen passen.
Außerdem habe ich mal irgendwo (hier) gelesen, dass dazwischen immer 1 Port freibleiben sollte.
Wenn also MQTT auf 1883 läuft, den Sonoff auf 1885 laufen lassen. -
user und passwort habe ich nicht. Habs auf 1882 geändert und nun läufts. Zwar wieder 100MB RAM verbraten, aber was soll´s
Danke euch
-
@codierknecht sagte in Tasmota mqtt wird nicht komplett empfangen:
Außerdem habe ich mal irgendwo (hier) gelesen, dass dazwischen immer 1 Port freibleiben sollte.
weil der folgende Port für den Secure Zugriff verwendet wird....
....hab ich im Hinterkopf -
@warp735 sagte in Tasmota mqtt wird nicht komplett empfangen:
wieder 100MB RAM verbraten
Wenn Du noch mehr Tasmota Gerätes hast (oder mal haben wirst) wirst Du den sicher zu schätzen wissen.
Der ist halt genau dafür gemacht. Spart Scripte und Alias-Konvertierungen -
@warp735 sagte in Tasmota mqtt wird nicht komplett empfangen:
Zwar wieder 100MB RAM verbraten, aber was soll´s
der lag vorher ja auch nur dumm rum ...
-
@bananajoe sagte in Tasmota mqtt wird nicht komplett empfangen:
der lag vorher ja auch nur dumm rum ...
Stimmt auch wieder.. hab nicht mal 5 von 64GB vom ioBroker belegt.
-
@codierknecht
Hab gerade mal den Stecker gezogen, weil ich mir ne Push bei Verbindungsabbruch senden lassen will. Der Stromleser an sich läuft wieder, aber die Instanz bleibt gelb. Ist das "Standard" das sich da keine Verbindung mehr aufbaut?12:30:22.416 MQT: Connect failed to 10.10.10.20:1882, rc -2. Retry in 90 sec
edit: lag an meiner Firewall
-
@Codierknecht @paul53 Kann mir Jemand auf die Sprünge helfen?
Habe auch einen Tasmota Lesekopf. Möchte aber über den Alias gehen, um Den Leistungswert zu bekommen. Funktioniert leider nicht. IO Broker hängt sich auf, wenn ich diese Konvertierungsfunktion eintrage:
JSON.parse(val).Power_curr
JSON.parse(val)["].Power_curr funktioniert auch nicht, IOB hängt aber nicht.
Aus dem mqtt benutze ich die "sensor" Daten. Ergebnis. "NULL"
in der Tasmota- Console wird angezeigt:14:52:20.568 MQT: tasmota/tele/tasmota_zaehler/SENSOR = {"Time":"2025-02-17T14:52:20","MT175":{"Power_curr":-462,"Total_in":1843,"Total_out":326,"wirkenergie_total":326267}}
-
JSON.parse(val).MT175.Power_curr
-
@codierknecht sagte in Tasmota mqtt wird nicht komplett empfangen:
JSON.parse(val).MT175.power_curr
Danke. Auch das habe ich schon probiert. Ergebnis: "undef".
Kann ich irgendwo den String in seiner Rohfunktion im IOB auslesen?
Konvertierungs-Script in Tasmota:>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 1,77070100020800ff@1000,Netzeinspeisung,KWh,Total_out,0 1,77070100020800FF@1,Netzeinspeisung,Wh,wirkenergie_total,0 #
-
@laser
Mein Fehler. Es wird Groß-/Kleinschreibung berücksichtigt. Hab's oben korrigiert.Zum Ausprobieren: https://jsonpathfinder.com/
-
@codierknecht Danke! So funktioniert es.
-
@laser
Ein bisschen Background dazu:
"JSON" heißt "javascript object notation". Das bedeutet, dass ein JSON prinzipiell (mit den umschließenden{}
) ein Objekt und dessen Eigenschaften beschreibt.
Dein Objekt hat z.B. die Eigenschaft "Time" mit dem Wert "2025-02-17T14:52:20".
Und dazu eine Eigenschaft "MT175". Dessen "Wert" ist ein weiteres Objekt ({}
).
Auf die Eigenschaften eines Objektes wird mit dem Punkt-Operator zugegriffen.
Darumx.MT175.Power_curr
, um auf die EigenschaftPower_curr
des ObjektesMT175
im übergeordneten Objekt "x" zuzugreifen.Das ganze ist hierarchisch organisiert und lässt sich x-fach verschachteln.
Beispiel:{"name": "master", "level_1": {"level2": {"level_3": {"name": "Blubb"}}}}
Um auf das "Blubb" zu kommen also:
x.level_1.level_2.level_3.name
Die eckigen Klammern
[]
brauchst Du nur, wenn es sich um ein Array handelt.
Also eine Aufzählung von (gleichartigen) Werten ... das können auch wieder Objekte sein.{"name":"master","array":[1,2,12,42]}
x.array[3]
=> 42