Können in Tasmota Messungen pausieren?

  • Guten Tag, Abend oder ...

    Ich setze ein ESP32 Board mit Tasmota32 zum messen des Wasservorrats in meiner Zisterne ein. Alles funktioniert genau so, wie ich es möchte. Dazu verwende ich u.a. einen Ultraschallsensor, den Tasmota kennt und auch ständig brav abfragt. Dieses ständige Abfragen brauche ich aber nur dann, wenn meine Firmware (Erweiterung von Tasmota um Berry Funktionen ...), diese Werte braucht. Das ist bspw. alle 2 Minuten der Fall.

    Auch vermute ich, dass der Sensor wegen dieser ununterbrochenen Abfragen frühzeitiger altert, als es möglich wäre, wenn ...

    Ja, wenn ich das Abfragen des Sensors, bzw. generell von Sensoren, anhalten und starten (pausieren) könnte. Ich las und fand bisher nichts dazu. Kennt hier jemand eine solche Möglichkeit?

    TelePeriod habe ich bereits genauer in Augenschein genommen. Diese ist in meiner Firmware bereits auf 0 gesetzt, ich brauche sie nicht.

    Mit Sleep habe ich noch keine Erfahrung gesammelt.

    Einmal editiert, zuletzt von eich (14. August 2021 um 00:13)

  • Leider nur eine Ergänzung bzw. Kommentar: Teleperiod hat in der Tat keinen Einfluss auf die Tasmota interne Ereignis"wahrnehmung". Vermutlich bringt auch das Abschahlten der Weboberfläche nichts. Ich vermute Folgendes: Jeder Sensorwert ist ein potentieller Trigger. Weil das so ist, sorgt die Firmware dafür, dass Sensorwerte möglichst nah am realen Ereignis festgestellt werden. Das geht ja nur mit einer angemessen hohen Abtastrate, die vermutlich tief im Quellcode der Firmware verankert ist.

  • Danke für deine informative Reaktion. Vorerst begnüge ich mich also damit, dass die Sensorwerte verlässlich eintreffen. Mal sehen, ob ich ohne Account diese Frage näher an Theo Arends platzieren kann.

  • Ja, wenn ich das Abfragen des Sensors, bzw. generell von Sensoren, anhalten und starten (pausieren) könnte. Ich las und fand bisher nichts dazu. Kennt hier jemand eine solche Möglichkeit?

    Hallo, seit Tasmota 9.5.0.3 gibt es

    SetSensor1..127 0|1 to globally disable individual sensor driver

    mit SetSensor22 0 kann man den SR04 deaktivieren (xsns_22_sr04.ino),

    mit SetSensor22 1 wieder aktivieren.

    ob das für die Lebensdauer was bringt kA,

    effektiver vielleicht wenn man die Versorgung zum SR04 schaltet.

  • Ah, sehr interessant, danke.

    Dann muss ich noch sehen, ob oder wann Tasmota32 9.5.0.3 oder höher vorliegt.

    Ich denke, dass ein relativ hochfrequentes Schalten der Sensorversorgung eher kontraproduktiv wäre.

    Das Deaktivieren und Aktivieren des Treibers ist genau das, was ich möchte - solange die entsprechende Variable im flüchtigen Speicher liegt.

  • DejaWuest und gerne auch an andere gerichtet

    Da du offenbar relativ gut über Bestandteile des Tasmota Quellcodes informiert bist, frage ich an dieser Stelle noch etwas. Diese Frage stellte ich bereits an anderer Stelle, die dortige dankenswerterweise erhaltene Reaktion brachte mich aber nicht wirklich weiter.

    In meinen Projekten setze ich, naheliegenderweise, Tasmota als MQTT Subscriber ein. Die Funktion als MQTT Publisher programmiere ich darin selbst. Ich möchte also beim publishen die Kontrolle darüber haben, wann und wie etwas gesendet wird.

    Ich musste aber feststellen, dass Tasmota trotz deaktivierter TelePeriod ständig etwas veröffentlicht. Es handelt sich dabei u.a. um Informationen, dass und wie eine Rule Variable geändert wurde. Ich hege die schwache Vermutung, dass dies dem Tasmota Device Manager (TDM) geschuldet ist. Vielleicht sind auch beabsichtigte Kompatibilitäten zu Smart Home Anwendungen der Grund. Was auch immer die Gründe sein mögen, ich brauche dieses MQTT-"Gequassel" nicht und täte es gerne abstellen. Kennst du eine Möglichkeit, dies zu erreichen, ohne dass ich dazu in den Tiefen des Quellcodes meine eigenen Änderungen einbringen müsste, die ja dann nirgendwo sonst gepflegt würden?

    Wenn es keinen anderen Weg als den Eingriff in den Tasmota Quellcode geben sollte, nehme ich auch gerne die Information entgegen, an welcher Stelle ich dazu nachsehen sollte.

    Danke für die Mühe

  • So tiefe Einblicke hab ich da leider nicht, sind sicher wesentlich kompetentere user hier unterwegs :thumbup:

    Grundsätzlich stufe ich MQTT aber schon als sehr schlankes Protokoll ein, mit wenig overhead.

    Um eine Grundfunktionalität und die angesprochenen Kompatibilitäten abzudecken wird man um einen gewissen traffic nicht rum kommen.

    Wenn man sich MQTT nach eigenem Bedarf zurecht legen möchte, wird dann wohl kein Weg am sourcecode vorbei führen.

    Mit TDM und ähnlichen tools erhöht sich der traffic in jedem Fall durch entspr. requests.

    Ohne jetzt gleich tief im source wühlen zu müssen, würde ich mir eine Tasmota kompilieren,

    mit Anpassungen und allem deaktiviert, was nicht benötigt wird,

    besonders Domoticz, Home Assistant (beide default aktiv in den .bin), ...

    evtl. MQTT_KEEPALIVE erhöhen, etc.

    ... sollte zumindest die Zahl der messages verringern.