Tasmota sendet mqtt nur periodisch, nicht nach Zustandsänderung

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • harryb
    Smart Home'r
    • 05.11.2018
    • 55

    #1

    Tasmota sendet mqtt nur periodisch, nicht nach Zustandsänderung

    Gutes Neues an alle

    Die Suche hat mich nicht weiter gebracht, sollte ich was übersehen haben, bitten den Post gern an einen anderen Beitrag anhängen.

    Mein Probelm:
    Tasmota sendet Zustandsänderungen über Mqtt nicht unmittelbar, sondern verzögert.

    Über Loxberry empfange ich Mqtt und reiche die Ergebnisse an Loxone weiter.
    Jetzt hab ich einen RGBWW-Dimmer (H801) mit Tasmota geflashd und Mqtt eingerichtet. Die Daten kommen sowohl in Loxberry-Mqtt als auch in Loxone (Live-View) an.
    Allerdings sendet Tasmota die Veränderung eines Status (z.B. Power-Status ON oder OFF) nicht direkt wenn sich der Status ändert, sondern erst wenn die eingestellte Zeit bei den Tasmota-Einstellungen (Einstellungen Logging -> Telemetry Period) abgelaufen ist. Voreingestellt ist dort 300, also 5 Minuten. Wenn ich 10 einstelle erhalte ich die Änderung in Loxone also nach maximal 10 sec.; je nachdem wann in den jeweils ablaufenden 10 sec. ich ein oder ausschalte.
    Die Abfrage des Power-Zustands könnte ich so ja noch einigermaßen hinnehmen, zumal ich die Post-Periode auf 1 Sec. setzen könnte. Allerdings vermute ich mal, dass ich damit das Mqtt-Plugin ganz schön extrem fordere. (???)
    Jetzt wollte ich aber einen PIR-Sensor (Bewegungsmelder) dranhängen, was auch grundsätzlich funktioniert. Es ist aber unschön, wenn Loxone erst nach 1 bis zu 10 Sekunden (oder noch langsamer) reagieren kann.

    Gibt es hierfür eine Lösung? Hab ich was in den Einstellungen übersehen? Ggf. gibts für Tasmota ja auch ein Konsolen-Kommando, oder ähnliches zum Umstellen auf "Senden bei Zustandsänderung". Ich sitze jetzt schon zwei Tage und such mir über Google die Finger wund - leider ohne Erfolg.
    Bitte helft mir.

    Gruß
    HarryB
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11235

    #2
    Ich hab Tasmota leider noch nirgends drauf, aber habe gelesen, dass man dafür Rules verwenden kann/soll:


    Vielleicht findest du mit dieser Info passende Beispiele.

    BTW Dem MQTT Gateway ist ein 1-Sekunden-Intervall noch ziemlich egal. Das Gateway macht 20 Zyklen pro Sekunde, und dieser Wert ist künstlich „ausgebremst“, damit bei vielen Datenänderungen der Miniserver nicht ins Schwitzen kommt (Zykluszeit ist ein Delay, der in der Gateway-Config per Default auf 50ms steht).
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar

    • AlexAn
      Lebende Foren Legende
      • 25.08.2015
      • 4300

      #3
      Kann ich bestätigen auch mit Sleep 0 in der Konsole
      Muss mit dem "tele" Befehl bei den Topics zusammenhängen: https://github.com/arendst/Tasmota/wiki/MQTT
      Zuletzt geändert von AlexAn; 03.01.2020, 13:21.
      Grüße Alex

      Kommentar

      • harryb
        Smart Home'r
        • 05.11.2018
        • 55

        #4
        Hallo Christian, danke dass Du immer wieder bemüht bist eine Lösung zu bieten, auch wenn Du grad nur Teilinfos parat hast. Das hilft mir immer wieder mal auf die Sprüng
        Hallo Ales, auch Dir danke für die Info.
        Wirklich weiter hat mich aber dann - inspieriert von Euren Links - folgende Seite gebracht: https://github.com/arendst/Tasmota/w...Motion-Sensors
        Bei "Logging konfigurieren" bracht man nichts ändern. Man muss in der Konsole ein paar Befehle eingeben.
        Ggf. haben auch andere das Problem und wollen sich mit einem Wemos oder wie ich in Kombi mit einem H801 einen günstigen Bewegungsmelder realisieren.
        Dazu hab ich für mich eine kleine Anleitung zusammengeschrieben, damit ich das auch in Zukunft nochmal nachbauen kann. Die will ich Euch und anderen nicht vorenthalten, ich geb auch gern mal was ans Forum zurück.
        Zum Flash-Vorgang und den Pinout der Komponenten bin ich jetzt nicht detailliert eingegangen, da gibts wirklich sehr viele Infos im I-Net.

        Also, los gehts:

        PIR HC-SR501 über Wemos-D1-mini oder H801 in Loxone einbinden

        Vorweg zur Verkabelung:
        Der PIR HC-SR501 arbeitet nicht mit 3,3V sondern nur mit 5V richtig.
        Beim Wemos D1 mini kein Problem, der RGBWW-Dimmer H801 gibt allerdings bei VCC nur 3,3V aus. Aus diesem Grund hab ich einfach einen Step-Up-Konverter MT3608 dazwischen gehängt und die Spannung vom H801 auf 5V angehoben. GPIO7(D2) am H801 ist der Pin mit der Beschriftung RX. Dieser wird mit dem Digitalen Ausgang vom HC-SR501 verbunden (dieser liefert übrigens dann wiederum 3,3V, die sowohl das WEMOS-Bord als auch der 801 am GPIO-Eingang vertragen.
        1. Wemos oder H801 – mit Tasmota flashen (tasmota_De.bin)
        2. IP (Hauptseite) von Tasmota (vom Wemos / H801) aufrufen
        3. EINSTELLUNGEN – GERÄT KONFIGURIEREN Generic(0)oder H801(20)SPEICHERN
        4. EINSTELLUNGEN – GERÄT KONFIGURIEREN – GPIO7(D2) Switch1(9)SPEICHERN
          (es kann je nach verwendetem Bord natürlich auch ein anderer GPIO sein
        5. EINSTELLUNGEN – MQTT KONFIGURIEREN
        • Host: IP vom MQTT-Broker (z.B. Loxberry)
        • Port: 1883 (= standard)
        • Client: hier ist keine Änderung erforderlich
        • Benutzer: Benuter der in z.B. Loxberry-Mqtt-Plugin eingerichtet ist
        • Passwort: Dazugehöriges Passwort
        • Topic: z.B. tasmota
        • Full Topic: z.B. tasmote/Wemos1 oder tasmota/H801
        6. KONSOLE aufrufen und folgende Befehle nacheinander eingaben und jeweils mit <Enter> bestätigen
        Befehl 1: SwitchMode1 1
        Befehl 2: SwitchTopic 0
        Befehl 3: Rule1 on switch1#state=1 do publish stat/%topic%/PIR1 ON endon on switch1#state=0 do publish stat/%topic%/PIR1 OFF endon
        Befehl 4: Rule1 1

        7. Loxberry-Mqtt-Plugin aufrufen und bei SUBSCRIPTIONS stat/tasmota/#eintragen,bzw. den Topic verwenden, der sich aus „Befehl 3“ ergibt und mit SAVE & APLY speichern.
        Dann am besten noch auf RESTART klicken, das löscht ggf. alte Einträge bei Incoming-Overview
        8. Bei Loxberry-Mqtt-Plugin INCOMING OVERVIEW das Register HTTP VIRTUAL INPUTS aufklappen und als „Filter“ tasmota(bzw. das entsprechende Topic aus der Tasmonta-Mqtt-Konfiguration) eintragen. Wenn man „Befehl 3“ wie oben beschrieben eingegeben hat, erhält man als Ergebnis in der Spalte MINISERVER VIRTUAL INPUTS einen Text wie z.B. stat_tasmota_PIR1den man am besten Kopiert oder zumindest notiert.
        1. In LOXONE-CONFIG einen Virtuellen Eingang anlegen
        • „normalen“ VIRTUELLEN EINGANG anlegen und bei BEZEICHNUNG z.B. stat_tasmota_PIR1 (ergebnis aus Loxberry-Mqtt-Overview) entragen.
        • ggf. KATEGORIE und RAUM ändern. VISUALISIERUNG VERWENDEN (= wie man will)
        • Hakenbei ALS DIGITALEINGANG VERWENDEN setzen
        1. Den Virtuellen Eingang ganz normal als Digitalen Triggereingang z.B. beim Lichtsteuerung-Baustein am Eingang Mv

        So, nun wünsch ich noch viel Spaß beim Nach"bauen"

        VG HarryB

        Kommentar

        Lädt...