Modul für ENIGMA2 Receiver

Begonnen von Loredo, 16 September 2013, 22:34:57

Vorheriges Thema - Nächstes Thema

tinyfhem

Zitat von: tinyfhem am 04 Februar 2014, 19:28:46
Das ist mir schon klar und ich weiss auch welches ;) ... Die Frage war, wie man fehlende PERL Modules auf dem Raspi nachinstalliert und darauf habe ich im Forum keine Antwort gefunden. Ok, man kann sagen, das ist Off Topic, sowohl hier in diesem Bereich, als auch im gesamten Forum.

Bin inzwischen einen Schritt weiter und kaempfe mit unitialisierten Variablen aber vielleicht gibts da ja auch schon zig Antworten ... ich werde suchen gehen.....

Vielen Dank an dieser Stelle, fuer das ENIGMA2 Module.
Stelle eben fest, meine Dreambox ist eine DM 7000. Da ist vermutlich ein Enigma 1 drauf. Im WebUI kann ich leider nirgends eine Versionsangabe finden aber das Teil ist vermutlicheinfach zu alt. Wenn es denn ein Enigma 1 ist, ist es dann wahrscheinlich, dass das ENIGMA2.pm Module gar nicht funktionieren kann?
FHEM auf Raspberry Pi, EnOcean Pi, HomeMatic LAN Konfigurations Adapter, CUL 868 V3, CUL 433 V3

Loredo

Zitat von: tinyfhem am 08 Februar 2014, 09:56:01
Stelle eben fest, meine Dreambox ist eine DM 7000. Da ist vermutlich ein Enigma 1 drauf. Im WebUI kann ich leider nirgends eine Versionsangabe finden aber das Teil ist vermutlicheinfach zu alt. Wenn es denn ein Enigma 1 ist, ist es dann wahrscheinlich, dass das ENIGMA2.pm Module gar nicht funktionieren kann?


Die Wahrscheinlichkeit liegt bei 100% :-)


Die API unterscheidet sich leider maßgeblich. Vielleicht mache ich irgendwann nochmal ein ENIGMA1 Modul (dafür steht hier eine dbox2 im Schrank), aber das wäre wirklich extremstes Hobby und Langeweile.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Michi240281

Hallo,

habe gerade das Modul bei mir über define eingebunden.
Was muss man danach tun? Die Instanz und die readings sehen folgendermaßen aus.
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Loredo

Die XML-Kommunikation über das Webinterface scheint nicht zu funktionieren. Grundsätzlich ist das Gerät aber übers Netzwerk erreichbar.
Du kannst mal das Attribut verbose auf 4 oder 5 setzen und im Logfile schauen, was bei den Abfragen tatsächlich zurück kommt.
Auch kannst du einmal manuell schauen, was bei http://192.168.188.33:80/web/powerstate so kommt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Michi240281

