das thema "wie schalte ich *intelligent* meinen digibit receiver aus" wurde in anderen themen ja schon ein paar mal u.a. mit @Commerzpunk @tavoc und einigen anderen besprochen.
hier mal eine lösung für openhab.
szenario tvheadend + digibit (oder ein anderer sat2ip receiver) und eine schaltbare steckdose an der der receiver hängt.
zielsetzung: der sat2ip receiver soll nach aufnahmen ausgeschaltet werden aber nur, wenn keine weitere aufnahme läuft, kein client tv schaut und kein client online ist da er ja evt in kürze tv schauen will.
wir müssen also über die tvheadend api zwei sachen abfragen....subscriptions und connections.
das ganze könnt ihr später auch dazu nutzen, den digibit bei inaktivität abzuschalten wenn keine clienten mehr online sind und auch keine aufnahmen laufen.
dummy in der items datei anlegen:
Switch Digibit_Abschaltung "Digibit Abschaltung"
eintrag in der rules datei:
rule "aufnahmen"
when
Item Digibit_Abschaltung received command ON
then
var String tvheadendapi_subscriptions = sendHttpGetRequest("http://tvhname:tvhpasswort@192.168.2.85:9981/api/status/subscriptions")
var String tvheadendapi_connections = sendHttpGetRequest("http://tvhname:tvhpasswort@192.168.2.85:9981/api/status/connections")
var String subscriptions = transform("JSONPATH", "$.totalCount", tvheadendapi_subscriptions)
var String connections = transform("JSONPATH", "$.totalCount", tvheadendapi_connections)
if(subscriptions == "0" && connections == "0") {
Steckdose.sendCommand(OFF)
}
end
Alles anzeigen
in zeile 5 & 6 müsst ihr eure zugangsdaten zum webinterface sowie die ip von tvheadend anpassen.
in zeile 10 muss das item Steckdose natürlich durch euer item für die schaltbare steckdose ersetzt werden.
abschliessend im tvheadend webinterface unter "configuration" -> "recording" -> bei "Post-processor command:" folgenden befehl eintragen:
curl 192.168.2.85:8080/basicui/CMD?Digibit_Abschaltung=ON
die ip adresse muss natürlich durch eure openhab ip ersetzt werden.
um den abschaltbefehl für den digibit auch für den normalen betrieb zu nutzen (also digibit aus wenn niemand mehr tv schaut und keine aufnahmen laufen) könnt ihr bspw den onlinestatus eurer clientgeräte als trigger nutzen.
bspw:
1. alle clientgeräte mittels network-binding in openhab einfügen und ihnen eine gruppe zuordnen.
2. den trigger der o.g. rule ergänzen Member of MeineGruppe changed from ON to OFF ...also
rule "aufnahmen"
when
Item Digibit_Abschaltung received command ON or
Member of MeineGruppe changed from ON to OFF
then
var String tvheadendapi_subscriptions = sendHttpGetRequest("http://tvhname:tvhpasswort@192.168.2.85:9981/api/status/subscriptions")
var String tvheadendapi_connections = sendHttpGetRequest("http://tvhname:tvhpasswort@192.168.2.85:9981/api/status/connections")
var String subscriptions = transform("JSONPATH", "$.totalCount", tvheadendapi_subscriptions)
var String connections = transform("JSONPATH", "$.totalCount", tvheadendapi_connections)
if(subscriptions == "0" && connections == "0" && MeineGruppe == OFF) {
Steckdose.sendCommand(OFF)
}
end
Alles anzeigen
damit wird immer nach der abschaltung eines clienten geprüft ob weitere clienten online sind oder tv schauen oder eine aufnahme läuft.
erst wenn nichts davon erfüllt ist wird die steckdose abgeschaltet.
die abschaltung lässt sich natürlich auch mit diesem thema super kombinieren
Tvheadend Aufnahmebenachrichtigung an Openhab