Das ist ja schon ein Weilchen her...
Wie sieht der Code denn aktuell aus?
Gesendet von iPad mit Tapatalk
AVR Receiver Input via Rule
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: AVR Receiver Input via Rule
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
- PeterA
- Beiträge: 1106
- Registriert: 8. Feb 2019 12:12
Re: AVR Receiver Input via Rule
Original so wie in deinem als beste Antwort markierten Post.
- OpenHab 2.4
#PWRUP
#PWRUP
- PeterA
- Beiträge: 1106
- Registriert: 8. Feb 2019 12:12
Re: AVR Receiver Input via Rule
Hier noch mal die aktuelle Rule:
Gruß Peter
Code: Alles auswählen
var Timer tAutoInput = null // globale Variablen immer zu Beginn der Datei definieren
rule "Denon Autoinput IRP"
when
Thing "denonmarantz:avr:0005cd3a0e8e" changed
then
if(DenonInputAuto_to_IRP.state != ON) {
logInfo("autoinput","Regel getriggert, aber deaktiviert.")
return;
}
var status = getThingStatusInfo("denonmarantz:avr:0005cd3a0e8e").getStatus()
if(status.toString() != 'ONLINE') {
logInfo("autoinput","Regel getriggert, Gerät nicht ONLINE.")
return;
}
if (now.getHourOfDay < 7 || now.getHourOfDay > 12 || now.getDayOfWeek < 6) {
logInfo("autoinput","Regel getriggert, falscher Zeitraum.")
return;
}
logInfo("autoinput","Regel getriggert, berreite Umschaltung vor.")
tAutoInput?.cancel
tAutoInput = createTimer(now.plusSeconds(15), [|
logInfo("autoinput","Timer abgelaufen, wähle Internet Radio.")
DenonAVRX2000_MainZone_InputSource.sendCommand("IRP")
])
end
- OpenHab 2.4
#PWRUP
#PWRUP
- udo1toni
- Beiträge: 15265
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: AVR Receiver Input via Rule
Gut. Ich gehe von "TV" als Input Namen aus. Falls das abweicht, musst Du das entsprechend ändern.
Die Umschaltung wird nur am Wochenende ausgeführt. (letztes return vor dem Erstellen des Timers...) Im Timer entscheidet die Rule anhand der Uhrzeit, welcher Eingang gewählt wird. Innerhalb des Zeitfensters 7 Uhr bis 13 Uhr wird Internet Radio gewählt, außerhalb TV. Ich war faul und habe einfach den zu übergebenden String im log verwendet, der Lesende dürfte damit genauso gut zurechtkommen 
Code: Alles auswählen
var Timer tAutoInput = null // globale Variablen immer zu Beginn der Datei definieren
rule "Denon Autoinput bei Einschalten"
when
Thing "denonmarantz:avr:0005cd3a0e8e" changed
then
if(DenonInputAuto_to_IRP.state != ON) {
logInfo("autoinput","Regel getriggert, aber deaktiviert.")
return;
}
var status = getThingStatusInfo("denonmarantz:avr:0005cd3a0e8e").getStatus()
if(status.toString() != 'ONLINE') {
logInfo("autoinput","Regel getriggert, Gerät nicht ONLINE.")
return;
}
if (now.getDayOfWeek < 6) {
logInfo("autoinput","Regel getriggert, kein Wochenende.")
return;
}
logInfo("autoinput","Regel getriggert, bereite Umschaltung vor.")
tAutoInput?.cancel
tAutoInput = createTimer(now.plusSeconds(15), [|
var String strInput = "TV"
if (now.getHourOfDay > 6 && now.getHourOfDay < 13)
strInput = "IRP"
logInfo("autoinput","Timer abgelaufen, wähle {}.",strInput)
DenonAVRX2000_MainZone_InputSource.sendCommand(strInput)
])
end

openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
- PeterA
- Beiträge: 1106
- Registriert: 8. Feb 2019 12:12
Re: AVR Receiver Input via Rule
Hallo Udo,
was soll ich sagen ? Funktioniert! Vielen Dank!
was soll ich sagen ? Funktioniert! Vielen Dank!
Code: Alles auswählen
var Timer tAutoInput = null // globale Variablen immer zu Beginn der Datei definieren
rule "Denon Autoinput bei Einschalten"
when
Thing "denonmarantz:avr:0005cd3a0e8e" changed
then
if(DenonInputAuto_to_IRP.state != ON) {
logInfo("autoinput","Regel getriggert, aber deaktiviert.")
return;
}
var status = getThingStatusInfo("denonmarantz:avr:0005cd3a0e8e").getStatus()
if(status.toString() != 'ONLINE') {
logInfo("autoinput","Regel getriggert, Gerät nicht ONLINE.")
return;
}
if (now.getDayOfWeek < 6) {
logInfo("autoinput","Regel getriggert, kein Wochenende.")
return;
}
logInfo("autoinput","Regel getriggert, bereite Umschaltung vor.")
tAutoInput?.cancel
tAutoInput = createTimer(now.plusSeconds(15), [|
var String strInput = "SAT/CBL"
if (now.getHourOfDay > 6 && now.getHourOfDay < 13)
strInput = "IRP"
logInfo("autoinput","Timer abgelaufen, wähle {}.",strInput)
DenonAVRX2000_MainZone_InputSource.sendCommand(strInput)
])
end
- OpenHab 2.4
#PWRUP
#PWRUP
- PeterA
- Beiträge: 1106
- Registriert: 8. Feb 2019 12:12
Re: AVR Receiver Input via Rule
Hallo Udo,
es gibt ja im "Live" Betrieb immer noch etwas was nicht bedacht wurde
Nämlich kann es sein das der Denon auf "BD" (Blu-Ray) als Input steht. (Weil halt jemand gerade Blu-Ray schaut)
Ab und zu passiert es aber leider das das Denon Thing in OpenHAB Offline geht und danach wieder online. (Ursache noch nicht gefunden)
Dann würde die Rule wieder auf SAT/IRP umschalten.... -> doof.
Ich habe jetzt noch eine Zusätzliche Abfrage eingebaut welche prüft ob der Input gerade auf "BD" steht.
es gibt ja im "Live" Betrieb immer noch etwas was nicht bedacht wurde

Nämlich kann es sein das der Denon auf "BD" (Blu-Ray) als Input steht. (Weil halt jemand gerade Blu-Ray schaut)
Ab und zu passiert es aber leider das das Denon Thing in OpenHAB Offline geht und danach wieder online. (Ursache noch nicht gefunden)
Dann würde die Rule wieder auf SAT/IRP umschalten.... -> doof.
Ich habe jetzt noch eine Zusätzliche Abfrage eingebaut welche prüft ob der Input gerade auf "BD" steht.
Code: Alles auswählen
var Timer tAutoInput = null // globale Variablen immer zu Beginn der Datei definieren
rule "Denon Autoinput bei Einschalten"
when
Thing "denonmarantz:avr:0005cd3a0e8e" changed
then
if(DenonInputAuto_to_IRP.state != ON) {
logInfo("autoinput","Regel getriggert, aber deaktiviert.")
return;
}
if(DenonAVRX2000_MainZone_InputSource.state.toString == "BD") {
logInfo("autoinput","Regel getriggert, InputSource Blu-Ray, Abbruch.")
return;
}
var status = getThingStatusInfo("denonmarantz:avr:0005cd3a0e8e").getStatus()
if(status.toString() != 'ONLINE') {
logInfo("autoinput","Regel getriggert, Gerät nicht ONLINE.")
return;
}
if (now.getDayOfWeek < 6) {
logInfo("autoinput","Regel getriggert, kein Wochenende.")
return;
}
logInfo("autoinput","Regel getriggert, bereite Umschaltung vor.")
tAutoInput?.cancel
tAutoInput = createTimer(now.plusSeconds(15), [|
var String strInput = "SAT/CBL"
if (now.getHourOfDay > 6 && now.getHourOfDay < 13)
strInput = "IRP"
logInfo("autoinput","Timer abgelaufen, wähle {}.",strInput)
DenonAVRX2000_MainZone_InputSource.sendCommand(strInput)
])
end
- OpenHab 2.4
#PWRUP
#PWRUP