#214
2014.02.08 12:13:08 2: ENIGMA2 DM500HD: ERROR: Undefined state of device
2014.02.08 12:14:22 5: ENIGMA2 DM500HD: called function ENIGMA2_GetStatus()
2014.02.08 12:14:22 5: ENIGMA2 DM500HD: called function ENIGMA2_SendCommand()
2014.02.08 12:14:22 4: ENIGMA2 DM500HD: REQ powerstate
2014.02.08 12:14:22 5: ENIGMA2 DM500HD: GET http://192.168.188.33:80/web/powerstate
2014.02.08 12:14:23 4: ENIGMA2 DM500HD: RCV powerstate
2014.02.08 12:14:23 5: ENIGMA2 DM500HD: RES ERROR powerstate - not in XML format
<html><body>Access Denied.</body></html>
2014.02.08 12:14:23 2: ENIGMA2 DM500HD: ERROR: Undefined state of device
2014.02.08 12:15:37 5: ENIGMA2 DM500HD: called function ENIGMA2_GetStatus()
2014.02.08 12:15:37 5: ENIGMA2 DM500HD: called function ENIGMA2_SendCommand()
2014.02.08 12:15:37 4: ENIGMA2 DM500HD: REQ powerstate
2014.02.08 12:15:37 5: ENIGMA2 DM500HD: GET http://192.168.188.33:80/web/powerstate
2014.02.08 12:15:38 4: ENIGMA2 DM500HD: RCV powerstate
2014.02.08 12:15:38 5: ENIGMA2 DM500HD: RES ERROR powerstate - not in XML format
<html><body>Access Denied.</body></html>
2014.02.08 12:15:38 2: ENIGMA2 DM500HD: ERROR: Undefined state of device
2014.02.08 12:16:53 5: ENIGMA2 DM500HD: called function ENIGMA2_GetStatus()
2014.02.08 12:16:53 5: ENIGMA2 DM500HD: called function ENIGMA2_SendCommand()
2014.02.08 12:16:53 4: ENIGMA2 DM500HD: REQ powerstate
2014.02.08 12:16:53 5: ENIGMA2 DM500HD: GET http://192.168.188.33:80/web/powerstate
2014.02.08 12:16:53 4: ENIGMA2 DM500HD: RCV powerstate
2014.02.08 12:16:53 5: ENIGMA2 DM500HD: RES ERROR powerstate - not in XML format
<html><body>Access Denied.</body></html>
2014.02.08 12:16:53 2: ENIGMA2 DM500HD: ERROR: Undefined state of device
2014.02.08 12:18:08 5: ENIGMA2 DM500HD: called function ENIGMA2_GetStatus()
2014.02.08 12:18:08 5: ENIGMA2 DM500HD: called function ENIGMA2_SendCommand()
2014.02.08 12:18:08 4: ENIGMA2 DM500HD: REQ powerstate
2014.02.08 12:18:08 5: ENIGMA2 DM500HD: GET http://192.168.188.33:80/web/powerstate
2014.02.08 12:18:08 4: ENIGMA2 DM500HD: RCV powerstate
2014.02.08 12:18:08 5: ENIGMA2 DM500HD: RES ERROR powerstate - not in XML format
<html><body>Access Denied.</body></html>
2014.02.08 12:18:08 2: ENIGMA2 DM500HD: ERROR: Undefined state of device
2014.02.08 12:19:23 5: ENIGMA2 DM500HD: called function ENIGMA2_GetStatus()
2014.02.08 12:19:23 5: ENIGMA2 DM500HD: called function ENIGMA2_SendCommand()
2014.02.08 12:19:23 4: ENIGMA2 DM500HD: REQ powerstate
2014.02.08 12:19:23 5: ENIGMA2 DM500HD: GET http://192.168.188.33:80/web/powerstate
2014.02.08 12:19:23 4: ENIGMA2 DM500HD: RCV powerstate
2014.02.08 12:19:23 5: ENIGMA2 DM500HD: RES ERROR powerstate - not in XML format
<html><body>Access Denied.</body></html>
2014.02.08 12:19:23 2: ENIGMA2 DM500HD: ERROR: Undefined state of device
2014.02.08 12:20:38 5: ENIGMA2 DM500HD: called function ENIGMA2_GetStatus()
2014.02.08 12:20:38 5: ENIGMA2 DM500HD: called function ENIGMA2_SendCommand()
2014.02.08 12:20:38 4: ENIGMA2 DM500HD: REQ powerstate
2014.02.08 12:20:38 5: ENIGMA2 DM500HD: GET http://192.168.188.33:80/web/powerstate
2014.02.08 12:20:38 4: ENIGMA2 DM500HD: RCV powerstate
2014.02.08 12:20:38 5: ENIGMA2 DM500HD: RES ERROR powerstate - not in XML format
<html><body>Access Denied.</body></html>
2014.02.08 12:20:38 2: ENIGMA2 DM500HD: ERROR: Undefined state of device


Muss ich das hier noch irgendwie ausführen?

apt-get install libxml-simple-perl

und wenn ja, wie?
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Loredo

Deine Web-Oberfläche ist mit Benutzername/Passwort geschützt. Entweder abstellen oder bei der Device-Definition den Benutzer und das Passwort so wie in der Kommando-Referenz beschrieben mit angeben, damit das Modul auf die Box auch tatsächlich zugreifen kann.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Michi240281

Ah ok, stimmt!

Das muss dann in eckige Klammern dahinter?

Hab ich gemacht, ändert sich nix!
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Loredo

Zitat des Beispiels aus der Kommando-Referenz unter http://fhem.de/commandref.html#ENIGMA2:


define SATReceiver ENIGMA2 192.168.0.10 80 60 root secret     # With HTTP user credentials




Eckige Klammern in der Kommando-Referenz bedeuten, dass diese Angaben optional sind!
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

marvin78

@Loredo: Hattest du das gesehen?

Zitat von: marvin78 am 07 Februar 2014, 16:40:19
Um das oben angesprochene Problem zu lösen, dass es wenig Sinn macht, die Box über das Modul herunterzufahren, wenn eine Aufnahme läuft, habe ich folgende Funktion in der 99_myUtils.pm untergebracht:

sub
DreamboxAufnahme() {
  my $aufnahmen= qx(wget -O- -q http://IP-DER_BOX/web/timerlist | grep 'e2state' | grep -c '>2<');
  return $aufnahmen;
}


Die Funktion fragt über das Webinterface die Timerliste ab, in der man sehen kann, wenn eine oder mehrere Aufnahmen laufen. Somit kann man ein sicheres Herunterfahren anhand dieser Funktion und weiterer Kriterien (verbundene Clients...) realisieren. Der Rückgabewert ist die Zahl der laufenden Aufnahmen.

Für mich reicht das so aus aber eventuell wäre es ja auch eine interessante Erweiterung für dieses Modul.

Loredo

Zitat von: marvin78 am 08 Februar 2014, 12:41:58
@Loredo: Hattest du das gesehen?


Hab ich. Ich weiß grundsätzlich, dass man es darüber umständlich interpretieren kann.
Der Punkt ist der, dass es eine weitere XML Abfrage bedeutet und zudem je nach Umfang der individuellen Timerliste wieder Zeit kostet. Mit der aktuellen Implementierung bedeutet das, dass FHEM u.U. noch länger blockiert ist und währenddessen keine weiteren Aufgaben abgearbeitet werden können. Deshalb baue ich es aktuell nicht ein.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Michi240281

Es geeeeeeeeeeeeeeeeeeeeht! :)

