Ja nee, nicht so
erstmal das Item. Mit dem Mapping ist es schon mal gut, aber warum verwendest Du dann ein String Item? So geht es richtig:
Code: Alles auswählen
Number Tageszeit_dummy "Tageszeit [MAP(tageszeit.map):%s]"
Das Mapping sorgt dafür, dass aus dem (als String übergebenen) Status des Items ein anderer String gebildet und im Label angezeigt wird. Das Item selbst bleibt davon unberührt und sollte vom Typ Number sein.
Die beiden Rules für die Aktualisierung des dummies sollten so passen.
Die dritte Rule muss aber den allgemeinen Rgeln einer Rule entsprechen:
Code: Alles auswählen
rule "Steckdose Flur oben an"
when
Item Tageszeit_dummy changed or
Item Anwesenheitskontrolle changed
then
if(Anwesenheitskontrolle.state != ON || !(Tageszeit_dummy.state instanceof Number)) {
return;
}
if((Tageszeit_dummy.state as Number) == 2 && S20_flur_oben.state != ON)
S20_flur_oben.sendCommand(ON)
} else if((Tageszeit_dummy.state as Number) == 1 && S20_flur_oben.state != OFF)
S20_flur_oben.sendCommand(OFF)
}
end
Die Rule triggert, falls sich eines der beteiligten Items ändert.
Falls die Anwesenheitskontrolle nicht ON is oder Tageszeit_dummy keine gültige Zahl enthält, wird die Rule beendet.
Falls Tageszeit_dummy = 2 ist, S20_flur_oben aber nicht ON ist, wird der Befehl ON gesendet.
Falls Tageszeit_dummy = 1 ist, S20_flur_oben aber nicht OFF ist, wird der Befehl OFF gesendet.
Vorteil des Number Items ist, dass man dann auch Bereiche prüfen kann, also z.B.
Code: Alles auswählen
if((Tageszeit_dummy.state as Number) > 1 && (Tageszeit_dummy.state as Number) <= 5)
was natürlich verwendet werden kann, um mehrere Tageszeiten abzudecken (man muss sich natürlich vorher Gedanken über die geschickteste Anordnung machen).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet