Ein kurze Anleitung wie ein E2-Receiver bei mir VU+ den Power/Standby Status melden kann.
Somit kann man z.B. in Verbindung mit Helligkeitsensor automatisch eine Lichtszene schalten.
Es wird bei jedem Zustand der VT-Eingang geschaltet also bei ein-aus und standby ein-aus.
MiniServer
1. Einen Virtuellen-Eingang anlegen und Nummer merken VIxx
Receiver
2. Start/Stop-Datei erstellen
Im Pfad /etc/init.d die Dateien loxone_ein.sh und loxone_aus.sh erstellen und mit nachfolgendem Inhalt füllen
loxone_ein.sh
#!/bin/bash # Config SERVERIP="192.168.xxx.xxx"; # IP-Adresse des Miniserver USER="admin"; # Username fuer Miniserver PASS="xxxxxxx"; # Passwort fuer Miniserver VI="VI16"; # Virtueller Eingang VIx den ihr angelegt habt #Programm -- hier nichts ändern-- PINGMS=`ping -c 2 $SERVERIP | grep loss | cut -d " " -f 4` if [ "$PINGMS" -ge "1" ]; then wget -O /dev/null -q http://$USER:$PASS@$SERVERIP/dev/sps/io/$VI/Ein exit 0 else exit 0 fi
#!/bin/bash # Config SERVERIP="192.168.xxx.xxx"; # IP-Adresse des Miniserver USER="admin"; # Username fuer Miniserver PASS="xxxxxxx"; # Passwort fuer Miniserver VI="VI16"; # Virtueller Eingang VIx den ihr angelegt habt #Programm -- hier nichts ändern-- PINGMS=`ping -c 2 $SERVERIP | grep loss | cut -d " " -f 4` if [ "$PINGMS" -ge "1" ]; then wget -O /dev/null -q http://$USER:$PASS@$SERVERIP/dev/sps/io/$VI/Aus exit 0 else exit 0 fi
3. Datei-Rechte anpassen
chmod 0755 loxone_aus.sh
chmod 0755 loxone_ein.sh
4. verlinken
ln -s /etc/init.d/loxone_ein.sh /etc/rc3.d/S99loxone_ein
ln -s /etc/init.d/loxone_aus.sh /etc/rc0.d/K20loxone_aus
5. Standby.py im Pfad /usr/lib/enigma2/python/Screens ändern
nach
print "leave standby"
import os os.system("/etc/init.d/loxone_ein.sh &")
print "enter standby"
import os os.system("/etc/init.d/loxone_aus.sh &")
from Screen import Screen from Components.ActionMap import ActionMap from Components.config import config from Components.AVSwitch import AVSwitch from Components.SystemInfo import SystemInfo from GlobalActions import globalActionMap from enigma import eDVBVolumecontrol, eServiceReference from Tools import Notifications inStandby = None class Standby(Screen): def Power(self): print "leave standby" import os os.system("/etc/init.d/loxone_ein.sh &") #set input to encoder self.avswitch.setInput("ENCODER") #restart last played service #unmute adc self.leaveMute() # leave inTryQuitMainloop if config.usage.silent_rec_mode.value: Notifications.RemovePopup(id = "goStandby") global inTryQuitMainloop inTryQuitMainloop = False #kill me self.close(True) def setMute(self): if (eDVBVolumecontrol.getInstance().isMuted()): self.wasMuted = 1 print "mute already active" else: self.wasMuted = 0 eDVBVolumecontrol.getInstance().volumeToggleMute() def leaveMute(self): if self.wasMuted == 0: eDVBVolumecontrol.getInstance().volumeToggleMute() def __init__(self, session): Screen.__init__(self, session) self.avswitch = AVSwitch() print "enter standby" import os os.system("/etc/init.d/loxone_aus.sh &") self["actions"] = ActionMap( [ "StandbyActions" ], { "power": self.Power }, -1) .......
MiniServer
5. Kontrollfunktion über Ping
Ping warum?
Die Skripte oben funktionieren nur wenn der Receiver richtig Ein/Aus geschaltet oder der Standby ausgeführt wird.
Wird aber der Receiver nicht herunter gefahren sondern nur die Stromzufuhr gekappt bleibt der Eingang auf EIN (unschön).
Wenn nun der Receiver nicht mehr erreichbar ist wird der RS Baustein zurückgesetzt und der VI wird über den Virtuellen Ausgang zurück gesetzt.
So ist die Funktion auch sauber auch wenn der Receiver vom Strom genommen wurde ohne ihn vorher auszuschalten.
Wischrelais ist damit er nur einen Impuls gibt z.B. 0,5 Sek.
Ping IP anpassen / Parameter könnte auch z.B. Timeout 3 Sek. Anzahl 2 dann geht es etwas schneller...
Virtueller Ausgang anlegen (User/Pass/IP des MiniServer anpassen)
Virtueller Ausgang Befehel (VI auf euren Ausgang anpassen, ist der gleiche wie durch das Skript ein/aus geschaltet wird)
Kommentar