Mann muss auch [<poll-interval>] angeben, sonst geht es wohl nicht!
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905

Loredo

Zitat von: Michi240281 am 08 Februar 2014, 12:42:26
Jetzt steht im log folgendes:


2014.02.08 12:39:11 2: ENIGMA2 DM500HD: ERROR: Undefined state of device
2014.02.08 12:39:11 5: ENIGMA2 DM500HD: called function ENIGMA2_GetStatus()
Argument "root" isn't numeric in addition (+) at ./FHEM/70_ENIGMA2.pm line 120.
2014.02.08 12:39:11 5: ENIGMA2 DM500HD: called function ENIGMA2_SendCommand()
2014.02.08 12:39:11 4: ENIGMA2 DM500HD: REQ powerstate
2014.02.08 12:39:11 5: ENIGMA2 DM500HD: GET http://blendax3@192.168.188.33:80/web/powerstate
2014.02.08 12:39:11 4: ENIGMA2 DM500HD: RCV powerstate
2014.02.08 12:39:11 5: ENIGMA2 DM500HD: RES ERROR powerstate - not in XML format
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html>
<head>
   <title>T-Online Navigationshilfe</title>
</head>
<frameset rows="100%">
<frame src="http://navigationshilfe.t-online.de/dnserror?url=http://blendax3@192.168.188.33/"
   frameborder="0" noresize="noresize"/>
<noframes>
  <body>
   <h1>Willkommen bei T-Online</h1>
   <p>
   <a href="http://navigationshilfe.t-online.de/dnserror?url=http://blendax3@192.168.188.33/">
   weiter....</a>
   </p>
  </body>
</noframes>
</frameset>
</html>

2014.02.08 12:39:11 2: ENIGMA2 DM500HD: ERROR: Undefined state of device



Ich denke der Fall ist klar: Lies doch bitte einmal ganz genau, was in dem Log steht. Da kommt eine Antwort von deiner T-Online-Box, nicht von einer Dreambox. Der Fehler ist bei dir individuell im Netzwerk zu suchen. Leider kann ich hier keinen Netzwerk-Support geben. Dafür sind die möglichen individuellen Konstellationen einfach zu umfangreich.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Zitat von: Michi240281 am 08 Februar 2014, 12:46:09
Es geeeeeeeeeeeeeeeeeeeeht! :)

Mann muss auch [<poll-interval>] angeben, sonst geht es wohl nicht!


So steht es auch im Beispiel ........  ::)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

marvin78

#223
Zitat von: Loredo am 08 Februar 2014, 12:43:53

Hab ich. Ich weiß grundsätzlich, dass man es darüber umständlich interpretieren kann.
Der Punkt ist der, dass es eine weitere XML Abfrage bedeutet und zudem je nach Umfang der individuellen Timerliste wieder Zeit kostet. Mit der aktuellen Implementierung bedeutet das, dass FHEM u.U. noch länger blockiert ist und währenddessen keine weiteren Aufgaben abgearbeitet werden können. Deshalb baue ich es aktuell nicht ein.

Das ist schon ein guter Punkt. Interessant wäre sicher ein Plugin für Enigma2, welches FHEM die Daten schickt. Oder einfach ein kleines Skript welches man an den Beginn und Ende einer Aufnahme knüpft und FHEM den jeweiligen Status mitteilt.

BTW: Ich prüfe nur nach 23 Uhr.

Michi240281

#224
Zitat von: Loredo am 08 Februar 2014, 12:46:39

So steht es auch im Beispiel ........  ::)

Ne, da steht, dass die Sachen in eckigen Klammern optional sind! Und ich habe eben das [<poll-interval>] weggelassen! Bzw. hast du das soeben geschrieben! Offensichtlich gehört das aber zusammen, also sollte man die eckigen Klammern um die 3 Ausdrücke machen.

Vielen Dank für das Modul und den Support!

Btw: Was könnte man dann jetzt so für "Sachen" damit machen? Ich meine außer eben über das Frontend schalten!
FHEM 5.6 auf RPi2 / HM LAN Adapter / diverse HM-Devices
FHEM-Remote-App
QNAP 419P / Onkyo TX-SR 608
DM500HD / GM Spark One
Sony 52HX905