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?
Tasmota Taster letzter Zustand anzeigen
-
- Beiträge: 35
- Registriert: 7. Jan 2021 21:04
- udo1toni
- Beiträge: 13858
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Tasmota Taster letzter Zustand anzeigen
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:
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:
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.
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)
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
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
-
- Beiträge: 35
- Registriert: 7. Jan 2021 21:04
Re: Tasmota Taster letzter Zustand anzeigen
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.