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