Ich hatte ja schon an anderer Stelle beschrieben, dass es sinnvoll ist, bei solchen Mappings auch direkt die Werte zu nutzen, mit denen man arbeiten möchte (es sei denn, sie sind von einem verknüpften Binding fest vorgegeben), also eher so:
Code: Alles auswählen
Selection item=Laufzeit label="Pumpen-Laufzeit" mappings=[8="8h", 4="4h", 2="2h", 1="1h", 0="AUA"]icon="time"
Woher genau Dein Fehler kommt, erschließt sich mir nicht unmittelbar, allerdings sollte Deine Rule eher so aussehen:
Code: Alles auswählen
rule "p1_1 ein"
when
Time cron "0 0 10 * * ?" // täglich 10:00:00 Uhr
then
var Integer iTime = 2
if(Laufzeit.state instanceof Number) iTime = (Laufzeit.state as Number).intValue
if(iTime == 1){
Pumpe.sendCommand(ON)
}
end
Die Variable iTime wird also zuerst mit einem Default Wert befüllt, anscdhließend prüft die Rule, ob im Item Laufzeit ein gültiger Wert vorliegt und setzt die Variable entsprechend. Da es eh um Integer geht, kann man die Variable auch gleich mit Integer befüllen.
Zum Abschluss wird das Item per Methode eingeschaltet, nicht per Action, die Action hat einige Nachteile gegenüber der Methode, man sollte sich also angewöhnen, die Methode zu nutzen. Die Methode hat auch Nachteile gegenüber der Action... sie ist trotzdem die bessere Wahl...

openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.9 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte