ich habe derzeit ein Selection Item um meinen Lüftungsaktor mit einem Item zu schalten, anstatt 2 einzelne Schalter. Der Lüftungsaktor hat entsprechend gegeneinander verriegelte Kanäle.
rule "update Ventilator"
when
Member of Ventilation changed
then
if (VentAktor1.state==ON) {
Ventilator.postUpdate(1)
} else if (VentAktor2.state==ON) {
Ventilator.postUpdate(2)
} else {
Ventilator.postUpdate(0)
}
end
merlindata hat geschrieben: ↑14. Feb 2021 14:13
In der Sitemap nicht "Switch" sondern "Selection"
Danke, aber ich möchte dies ja nicht in der Sitemap darstellen, bzw. dort habe ich das bereits und funktioniert auch als Switch mit den Mappings.
Dort ist es dann alles drei nebeneinander, bei einer Selection wäre es dann als drop-down.
Ich möchte dies ja in den OH3 Pages darstellen. Entweder als Selection oder gerne auch als Mapping Item. So das ich die drei Stufen in einem Item abgebildet habe
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3
Deine Rule triggert auf ein change eines Members der Gruppe Ventilation, in der die beiden Switch Items VentAktor1 und VentAktor2 zusammengefasst sind.
Die Rule wertet die beiden Aktoren aus und wählt in Abhängigkeit der verschiedenen Schaltstellungen einen der Werte 0 1 oder 2 für das Number Item Ventilator.
Du hast jedoch keine Rule (gezeigt?), welche in Abhängigkeit des Number Items Ventilator die beiden Aktorkanäle wie gewünscht schaltet.
Für die gewünschte Darstellung habe ich momentan keine Idee (was natürlich daran liegt, dass ich mich nicht intensiv mit OH3 auseinander setze )
Eine Möglichkeit wäre die Stepper Card. Man kann Minimum, Maximum und Schrittweite bestimmen und erhält zwei Knöpfe für + und - sowie die Anzeige der Stufe.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
udo1toni hat geschrieben: ↑14. Feb 2021 23:32
Du hast jedoch keine Rule (gezeigt?), welche in Abhängigkeit des Number Items Ventilator die beiden Aktorkanäle wie gewünscht schaltet.
Stimmt, Mist. Dachte es wäre nur die eine Rule, die ich mitgesendet hatte.
Anbei die fehlende Rule
rule "Set Ventilator"
when
Item Ventilator changed
then
if ((Ventilator.state as DecimalType).intValue == 0) {
Ventilation.members.filter(f|(f.state == (ON))).forEach[ v|
v.sendCommand(OFF)
logInfo("Ventilation", "{} has been switched off", v.label)
]
} else if ((Ventilator.state as DecimalType).intValue == 1) {
VentAktor1.sendCommand(ON)
logInfo("Ventilation", "{} has been switched on", VentAktor1.label)
} else if ((Ventilator.state as DecimalType).intValue == 2) {
VentAktor2.sendCommand(ON)
logInfo("Ventilation", "{} has been switched on", VentAktor2.label)
}
end
Eine Stepper Card wäre eine Option, wobei ich dann ja von 2 erst wieder über 1 müsste um abzuschalten :-/
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3
Jetzt kommt eine gemeine Frage... Wie ist es denn nun tatsächlich geschaltet? Aktor 1 schaltet Stufe 1, Aktor 2 schaltet Stufe 2, was passiert, wenn beide Aktoren auf ON stehen? Denn Deine Rule kümmert sich nicht darum, zuerst über Stufe 0 alle abzuschalten.
Eine weitere Alternative zur Stepper Card könnte noch eine List Card sein. Du kannst dort "beliebige" Listenpunkte anlegen und "beliebige" Funktionen hinterlegen. In Deinem Fall gäbe es dann drei Listenpunkte, die die Lüfterstufen symbolisieren und jeweils in das gewünschte Item den Wert schreiben.
Sieht dann so aus:
Screenshot 2021-02-15 173110.png
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
udo1toni hat geschrieben: ↑15. Feb 2021 17:22
Jetzt kommt eine gemeine Frage... Wie ist es denn nun tatsächlich geschaltet? Aktor 1 schaltet Stufe 1, Aktor 2 schaltet Stufe 2, was passiert, wenn beide Aktoren auf ON stehen? Denn Deine Rule kümmert sich nicht darum, zuerst über Stufe 0 alle abzuschalten.
if ((Ventilator.state as DecimalType).intValue == 0) {
Ventilation.members.filter(f|(f.state == (ON))).forEach[ v|
v.sendCommand(OFF)
logInfo("Ventilation", "{} has been switched off", v.label)
]
Es gibt ja nur 1 Aktor und es ist entwweder Kanal 1 oder Kanal 2 aktiv, und mit dem o.g. wird der aktive Kanal ermittelt und abgeschaltet. 0 ist somit "schalte aktiven Kanal ab"
udo1toni hat geschrieben: ↑15. Feb 2021 17:22
Eine weitere Alternative zur Stepper Card könnte noch eine List Card sein. Du kannst dort "beliebige" Listenpunkte anlegen und "beliebige" Funktionen hinterlegen. In Deinem Fall gäbe es dann drei Listenpunkte, die die Lüfterstufen symbolisieren und jeweils in das gewünschte Item den Wert schreiben.
Das schaue ich mir mal an, Danke.
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3