Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Enigma2 (oft: E2) ist die Open-Source Benutzeroberfläche für Dreambox DVB-C/S/T Receiver. In der Zwischenzeit ist diese Benutzeroberfläche nicht nur bei den Original Dreamboxen im Einsatz, sondern auch bei einer Vielzahl von anderen Sat-Boxen verschiedener Hersteller. Das Betriebssystem ist Linux, die meisten dieser Boxen basieren auf ARM-Architektur.

Das REST Web API von Enigma2 ist hier erklärt:  https://dream.reichholf.net/wiki/Enigma2:WebInterface

Damit lassen sich im Prinzip alle Statis abfragen und Kommandos ausführen, wobei der Miniserver mangels richtiger bidirektionaler Kommunikation eher weniger geeignet ist.

Besonders der Powerstate ist sinnvoll, um zu wissen, ob die Box an ist oder aus. Ein Ping funktioniert nicht, da im normalen Standby das Netzwerkinterface in Betrieb bleibt und auf Pings antwortet.

Interessante Abfragen sind jedenfalls:

Powerstate abfragen und schalten

Abfrage:

http://dreambox/web/powerstate

Response
<e2powerstate>
<e2instandby>true</e2instandby>
</e2powerstate>

Da sich in Loxone kein Text per http abfragen lässt, kann mittels ASCII Auswertung der erste Buchstabe abgefragt werden. 

Befehlserkennung
<e2instandby>\1

Danach kann mittels Vergleich der Wert für <t> (true) von 116 und der Wert für <f> (false) von 102 ausgewertet werden. Nun weiss man ob die Dreambox im Standby ist oder nicht.

In manchen Fällen ist die XML Response etwas anders formattiert, weshalb die Befehlserkennung auch leicht angepasst werden muss. Zum Beispiel:

Response
<e2powerstate>
<e2instandby>
true</e2instandby>
</e2powerstate>
Befehlserkennung
<e2instandby>\n\1

 

Schalten:

http://dreambox/web/powerstate?newstate=<nr>

  • 0 = Toogle Standby
  • 1 = Deepstandby
  • 2 = Reboot
  • 3 = Restart Enigma2
  • 4 = Wakeup form Standby
  • 5 = Standby

HINWEIS: In der Loxone Config ist ein entsprechendes Gerät vordefiniert mit dem Namen "DreamBox / Enigma2"

Nachricht anzeigen

http://dreambox/web/message?text={messagetext}&type={messagetype}&timeout={messagetimeout}

messagetext → Text der Nachricht

type → 0 bis 3, 0 = Ja/Nein, 1= Info, 2=Benachrichtigung, 3=Achtung (0 macht keinen Sinn, weil der Miniserver die Antwort nicht auswerten kann)

timeout → Kann leer sein, oder gibt die Anzeigezeit an.

Sofort aufnehmen

Das aktuell laufende Programm aufnehmen:

http://dreambox/web/recordnow?recordnow=

(ohne Parameter)


2 Kommentare

  1. Harry sagt:

    Hallo,

    mit meiner DM920 hatte ich das Powerstate-Webinterface leider nicht mehr, somit konnte ich das nicht mehr abfragen.
    Ich habe das ganze jetzt mit einem Service gelöst:

    Die Datei udp.service mit folgendem inhalt erstellen:

    udp.service
    [Unit]
    Description=UDP Powerstate to Loxone
    After=network-online.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/bin/sh -c  "echo 1 > /dev/udp/192.168.xxx.xx/yyyy"
    ExecStop=/bin/sh -c  "echo 0 > /dev/udp/192.168.xxx.xx/yyyy"
    RemainAfterExit=yes
    NonBlocking=true
    NotifyAccess=all
    
    [Install]
    WantedBy=multi-user.target

    Dabei die IP Adresse des Miniservers und den gewünschten UDP Port eintragen.
    Die Datei auf die Dreambox nach /lib/systemd/system kopieren und rechte 644 erteilen. Anschließen per Telnet auf die Box und folgende Befehle eingeben:

    ~# systemctl daemon-reload
    ~# systemctl enable udp.service
    Created symlink /etc/systemd/system/multi-user.target.wants/udp.service     /lib/systemd/system/udp.service.
    ~# start udp.service

    Dann sollte die Dreambox per UDP den PowerStatus senden.

    In Loxone dann einfach einen Virtuellen UDP Eingang auf den oben in der udp.service eingetragenen Port eröffnen.


    Ich lasse die Box immer in den deep Standby fahren, da funktioniert der service. Im normalen Standby geht es so wohl nicht...

  2. Harry sagt:

    oder noch besser, man installiert dieses Plugin: 
    https://board.dreambox.tools/wbb/index.php?thread/8868-executeonpowerevent-plugin/

    und schreibt in die beiden Dateien (enigma_standby_off.sh und enigma_standby_on.sh) unter /usr/script/

    enigma_standby_off.sh
    #!/bin/sh
    
    echo "0" > /dev/udp/192.168.xxx.xx/yyyy

    und bei :

    enigma_standby_on.sh
    #!/bin/sh
    
    echo "1" > /dev/udp/192.168.xxx.xx/yyyy

    Wobei hier wieder die IP des Miniservers und der gewünschte UDP Port eingetragen werden muss.
    Mit diesem Plugin funktioniert auch der Idle modus.

    Gruß
    Sepp