Elektronik2000.de Forum
» Willkommen - Allgemein Bereich
» Projekte von E2000-Benutzern
Kommunikation mit Dreambox & kompatible Resiver
Seiten (1): [1]  
Autor Beitrag
 
schmiedt
Kommunikation mit Dreambox & kompatible Resiver
Halli Hallo,

als Ziel hatte ich in Verbindung mit dem E2k Net-IO und einem Enigma2 Resiver (bei mir VU+ DUO) eine Art Kommunikation aufzubauen. Zum Beispiel sollte bei Betätigung der Türklingel eine Meldung am TV erscheinen dass es geklingelt hat und ob man den Türöffner jetzt betätigen möchte JA/NEIN?.

Da ich noch nicht die nötige Hardware zusammen habe, testete ich einfach mit der Flurbeleuchtung und einem Softkey im WebIF.

Ich füge hier mal das Skript ein, welches sich unter Linux in der Bash-shell ausführen lässt.
Als zusätzliches Paket auf der Linux Maschine wird XPATH benötigt um die XML-kommunikation mit dem Resiver bewerkstelligen zu können.
In dem Skript sind größten Teils Kommentare nach dem # eingefügt.

EDIT: Da in meinem Editor das Skript übersichtlicher aussieht als hier im Codefenster hänge ich mal eine Screenshot an.

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash
set -x #Debugausgabe
while [ true ] #Dauerwiederholung
do
# Variablen zurücksetzen
unset stby
unset a
unset b
unset c
unset d
unset e
unset f
# checken ob der Resiver erreichbar ist
ping -q -c1 10.5.16.181 &> /dev/null
if [ $? = 0 ]
then
# wenn der Resiver erreichbar ist dann checken ob er im Standby ist
stby=$(wget -q -O- http://10.5.16.181/web/powerstate -O- | xpath -q -e "//e2instandby/text()")
if [ $stby = "false" ]
then
# wenn der Resiver nicht im Standby ist (stby=false)
  a=$(echo -e "P0\r" | nc -w 1 10.5.16.240 64400) #Abfrage der ersten 8 Ausgängen in 16Bit-Hex in Variable a
   b=${a:7:4} #Herrausfiltern des zweiten Ausganges in Variable b
  if test ${b} == "0001" #Prüfung Ausgang 2 HIGH Zustand
  then
  # wenn Ausgang 2 HIGH, dann eine Frage auf dem TV darstellen mit 25 sec Timeout
    wget -q "http://10.5.16.181/web/message?caption=Alarm&text=Flurbeleuchtung aktivieren?&type=0&timeout=25"
    c=0 #Variable $c auf Wert 0 setzen
    while [ $c -le 20 ] #Schleife solang $c kleiner oder gleich 20
    do
    # 20 mal mit 1.sec Pause die Antwort vom Resiver holen
      d=$(wget -q -O- http://10.5.16.181/web/messageanswer?getanswer=now -O- | xpath -q -e "//e2statetext/text()")
      # wenn die Antwort JA ist den Softeingang Nummer 3 so oft jede sec. Triggern bis das NET-IO den Befehl bestätigt aber höchstens 10 mal
      # anschließend die Schleife beenden
      if test "$d" == "Answer is YES!"
      then
  f=$(echo -e "T02:1\r")
  g=0
  while test "$e" != "$f" && test $g -le 10
  do
    e=$(echo -e "T02\r" | nc -w 1 10.5.16.240 64400) #Softeingang Nummer 3 triggern
    let g=$g+01
    sleep 1
  done
  break #Schleife vorzeitig beenden
      fi
      if test "$d" == "Answer is NO!"
      # wenn die Antwort vom Resiver NEIN ist wird die Schleife beendet
      then
  break
      fi
  
      let c=$c+01 #Variable $c um 01 erhöhen
      sleep 1 #Timer 1sec
    done
      
  fi
  sleep 2 #Timer 2sec
else
sleep 20 # 20 sec Pause wenn Resiver in Standby = True
fi
else
sleep 20 # 20 sec Pause wenn Resiver nicht anpingbar
fi
done
schmiedt ist offline  
 
schmiedt
mit der EDIT Funktion war es nicht möglich etwas hochzuladen.
Anhänge
licht.sh.jpg (191,4 KB)
licht.sh1.jpg (349,5 KB)
schmiedt ist offline  
 
Akim (Administator)
Interssant !

Kannst du die SAche noch etwas ausbauen und eine Install Datei davon erstellen?
Akim ist offline  
 
schmiedt
Das mit der Installdatei ist so eine Sache, da dass hier nur ein Bash-Skript ist welches ich auf einem Linuxrechner laufen habe, nicht aber auf dem Resiver selber.
Um auf dem Resiver soetwas zum Beispiel als Plug laufen zu lassen, müsste es in Phyton programmiert werden, wovon ich aktuell noch null Ahnung habe.

Eventuell lässt sich aber was machen, denn - geht nicht gibts nicht :) = Normaler Smile
schmiedt ist offline  
Seiten (1): [1]  
 
Suche
» Erweiterte Suche
Optionen
Druckansicht Druckansicht
Thema weiterempfehlen Thema weiterempfehlen