D0 Zähler SML auslesen mit Tasmota

  • djuscha

    Also die Übertragung von Werten funktioniert ganz automatisch mit globalen Variablen.

    Du definierst in einem z.B. Sensor Tasmota eine Variable

    g:temperatur

    und setzt sie mit der gemessenen Temperatur z.B alle Teleperiod Sekunden

    in der Uhr oder jedem anderen Tasmota definierst du diese Variable auch.

    und dann wird sie automatisch upgedatet ohne dass die Geräte ihre IPs kennen

    Die Uhr gibt es auch noch in anderer Version in größerem Gehäuse mit ganz vielen Optionen aber dem gleichen Display. Ist aber deutlich teurer.

    Die anderen ESP32 mit Display haben andere Display Varianten aber kein Audio und kein PSRAM

    Bisher habe ich IObroker verwendet und die Kommunikation in Javascript auf dem IOBroker programmiert.

    Auch die grafische Ausgaben mit IObroker VIS.

    Ich wollte aber die RASPIs loswerden da es immer wieder mal Probleme gab.

    Für ganz kleine Systeme mit wenigen Tasmotas ist es sowieso die bessere Wahl und ein extra RASPI zu aufwendig.

    Wenn das jemand auch so lösen will kann ich ja mal genauere Infos geben

  • Ich bin gespannt wie lange Accu bei der Uhr hält möchte sowas wie Wetteranzeige display und StromkostenDisplay in einem ohne Steckdose in der Nähe basteln. Werde schon mal die Uhr bestellen.

  • Ich bin jetzt einen Schritt weiter gekommen, so dass ich die Anzeige von In und Out Power in der Tasmota Oberfläche sehe. Leider nicht als SML sondern als OBIS . Habt ihr eine Idee?

    Mir scheint du hast das Howto nicht wirklich gelesen. Dort steht eigentlich alles, was mit der Programmierung/Scripting zu tun hat, drin.

    Und tatsächlich hat sich in den letzten Wochen auch nichts grundlegendes am Scripting geändert.

    Was ich damit sagen möchte ist:

    Die Scripting Sektion des HowTos ist noch immer "aktuell".

    Das was im HowTo überarbeitet werden muss, ist die Kompilierung.

  • djuscha

    kann ich gerne machen, weis aber nicht wie lange es diese Uhr noch so preiswert gibt.

    https://www.banggood.com/de/LILYGO-TTGO…ur_warehouse=CN

    Toll, habe letzte Woche Freitag 2 Stück bestellt und bekomme eine Woche Später die Info "Out Of Stock"
    häääää eine Woche brauchen die um festzustellen dass es OutOfStock ist, schade, bin mal gespannt wann die ankommen.
    Habe die anderen die bestellt haben auch ne OutOfStock Meldung bekommen?


    Also erstmal andere Projekte weiter bringen

  • Ich habe Probleme mit dem Auslesen meines Stromzähler Q3M.

    Ich habe schon alles mögliche versucht bekomme aber leider keinen String ausgelesen.

    Der Stromzähler ist über den PIN freigeschaltet und sendet auch regelmäßig Daten (IR mit dem Handy sichtbar gemacht).

    Den ESP habe ich nach Anleitung geflasht. Ich denke der Funktioniert soweit. Nach dem Flashen steht er auf Orbis wenn ich mein SKript aufrufe steht er auf SML. Also skriptfunktion und Treiber sollten ebenfalls gehen, allerdings steht er nach einem Neustart wieder auf OBIS. Das umstellen auf SML geht nur wenn ich das Skript wieder reinkopiere und speichere. Einfach deaktivieren und aktivieren mit speichern reicht nicht.


    Als Lesekopf verwende ich einen BPW 42 mit einem 10k Widerstand. Habe mich für den Typen entschieden, da er bei den Ersatztypen sehr gut abgeschnitten hat. http://www.montigny.info/UntersuchungFototransistoren.pdf


    Das er schaltet habe ich mit einer Taschenlampe getestet (bei Lichteinfall liegen 3,...V am RX an.

    Mit Skripten kenne ich mich praktisch nicht aus, habe aber soweit mich durch die anderen Beispiele gehangelt.


    >D

    >B

    =>sensor53 r

    >M 1

    +1,3,s,0,9600,SML

    1,77070100010800ff@1000,Total consumption,KWh,Total_in,4

    1,77070100020800ff@1000,Total Feed,KWh,Total_out,4

    1,77070100100700ff@1,Current consumption,W,Power_curr,0

    1,77070100000009ff@#,Meter Nr,,Meter_number,0

    #

    Wenn ich

    =>sensor53 r auf

    =>sensor53 d1 ändere wird mir kein String angezeipt.

    Es kommt folgender Output:

    19:45:02 RSL: tele/tasmota_64BE15/SENSOR = {"Time":"2020-10-25T19:45:02","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}

    19:45:05 Script: nv=0, tv=0, vns=0, ram=16

    19:45:05 Script: performs "sensor53 d1"

    19:45:05 RSL: stat/tasmota_64BE15/RESULT = {"Time":"2020-10-25T19:45:05","SML":{"CMD":"dump: 1"}}

    19:45:11 RSL: stat/tasmota_64BE15/RESULT = {"POWER":"ON"}

    19:45:11 RSL: stat/tasmota_64BE15/POWER = ON

    19:45:12 RSL: stat/tasmota_64BE15/RESULT = {"POWER":"OFF"}

    19:45:12 RSL: stat/tasmota_64BE15/POWER = OFF

    19:45:12 RSL: tele/tasmota_64BE15/STATE = {"Time":"2020-10-25T19:45:12","Uptime":"0T00:00:49","UptimeSec":49,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":21,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"IGLI","BSSId":"18:E8:29:C1:AE:6C","Channel":11,"RSSI":46,"Signal":-77,"LinkCount":1,"Downtime":"0T00:00:03"}}

    19:45:12 RSL: tele/tasmota_64BE15/SENSOR = {"Time":"2020-10-25T19:45:12","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}

    19:45:22 RSL: tele/tasmota_64BE15/STATE = {"Time":"2020-10-25T19:45:22","Uptime":"0T00:00:59","UptimeSec":59,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"IGLI","BSSId":"18:E8:29:C1:AE:6C","Channel":11,"RSSI":44,"Signal":-78,"LinkCount":1,"Downtime":"0T00:00:03"}}

    19:45:22 RSL: tele/tasmota_64BE15/SENSOR = {"Time":"2020-10-25T19:45:22","OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}

    19:45:26 Script: nv=0, tv=0, vns=0, ram=16

    19:45:26 Script: performs "sensor53 r"

    19:45:26 SNS: Hardware Serial

    19:45:26 RSL: stat/tasmota_64BE15/RESULT = {"Time":"2020-10-25T19:45:26","SML":{"CMD":"restart"}}

    19:45:26 : ff

    19:45:32 RSL: tele/tasmota_64BE15/STATE = {"Time":"2020-10-25T19:45:32","Uptime":"0T00:01:09","UptimeSec":69,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":99,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"IGLI","BSSId":"18:E8:29:C1:AE:6C","Channel":11,"RSSI":46,"Signal":-77,"LinkCount":1,"Downtime":"0T00:00:03"}}

    19:45:32 RSL: tele/tasmota_64BE15/SENSOR = {"Time":"2020-10-25T19:45:32","SML ":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}

    19:45:42 RSL: tele/tasmota_64BE15/STATE = {"Time":"2020-10-25T19:45:42","Uptime":"0T00:01:19","UptimeSec":79,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":99,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"IGLI","BSSId":"18:E8:29:C1:AE:6C","Channel":11,"RSSI":44,"Signal":-78,"LinkCount":1,"Downtime":"0T00:00:03"}}

    19:45:42 RSL: tele/tasmota_64BE15/SENSOR = {"Time":"2020-10-25T19:45:42","SML ":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}

    19:45:52 RSL: tele/tasmota_64BE15/STATE = {"Time":"2020-10-25T19:45:52","Uptime":"0T00:01:29","UptimeSec":89,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":99,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"IGLI","BSSId":"18:E8:29:C1:AE:6C","Channel":11,"RSSI":44,"Signal":-78,"LinkCount":1,"Downtime":"0T00:00:03"}}

    19:45:52 RSL: tele/tasmota_64BE15/SENSOR = {"Time":"2020-10-25T19:45:52","SML ":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}

    19:46:02 RSL: tele/tasmota_64BE15/STATE = {"Time":"2020-10-25T19:46:02","Uptime":"0T00:01:39","UptimeSec":99,"Heap":24,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":99,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"IGLI","BSSId":"18:E8:29:C1:AE:6C","Channel":11,"RSSI":44,"Signal":-78,"LinkCount":1,"Downtime":"0T00:00:03"}}

    19:46:02 RSL: tele/tasmota_64BE15/SENSOR = {"Time":"2020-10-25T19:46:02","SML ":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}

    19:46:03 Script: nv=0, tv=0, vns=0, ram=16

    Die Position habe ich mehrmals geändert (habe zwei Ausgabestellen am Zähler, vorne nur senden und und oben mit sende und Empfang)

    Wo sollte ich als nächstes ansetzen?

  • Beekeeper

    Das klingt nach einem anderen Problem.

    Wenn sich das Skript nach jedem Neustart ausschaltet scheint es dort irgendwo einen Fehler zu geben.

    In deinem Skript selbst sehe ich allerdings auf den ersten Blick keinen.

    Was hast du noch alles defined?

    Außerdem sollte das =>sensor53 r bestehen bleiben im Skript und nicht durch d1 ersetzt werden.

    in die Konsole selbst schreibst du sensor53 d1 hinein um den ersten Zähler debuggen zu können.

    Das funktioniert allerdings nur mit laufendem Skript.

  • Hallo Beekeeper

    so sieht mein Script aus, mal auf deine Bedürfnisse reduziert und angepasst:

    evtl. hilft das weiter

  • Vielen Dank für das Skript,

    also mit deinem Skript speichert er die Einstellungen auch nach einem Neustart.

    Habe das Skript etwas angepasst von Obis auf SML umgestellt und die unteren Zeilen in mehreren Schritten angepasst. Leider kein durchschlag.

    Werde mal weiter testen und auch Tasmota nochmal kompilieren.

    Sowie die Hardware neulöten, den ESP ist auch schon einmal austetauscht worden.

    Hallo Beekeeper

    so sieht mein Script aus, mal auf deine Bedürfnisse reduziert und angepasst:


    evtl. hilft das weiter

  • Beekeeper das Script von meierchen war schon auf sml statt Obis eingestellt.

    Welche Werte dein Zähler liefert, findest du über bereits genannte Methode sensor53 d1 in der Konsole heraus.

    Dort bekommst du die raw Werte.

    Wenn du hier in dem thread nach Beiträgen von mir suchst müsstest du auf einen der letzten 10 Seiten einen Link zu meinem, mittlerweile etwas veraltetem howto finden.

    Ein paar wenige Dinge stimmen nicht mehr. Dafür wird dort aber vieles grundlegendes erklärt.