D0 Zähler SML auslesen mit Tasmota

  • Hi,

    ich nutze folgendes Script

    Das Auslesen funktioniert wunderbar. Der Zähler schickt ca. alle 4,6 Sekunden die aktuelle Leistung.

    Nun möchte ich diesen Wert gerne alle 2 Sekunden (bzw immer wenn er geändert wurde) per MQTT versenden. Wie mache ich das?


    Als Workaround polle ich http://192.168.x.x/cm?cmnd=Status%208 alle 2 Sekunden und wandle das Ergebnis via Nodered in ein MQTT Telegram. Aber es muss doch auch möglich sein, dass Tasmota das per MQTT raussendet, was der Zähler per IR ausgibt, oder?

  • Hi mode,


    ich bin auch noch recht neu im Thema hab aber herrausgefunden, dass das kürzteste Intervall für den Versand der MQTT Telegramme in Tasmota 10 Sekunden beträgt. Ich behaupte aber, dass das reichen sollte.


    Gruß

    Julian

  • Nein ich möchte überhaupt kein Intervall. Wenn der Zähler (er gibt das Interval vor) sendet, dann soll diese Information unmittelbar per MQTT weitergegeben werden.

    Da Regelungen für Nulleinspeisung dahinterhängen sind durch verschiedene Intervalle sich ändernde Verzögerungen das beste Rezept für Aufschwingen.

    Ist dies überhaupt nicht möglich?

    Als Workaround das Sendeintervall auf 0,1 Sekunden setzen aber nur dann senden, wenn sich die Payload geändert hat?

  • Hallo Zusammen,

    seit ein paar Wochen versuche ich meine Stromzähler mit zwei TTL Leseköpfen auszulesen. Soweit hab ich auch alles hinbekommen. Was mir allerdings nicht gelingt ist es, beide TTL Leseköpfe über einen Wemos D1 Mini laufen zu lassen.

    Lesekopf 1 habe ich an RX/TX angeschlossen. Dieser funktioniert einwandfrei. Den anderen Lesekopf 2 hab ich schon an alle anderen möglichen GPIO's angeschlossen mit immer dem selben Ergebnis: Die Daten kommen rein, jedoch ist nach willkürlicher Zeit (0,5-5h) Schluss damit.


    - es werden keine Daten mehr in der Tasmota Oberfläche angezeigt

    - es laufen keine Daten per "Sensor53 D2" mehr in die Konsole ein

    - der Stromzähler schaltet wild die Einstellungen durch, weil die IR-Diode permanent leuchtet


    Ich muss den Wemos für ein paar Minuten vom Strom nehmen und dann trotzdem manchmal nochmal neustarten, damit der Kopf wieder funktioniert. Ich kann mir nicht erklären, warum es grundsätzlich funktioniert, jedoch nach gewisser Zeit dann nicht mehr.


    Ich hab das ganze auch schon auf einem zweiten Wemos getestet. Testweise hatte ich auch zwei Wemos eingesetzt und beide Köpfe jeweils über die RX/TX Pins angeschlossen gahabt. Das hat mehrere Tage störungsfrei funktioniert.


    Ziel ist es, beide Stromzähler + Gaszähler über ein Board laufen zu lassen.


    Ich wäre sehr dankbar, wenn mich hier jemand in die richtige Richtung "schubsen" könnte.


    Vielen Dank schonmal

  • Beitrag von Mister Knister ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Nein ich möchte überhaupt kein Intervall. Wenn der Zähler (er gibt das Interval vor) sendet, dann soll diese Information unmittelbar per MQTT weitergegeben werden.

    Da Regelungen für Nulleinspeisung dahinterhängen sind durch verschiedene Intervalle sich ändernde Verzögerungen das beste Rezept für Aufschwingen.

    Ist dies überhaupt nicht möglich?

    Als Workaround das Sendeintervall auf 0,1 Sekunden setzen aber nur dann senden, wenn sich die Payload geändert hat?

    Versuch mal die precision, also den jeweils letzten Wert, um 16 zu erhöhen:

    <precision>number of decimal places. Add 16 to transmit the data immediately. Otherwise it is transmitted on TelePeriod only.
  • Versuch mal die precision, also den jeweils letzten Wert, um 16 zu erhöhen:

    <precision> number of decimal places. Add 16 to transmit the data immediately. Otherwise it is transmitted on TelePeriod only.

    Ich hab die Zeile mit Current Consumption jetzt auf

    Code
    1,77070100100700ff@1,Current consumption,W,Power_curr,16  

    geändert. Das hat schon mal viel verbessert. Der Zähler sendet alle 4 Sekunden, es geht aber nur alle 10 Sekunden ein MQTT Telegram raus. Somit verpasse ich weiterhin mehr als 50% der Wertänderungen.

    Kennt jemand die STelle, an der man die 10s MQTT Pause rauspatchen kann?

  • Versuch mal die precision, also den jeweils letzten Wert, um 16 zu erhöhen:

    <precision>number of decimal places. Add 16 to transmit the data immediately. Otherwise it is transmitted on TelePeriod only.

    Ich bekomme nun alle 10 Sekunden folgende MQTT Messages


    Code
    stat/tasmota_A310F6/STATUS8 {"StatusSNS":{"Time":"2022-05-15T13:41:19","SML  ":{"Total_in":17372.0950,"Total_out":12141.2249,"Power_curr":-8589,"Meter_number":"xxx"}}}

    Ich hätte aber nur Power_curr erwartet, da ich ja auch nur für diesen Wert die 16 gesetzt habe.