Seite 1 von 3
AVR Receiver Input via Rule
Verfasst: 8. Mär 2020 13:04
von PeterA
Hallo zusammen,
folgendes würde ich gerne über eine Rule "Smart" erledigen:
Wenn mein Receiver Samstags und Sonntags zwischen 7 und 13 Uhr eingeschaltet wird,
soll auf Internetradio als Input umgeschaltet werden.
Meine Idee ist zunächst über den Thing Status des Receivers abzufragen ob er "Online" ist.
Wenn er online ist, noch 60 sek warten, und dann auf Internetradio als Input zu schalten.
Zusätzlich soll es aber noch einen Switch in der UI geben mit dem ich das ganze Aktivieren/Deaktivieren kann.
Das Thing vom Receiver sieht so aus:
Das Input Item ist vom Type String und möchte "IRP" als String für Internetradio haben:
Das Switch Item soll dann "RadioModeAuto" lauten
Wie könnte denn hier die Rule aussehen ?
Könnte diese Rule ggf als Vorlage dienen ?
Code: Alles auswählen
rule "Denon OFFLINE/ONLINE"
when
Thing "denonmarantz:avr:0005cd3a0e8e" changed
then
var status = getThingStatusInfo("denonmarantz:avr:0005cd3a0e8e").getStatus()
logInfo("Denon AVR X2000","Status: "+status.toString())
if (status.toString() == 'OFFLINE')
{
DenonAVRX2000_MainZone_Power.postUpdate(OFF)
}
else {
DenonAVRX2000_MainZone_Power.postUpdate(ON)
}
end
Gruß Peter
Re: AVR Receiver Input via Rule
Verfasst: 10. Mär 2020 14:08
von PeterA
.. hat niemand eine Idee ? Ich schiele mal zum Udo

Re: AVR Receiver Input via Rule
Verfasst: 10. Mär 2020 15:29
von udo1toni
Ja, das sieht doch schon gut aus. Ich gehe mal davon aus, dass es besser ist, auf ONLINE zu testen.
Dann musst Du nur noch prüfen, ob der Zeitraum erfüllt ist, also z.B.
Code: Alles auswählen
if(now.getHourOfDay > 6 && now.getHourOfDay <13 && now.getDayOfWeek > 5)
und gegebenenfalls einen Timer starten, der dann die Umschaltung vornimmt.
Re: AVR Receiver Input via Rule
Verfasst: 10. Mär 2020 16:04
von PeterA
merci,
das sind nun neue "Befehle" in einer Rule für mich.
Wie darf ich das verstehen ?
"now.getHourOfDay >6" größer sechs Uhr ? und <13 kleiner 13Uhr also muss es zwischen 7 und 12 Uhr liegen ?
"now.getDayOfWeek >5 größer als der 5te Tag (Freitag) der Woche also muss es Sa und So sein ?
Re: AVR Receiver Input via Rule
Verfasst: 10. Mär 2020 17:00
von udo1toni
now.getHourOfDay liefert die aktuelle Stunde des Tages - das ist schon irgendwie naheliegend
> 6 bedeutet, es muss nach 7 Uhr (oder genau 7 Uhr) sein,
< 13 bedeutet, dass die Stunde kleiner 13 ist, das gilt auch für 12:59:59 Uhr. Also ist damit der gesamte Zeitraum vor 13 Uhr gemeint.
Beide Bedingungen müssen gleichzeitig erfüllt sein, also zwischen 7 und 13 Uhr.
now.getDayOfWeek liefert den Tag der Woche, wobei Montag = 1 und Sonntag = 7 ist. an ein paar Stellen hat sich die ISO schon durchgesetzt, selbst in USA...

Re: AVR Receiver Input via Rule
Verfasst: 10. Mär 2020 20:35
von PeterA
Hi Udo,
kleinschrittig bin ich nun weitergekommen
hier mein erster Versuch welcher auch Funktioniert:
Code: Alles auswählen
rule "Denon Autoinput IRP"
when
Thing "denonmarantz:avr:0005cd3a0e8e" changed
then
var status = getThingStatusInfo("denonmarantz:avr:0005cd3a0e8e").getStatus()
//logInfo("Denon AVR X2000","Status: "+status.toString())
if (status.toString() == 'ONLINE' && DenonInputAuto_to_IRP.state == ON )
{
DenonAVRX2000_MainZone_InputSource.sendCommand("IRP")
logInfo("Radiomode Auto","Internet Radio")
}
end
Zunächst habe ich eine zusätzliche Bedingung über das Switch Item "DenonInputAuto_to_IRP" eingebaut.
Somit kann ich unterbinden das automatisch auf Internet Radio umgeschaltet wird sobald der Receiver "Online" ist.
Aber wie bekomme ich eine weitere "UND" Bedingung für den gewünschten Zeitraum hier eingebaut?
Re: AVR Receiver Input via Rule
Verfasst: 10. Mär 2020 21:24
von udo1toni
Du hast Doch schon ein und drin? Ich verstehe jetzt die Frage nicht so ganz...
Re: AVR Receiver Input via Rule
Verfasst: 10. Mär 2020 21:30
von PeterA
Ja und es soll jetzt noch die Bedingung in die Rule das nur Sam und Sonntag zwischen 7 und 13 Uhr Automatisch auf IRP umgeschaltet werden darf.
Der Switch soll aber die Rule komplett deaktivieren.
Re: AVR Receiver Input via Rule
Verfasst: 10. Mär 2020 21:45
von Darkwin101
Code: Alles auswählen
rule "Denon Autoinput IRP"
when
Thing "denonmarantz:avr:0005cd3a0e8e" changed
then
var status = getThingStatusInfo("denonmarantz:avr:0005cd3a0e8e").getStatus()
//logInfo("Denon AVR X2000","Status: "+status.toString())
if ((status.toString() == 'ONLINE' && DenonInputAuto_to_IRP.state == ON ) && (now.getHourOfDay > 6 && now.getHourOfDay <13 && now.getDayOfWeek > 5))
{
DenonAVRX2000_MainZone_InputSource.sendCommand("IRP")
logInfo("Radiomode Auto","Internet Radio")
}
end
Eine rule kannst du nicht komplett deaktivieren du kannst nur dafür sorgen das im then Teil nicht alle Bedingungen erfüllt sind und damit dann keine Aktion ausgeführt wird.
Re: AVR Receiver Input via Rule
Verfasst: 10. Mär 2020 22:09
von PeterA
Hi Darkwin,
vielen Dank für Deinen Input. Ich wusste nicht das ich mehr als zwei && als Bedingungen in eine Zeile packen kann.
Und klar kann eine Rule nicht komplett deaktiviert werden sondern nur nicht Triggern.
Ich werde es am Weekend dann mal testen.
Gruß Peter