Tasmota Taster letzter Zustand anzeigen

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Antworten
aolbernd
Beiträge: 35
Registriert: 7. Jan 2021 21:04

Tasmota Taster letzter Zustand anzeigen

Beitrag von aolbernd »

Ich steuere meine Pumpe mit einer 4er-Relaisplatine und einem Tasmota-geflashtem ESP8266. Die Schaltzustände sind Low, Mid, High und Off (Relais 1-4). Da die Pumpe nur Impulse braucht, schalte ich die Relais mit einem Tastimpuls von 1 sec.

Nun würde ich in meiner Sidemap gern den letzten Schaltzustand anzeigen lassen um zu sehen in welchem Zustand sich die Pumpe gerade befindet.

Wie könnte ich dies am elegantesten lösen?

Benutzeravatar
udo1toni
Beiträge: 13858
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Tasmota Taster letzter Zustand anzeigen

Beitrag von udo1toni »

welcher Weg der einfachste ist, ist immer etwas schwer abzuschätzen. Ich könnte mir z.B. vorstellen, dass Du mit Tasmota Rules dafür sorgen kannst, dass ein Topic jeweils den letzten On-Befehl sendet (also 1,2,3,4)
Ich habe aber überhaupt keine Erfahrung mit Tasmota Rules. Vermutlich wäre das eine Frage für den Discord Support.

Rein mit openHAB Mitteln würde ich die einzelnen Relais Zustände über Channel einsammeln (evtl. gibt es auch hier eine Abkürzung, kommt aber drauf an, welche Topics im Moment des Schaltvorgangs gepublished werden).
Anschließend sorgt dann eine Rule dafür, dass je nach Eingangssignal ein Number Item entsprechend geschaltet wird.
Wie sieht es mit dem Rückweg aus? Soll openHAB die Pumpe auch steuern können?

Grundsätzlich so:
Item:

Code: Alles auswählen

Group Item gPumpe (nicht verlinkt, kein Typ)
Switch Pumpe_1 (gPumpe) {Channel 1 RW}
Switch Pumpe_2 (gPumpe) {Channel 2 RW}
Switch Pumpe_3 (gPumpe) {Channel 3 RW}
Switch Pumpe_4 (gPumpe) {Channel 4 RW}
Number Pumpe (nicht verlinkt)
Das RW steht für Read/Write, also sowohl das commandTopic als auch das stateTopic setzen (cmnd/POWER1-4 und stat/POWER1-4, bitte nicht tele/)

Rules:

Code: Alles auswählen

var Boolean bPumpe = false

rule "Pumpe recv"
when
    Member of gPumpe changed                               // eines der Relais hat angezogen oder ist abgefallen
then
    if(newState == ON) {                                   // angezogen?
        bPumpe = true                                      // dann sperren
        var strNew = triggeringItem.name.split("_").get(1) // Ziffer aus Itemnamen extrahieren
        Pumpe.postUpdate(strNew)                           // Und dem Item zuweisen
    } else                                                 // abgefallen?
        bPumpe = false                                     // Sperre aufheben
end

rule "Pumpe send"
when
    Item Pumpe received command
then
    if(bPumpe)                                              // Falls gesperrt
        return;                                             // sofort abbrechen
    switch(receivedCommand as Number) {
        case 1: Pumpe_1.sendCommand(ON)
        case 2: Pumpe_2.sendCommand(ON)
        case 3: Pumpe_3.sendCommand(ON)
        case 4: Pumpe_4.sendCommand(ON)
    }
end
Die erste Rule kümmert sich um ankommende Zustandsänderungen, die zweite Rule sendet den Schaltbefehl.

Dazu kommt dann noch ein Widget, welches die vier Zustände auf die Zahlen 1 - 4 umsetzt und anzeigt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

aolbernd
Beiträge: 35
Registriert: 7. Jan 2021 21:04

Re: Tasmota Taster letzter Zustand anzeigen

Beitrag von aolbernd »

Danke für die schnelle Hilfe. Das ist ja schon mal ein Lösungsansatz. So etwas in der Art hatte ich auch im Kopf, allerdings wusste ich nicht, wie es umzusetzen ist. Ich werde den Lösungsansatz mal testen und dann berichten.

Antworten