70_ENIGMA2.pm - FHEM Absturz nach Umschalten auf Optionskanäle

Begonnen von Mx112, 20 Oktober 2013, 14:14:33

Vorheriges Thema - Nächstes Thema

Mx112

Hallo,

das Modul läuft so weit, bringt jedoch FHEM komplett zum Absturz nachdem auf einen Kanal geschaltet wird der Optionskanäle hat - z.B. Sky Bundesliga.

Im Einsatz ist eine aktuelle FHEM SVN Version auf einer FritzBox 7390 sowie als Receiver eine VU+ Solo2 mit VTI 6.0.2 Image (OpenwebIF 0.2.3).

Der Absturz tritt nach dem Refresh auf, das umschalten auf einen Kanal mit Optionskanälen ansich funktioniert.

Das letzte was in der Konsole angezeigt wird ist:
Not a HASH reference at ./FHEM/70_ENiGMA2.pm line 114

Nach dem ich das auskommentiert habe
      if (ref($serviceinfo) eq "HASH" && defined($serviceinfo->{e2service}{e2servicereference}) && $serviceinfo->{e2service}{e2servicereference} ne "") {
        $eventinfo = ENIGMA2_SendCommand($hash, "epgservicenow", "sRef=".urlEncode($serviceinfo->{e2service}{e2servicereference}));
      }


wiederholt sich das ganze in Zeile 297
Not a HASH reference at ./FHEM/70_ENiGMA2.pm line 297


    if (ref($serviceinfo) eq "HASH" && defined($serviceinfo->{e2service})) {
      if ($serviceinfo->{e2service}{e2servicereference} ne "") {
        if (!defined($hash->{READINGS}{servicereference}{VAL}) || $hash->{READINGS}{servicereference}{VAL} ne $serviceinfo->{e2service}{e2servicereference}) {
          readingsBulkUpdate($hash, "servicereference", $serviceinfo->{e2service}{e2servicereference}, 1);
          readingsBulkUpdate($hash, "currentMedia", $serviceinfo->{e2service}{e2servicereference}, 1);
          my @servicetype = split(/:/, $serviceinfo->{e2service}{e2servicereference});
          if ($servicetype[2] eq "2") {
            readingsBulkUpdate($hash, "input", "radio", 1);
          } else {
            readingsBulkUpdate($hash, "input", "tv", 1);
          }
        }
      } elsif($hash->{READINGS}{servicereference}{VAL} ne "-") {
        readingsBulkUpdate($hash, "servicereference", "-", 1);
        readingsBulkUpdate($hash, "currentMedia", "-", 1);
      }
    }


Wenn ich das dann auch auskommentiere läuft FHEM incl. Enigma Modul wieder stabil. Effekte hab ich noch nicht ausmachen können außer das halt die betroffenen Readings nicht gesetzt werden.

Gruß
Mat


FHEM 5.5 SVN - FB7390 FRITZ!OS 06.03 - RaspberryPi - Z-Wave - FBDECT

pappn

Hallo,

das Modul läuft so weit, bringt jedoch auch bei mir FHEM komplett zum Absturz nachdem auf einen Kanal geschaltet wird der Optionskanäle hat - z.B. Sky Select.

Im Einsatz ist eine aktuelle FHEM SVN Version auf einer FritzBox 7390 sowie als Receiver eine VU+ Duo mit VTI 6.0.2 Image (webinterface git-20130701-r0) bzw. 2 VU+ Solo mit VTI 6.0.2 Image (webinterface git-20130701-r0).

Der Absturz tritt nach dem Refresh auf, das umschalten auf einen Kanal mit Optionskanälen ansich funktioniert.
Steht die Box bereits auf einem Optionskanal, lässt sich FHEM nicht starten. Auf der Konsole erscheint folgendes:

BusyBox v1.19.3 (2012-10-12 14:52:09 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben auf dieses Terminal umgelenkt
.# ./var/InternerSpeicher/fhem/startfhem
#
# main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.pm line 494, <> line 1.
main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.pm line 497, <> line 1.
main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.pm line 688, <> line 1.

could not find ParserDetails.ini in /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/XML/SAX

Not a HASH reference at ./FHEM/70_ENIGMA2.pm line 114.


Steht die Box nicht auf einem Optionskanal erscheinen auf der Konsole trotzdem folgende Meldungen; FHEM startet dann allerdings normal:
BusyBox v1.19.3 (2012-10-12 14:52:09 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben auf dieses Terminal umgelenkt
./v# ./var/InternerSpeicher/fhem/startfhem

#
# main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.p
m line 494, <> line 1.
main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.pm
line 497, <> line 1.
main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.pm
line 688, <> line 1.
could not find ParserDetails.ini in /var/InternerSpeicher/fhem/lib/perl5/site_pe
rl/5.12.2/XML/SAX
Use of uninitialized value $url in pattern match (m//) at FHEM/HttpUtils.pm line
72.
Use of uninitialized value $url in pattern match (m//) at FHEM/HttpUtils.pm line
72.
Use of uninitialized value $list in pattern match (m//) at /var/InternerSpeicher
/fhem/lib/perl5/5.12.2/utf8_heavy.pl line 399.
Use of uninitialized value $_ in lc at ./FHEM/70_ENIGMA2.pm line 269.
Use of uninitialized value $_ in lc at ./FHEM/70_ENIGMA2.pm line 269.
#


Sobald dann auf einen Optionskanal umgeschaltet wird, schmiert FHEM nach dem Refresh ab. Auf der Konsole kommt dann noch die Meldung:
Not a HASH reference at ./FHEM/70_ENIGMA2.pm line 114. hinzu und weg ist FHEM.

Das Verhalten ist unabhängig vom VU+ Box Typ und reproduzierbar.

Ich habe leider keine Ahnung was da schief läuft, aber ich hoffe die Details helfen bei der Aufklärung.
Gruß
Christof
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

pappn

#2
Hallo,

ich bin dem Thema mal auf den Grund gegangen und habe im Log mitgeplottet.
Das sieht dann bei den normalen Kanälen so aus:
2013.10.23 19:03:43 2: HASH(0x15810a8)  => $serviceinfo
2013.10.23 19:03:43 2: HASH(0x155e958)  => $serviceinfo->{e2service}
2013.10.23 19:03:43 2: Content serviceinfo: 1:0:1:6DCA:44D:1:C00000:0:0:0:  => $serviceinfo->{e2service}{e2servicereference}
2

wenn ich auf Sky Select schalte passiert folgendes:
2013.10.23 19:07:08 2: Content serviceinfo: HASH(0x15756b0)  => $serviceinfo
2013.10.23 19:07:08 2: Content serviceinfo: ARRAY(0x158ae50)  => $serviceinfo->{e2service}

Eine weitere Zeile wird nicht gelogged, da FHEM dann mit der Fehlermeldung:
Not a HASH reference at ./FHEM/70_ENiGMA2.pm line 116 (was in diesem Fall der Zeile Log 2, "..."; entspricht) auf der Konsole den Dienst quittiert.

Durch einfügen von ...&& ref($serviceinfo->{e2service}) ne "ARRAY" ... in die Zeilen 114 und 297 wird das Problem behoben.

Die Zeile 114 sieht jetz bei mir so aus:     if (ref($serviceinfo) eq "HASH" && ref($serviceinfo->{e2service}) ne "ARRAY" && defined($serviceinfo->{e2service}{e2servicereference}) && $serviceinfo->{e2service}{e2servicereference} ne "") {

Die Zeile 297 jetzt so:    if (ref($serviceinfo) eq "HASH" && ref($serviceinfo->{e2service}) ne "ARRAY" && defined($serviceinfo->{e2service})) {
Damit läuft das Modul stabil, es werden allerdings auch die Readings nicht aktualisiert.

Gruß
Christof

Die Zeilen 114 sieht
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

pappn

Hallo,

zwei Stunden später habe ich das Problem für mich (und vielleicht auch zur Zufriedenheit des Modulschreibers) gelöst. Ich bin halt kein Perl Programmierer, probiere viel rum und daher dauert es immer eine Weile bis ich mal ne zündende Idee habe.
Aber für mich reicht die Lösung. Vielleicht hat auch jemand einen besseren Vorschlag.

Ich habe vor Zeile 114 und auch vor der ehemaligen Zeile 297 folgendes eingefügt:if (ref($serviceinfo) eq "HASH" && ref($serviceinfo->{e2service}) eq "ARRAY") {
$serviceinfo = (e2service => $serviceinfo->{e2service}, e2servicereference => $serviceinfo->{e2service}[0]{e2servicereference});
}

Damit läuft es stabil und alle Readings werden befüllt.

Gruß
Christof
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

pappn

#4
Hallo zusammen,

mir ist noch aufgefallen, dass die EPG Daten nicht ausgelesen werden. Dies scheint am Aufruf in sub ENIGMA2_SendCommand zu liegen.
wenn ich am Ende der URL Defintionen ".$cmd."&"" lösche, werden die EPG Daten korrekt geliefert.
  if (defined($http_user) && defined($http_passwd)) {
#    $URL="http://".$http_user.":".$http_passwd."@".$address.":".$port."/web/".$service."?".$cmd."&";
    $URL="http://".$http_user.":".$http_passwd."@".$address.":".$port."/web/".$service."?";
  } elsif (defined($http_user)) {
#    $URL="http://".$http_user."@".$address.":".$port."/web/".$service."?".$cmd."&";
    $URL="http://".$http_user."@".$address.":".$port."/web/".$service."?";
  } else {
#    $URL="http://".$address.":".$port."/web/".$service."?".$cmd."&";
    $URL="http://".$address.":".$port."/web/".$service."?";
  }


Allerdings meldet die Konsole dann regelmäßig "Wide character in print at fhem.pl line 1122." und gelegentlich "Wide character in memGzip at ./FHEM/01_FHEMWEB.pm line 339" was dann zum Absturz von FHEM führt.

Die Einführung von use Encode; und die Anpassung von
$response = CustomGetFileFromURL(0, $URL, 4, $cmd, 0, 5); auf $response = Encode::encode_utf8(CustomGetFileFromURL(0, $URL, 4, $cmd, 0, 5)); stellt sicher, dass FHEM nicht mehr abstürzt und der Fehler "Wide character in memGzip at ./FHEM/01_FHEMWEB.pm line 339" nicht mehr auftritt.

Bei mir läuft es so stabil und alle Readings, inklusive der EPG Daten, werden befüllt.

@Loredo: Ich habe das geänderte Modul angehängt. Die Zeilen, die ich geändert oder ergänzt habe, sind markiert.
Wäre nett, wenn du dir das mal ansehen könntest. Wenn es so OK ist, kann es ja vielleicht auch mit in ein update einfließen.

Gruß
Christof
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Mx112

Zitat von: pappn am 26 Oktober 2013, 12:02:56
@Loredo: Ich habe das geänderte Modul angehängt. Die Zeilen, die ich geändert oder ergänzt habe, sind markiert.
Wäre nett, wenn du dir das mal ansehen könntest. Wenn es so OK ist, kann es ja vielleicht auch mit in ein update einfließen.

Gruß
Christof
Hallo Christof,

hab Deine Version getestet, funktoiniert auf Optionskanälen und EPG Readings werden auch angezeigt.

Wäre schön wenn ein paar Dreambox User die auch testen und die Änderungen zukünftig in die SVN Version einfließen.

Dank und Gruß,
Matthias
FHEM 5.5 SVN - FB7390 FRITZ!OS 06.03 - RaspberryPi - Z-Wave - FBDECT

Predictor

Zitat von: Mx112 am 28 Oktober 2013, 21:54:57
Hallo Christof,

hab Deine Version getestet, funktoiniert auf Optionskanälen und EPG Readings werden auch angezeigt.

Wäre schön wenn ein paar Dreambox User die auch testen und die Änderungen zukünftig in die SVN Version einfließen.

Dank und Gruß,
Matthias

Ich hatte mal das Modul "defined" doch da ist mir auch gleich danach komplett FHEM abgestürzt.
Weiter habe ich es dann auch nicht mehr verfolgt da ich ja mein eigenes im Einsatz habe - hatte das auch mal hier gepostet.

Mir ist aufgefallen dass leider auch Perl Versionen specials eingesetzt sind - da hatte man mir bei der erstellung meines Moduls abgeraten.

Loredo wollte mal schauen ob er Teile aus meinem übernehmen will/kann, habe aber nichts mehr gehört.

Bei mir ist es Zeitmäsig gerade sehr eng und das wird sich auch das nächste Jahr erstmal nicht ändern, sonst hätte ich ja mal versucht die beiden Module zusammenzuwerfen. Da sie sich aber doch sehr unterscheiden und ich leider bei einigen Funktionen nicht so genau weis was die tun sollen ...

Wenn die Fehler in der offiziellen Version behoben sind, teste ich gerne noch mal ob es bei mir läuft.
Habe FHEM auf einer FB 7390 und eine Dreambox 7025+

Grüße
Predi
FHEM auf Fritz!Box 7390
FS20 per CUL

pappn

Hallo Predi,

so wie ich das sehe ist deine Lösung gar nicht soweit weg von Loredos Lösung und es gibt doch ein paar Analogien.
Loredos Lösung bietet allerdings etwas mehr als das, wass ich auf die schnelle bei dir gesehen habe.

Das Modul läuft nun bei mir schon seit einer Woche fehlerfrei. Ich bin sicher, dass es auch bei dir funktioniert, da das Webinterface eigentlich identisch sein sollte.
Versuchs mal.

Gruß
Pappn
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Predictor

Ich habe es gerade noch mal getestet - FHEM update gestern gemacht.

Leider noch das selbe Problem:
define SATReceiver ENIGMA2 192.168.0.10 <- mit der IP meiner Dreambox
PENG FHEM ist down und nur noch neustart der Box hilft.

Im Log ist nichts zu finden.
Wenn mir jemand sagt wie ich mit Putty sehen könnte was da passiert würde ich ja mal analysieren.
In das Log wird wie gesagt nichts geschrieben.
FHEM auf Fritz!Box 7390
FS20 per CUL

pappn

Starte Fhem über den prompt in Putty und lass das Putty Fenster offen.
Dann solltest du die Fehlermeldung mitbekommen, auch wenn nichts geloggt wird.

Pappn
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Predictor

Hallo,

das hatte ich bereits versucht (also FHEM in putty offen zu lassen).
Auch wenn ich per putty den Define mache - immer das selbe Ergebnis.
FHEM verabschiedet sich komplett - putty fenster wird geschlossen ohne eine Meldung beim absturz von FHEM.

Ich schaue mal ob ich die Datei von Loredo zerlegen kann um den Fehler zu isolieren.


Grüße
Predi
FHEM auf Fritz!Box 7390
FS20 per CUL

Mx112

Hast Du mal das Modul hier aus dem Thead probiert? Die geht bei mir einwandfrei im Gegensatz zur SVN Version.

Gruß
Matthias
FHEM 5.5 SVN - FB7390 FRITZ!OS 06.03 - RaspberryPi - Z-Wave - FBDECT

Predictor

#12
Zitat von: Mx112 am 04 November 2013, 19:01:15
Hast Du mal das Modul hier aus dem Thead probiert? Die geht bei mir einwandfrei im Gegensatz zur SVN Version.

Meinst du das von PAPPN gepostet am: 26 Oktober 2013, 12:02:56 ?


Hatte das "normale" genommen - war der Meinung dass der Fehler auch im Repo behoben wurde (deswegen ja vorher update).
Leider scheint das Problem auch in dieser Version zu bestehen ABER jetzt gibts auch Logeinträge:

Useless use of a constant (e2service) in void context at ./FHEM/70_ENIGMA2.pm line 123.
Useless use of hash element in void context at ./FHEM/70_ENIGMA2.pm line 123.
Useless use of a constant (e2servicereference) in void context at ./FHEM/70_ENIGMA2.pm line 123.
Useless use of a constant (e2service) in void context at ./FHEM/70_ENIGMA2.pm line 339.
Useless use of hash element in void context at ./FHEM/70_ENIGMA2.pm line 339.
Useless use of a constant (e2servicereference) in void context at ./FHEM/70_ENIGMA2.pm line 339.
main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.pm line 558.
main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.pm line 561.
main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.pm line 752.
could not find ParserDetails.ini in /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/XML/SAX
Can't locate unicore/Heavy.pl in @INC (@INC contains: /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2 /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2 /opt/lib/perl5/site_perl/5.12.2/mips-linux /opt/lib/perl5/site_perl/5.12.2 /opt/lib/perl5/5.12.2/mips-linux /opt/lib/perl5/5.12.2 . ./FHEM) at /var/InternerSpeicher/fhem/lib/perl5/5.12.2/utf8_heavy.pl line 96.


FHEM auf Fritz!Box 7390
FS20 per CUL

pappn

Ich vermute, dass du ein etwas älteres ENIGMA2 Image auf deiner Box hast. Da hat sich über die Jahre etwas im Web interface geändert. In den ersten ENIGMA2 WebInterfaces wurden offensichtlich Werte, die jetzt ausgelesen werden, nicht zurückgeliefert. Das führt dann wohl zum Absturz, wenn im Hash das erwartete Wertepaar "key" / "value" gar nicht vorhanden ist.

Gib mal in deinem Webbrowser http://IP-deiner-Box/web/about? ein und vergleiche das zurückglieferte XML file mit dem von mir angehängten (stammt vom gleichen Befehl auf meiner Duo).
Wenn es dann Unterschiede gibt (außer bei Tunerausstattung und Festplatten) sollten wir das Problem bereits isoliert haben.

Dann brauchst du entweder ein aktuelleres Image (und damit ein aktuelles Web Interface), oder du musst die Auswertung durch 70_ENIGMA2.pm an dein Interface anpassen.

Pappn
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

pappn

#14
Vergiss den vorherigen Post....

Zitat von: Predictor am 04 November 2013, 20:49:04
Leider scheint das Problem auch in dieser Version zu bestehen ABER jetzt gibts auch Logeinträge:

Useless use of a constant (e2service) in void context at ./FHEM/70_ENIGMA2.pm line 123.
Useless use of hash element in void context at ./FHEM/70_ENIGMA2.pm line 123.
Useless use of a constant (e2servicereference) in void context at ./FHEM/70_ENIGMA2.pm line 123.
Useless use of a constant (e2service) in void context at ./FHEM/70_ENIGMA2.pm line 339.
Useless use of hash element in void context at ./FHEM/70_ENIGMA2.pm line 339.
Useless use of a constant (e2servicereference) in void context at ./FHEM/70_ENIGMA2.pm line 339.
main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.pm line 558.
main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.pm line 561.
main::ENIGMA2_Set() called too early to check prototype at ./FHEM/70_ENIGMA2.pm line 752.
could not find ParserDetails.ini in /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/XML/SAX
Can't locate unicore/Heavy.pl in @INC (@INC contains: /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2 /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2 /opt/lib/perl5/site_perl/5.12.2/mips-linux /opt/lib/perl5/site_perl/5.12.2 /opt/lib/perl5/5.12.2/mips-linux /opt/lib/perl5/5.12.2 . ./FHEM) at /var/InternerSpeicher/fhem/lib/perl5/5.12.2/utf8_heavy.pl line 96.


Jetzt ist klar woran es liegt. Dein Problem liegt hier:Can't locate unicore/Heavy.pl in @INC (@INC contains: /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2 /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2/mips-linux /var/InternerSpeicher/fhem/lib/perl5/5.12.2 /opt/lib/perl5/site_perl/5.12.2/mips-linux /opt/lib/perl5/site_perl/5.12.2 /opt/lib/perl5/5.12.2/mips-linux /opt/lib/perl5/5.12.2 . ./FHEM) at /var/InternerSpeicher/fhem/lib/perl5/5.12.2/utf8_heavy.pl line 96.

Es fehlt die Heavy.pl zu dem Thema solltest du etwas im FHEM Wiki finden:
http://www.fhemwiki.de/wiki/Unicode_FritzBox
Das war allerdings auch hier bereits Thema:
http://forum.fhem.de/index.php/topic,14792.0.html

Pappn
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Predictor

Hi,

ich hab NICHT das aktuellste WI drauf, da es für die 7025+ nichts neueres mehr gibt.
Aber ich entdecke in der Struktur erstmal keinen Unterschied - habe meine mal angehängt.


Pflegt Loredo das Modul noch weiter?
Ihr habt ja schon Bugs behoben die leider noch nicht im SVN sind.

Ich weis leider nicht wie es bei mir Zeitmäsig weitergeht - ich helfe natürlich gerne!


Grüße
Predi
FHEM auf Fritz!Box 7390
FS20 per CUL

Predictor

Zitat von: pappn am 04 November 2013, 22:42:04
Es fehlt die Heavy.pl zu dem Thema solltest du etwas im FHEM Wiki finden.

Ja die sagt mir etwas, aber irgendwo stand dann auch dass die mit dem update automatisch kommen sollte.

JA danke erstmal - ich schau mal was ich da finde => vor dem Fix in diesem Thread hatte ich ja leider keine Logeinträge.
FHEM auf Fritz!Box 7390
FS20 per CUL

Predictor

Hallo,

ich habe mir heute mal das Modul angeschaut (vorher die heavy.pl noch heruntergeladen, chmod, ... wie im WIKI).
OK nun stürzt das Modul nach 2-4Sek ab.

Dann hab ich mal das Modul zerlegt -> es werden ein paar Fehlermeldungen auf der Konsole gespukt => Bild im Anhang


FHEM schmiert ab sobald im sub ENIGMA2_SendCommand die XML::Simple aufgerufen wird:
    if ($response ne "") {
      my $parser = XML::Simple->new(
        NormaliseSpace => 2,
        KeepRoot       => 0,
        ForceArray     => 0,
        SuppressEmpty  => 1
      );
      $return = $parser->XMLin($response);
    }



Der Inhalt von $response ist:
<?xml version="1.0" encoding="UTF-8"?>
<e2powerstate>
<e2instandby>true
</e2instandby>
</e2powerstate>

Also die Rückgabe von http://dreambox/web/powerstate

Ich frage mich nun wie viele Leute das Modul denn einsetzen und nur scheinbar ich das Problem habe  :-)
In einem alten Post (noch zu google Zeiten) hatte Rudi davon abgeraten XML::Simple einzusetzen.


Bei meiner google suche bin ich über diesen Post gestolpert:
http://reneeb-perlblog.blogspot.de/2009/10/das-kreuz-mit-xmlsimple.html
ZitatDarin steht u.a. Und schon funktioniert der Code nicht mehr. Ein Riesennachteil an XML::Simple ist, dass man bei Änderungen am XML auch den Code ändern muss.

Ich frage mich nun ob man sich den ganzen Schmerz geben soll/muss (mit Heavy.pl usw) wenn bei einer änderung des XML eh der Code angepasst werden muss?


ABER wie dem auch sei - hat noch jemand eine Idee warum ich XML::Simple nicht beutzen kann?
Sonst werde ich das Modul nicht testen können -> was ich eig schon vorhatte.


Grüße
Predi
FHEM auf Fritz!Box 7390
FS20 per CUL

pappn

Hallo,

sieht für mich eher aus, als wenn da irgendetwas im Zusammenspiel von utf8_heavy.pl und heavy.pl nicht stimmt.
Auf ein Problem mit XML siple hätte ich jetzt nicht getippt.

Ich habe mal meine Versionen der Files angehängt.

Pappn
"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Predictor

Jetzt brat mir einer nen Storch  :-[

Meine Heavy.pl hat es beim dl wohl zerballert (oder was auch immer)
Deine Datei hochgeladen und FHEM läuft!!!


RIESEN DANK AN DICH!!!


Jetzt bleibt nur noch die Frage ob sich Loredo mal meldet um die Änderungen einzuchecken.
Ich werde dann auch mal auf die "ofizielle Version" umstellen und meine Änderungen zur Verfügung stellen (aber kann evtl. ein wenig dauern).

Grüße und NOCH MAL DANKE(!!!)
Predi
FHEM auf Fritz!Box 7390
FS20 per CUL

pappn

"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Carsten

Ihr seid die Besten, ich danke euch! ( Vor allem pappn )

Ich habe auch die Kombination FB 7390 und Solo2. Nach jedem Versuch, die Box zu definen, stürzte FHEM komplett ab.
Mit der Version von pappn und der Heavy.pl funktioniert jetzt scheinbar alles und ich bin begeistert, was man alles machen kann.

Vielen Dank

pappn

"When all else fails, read the instructions."

CUL868, RFXTFX433 und CCU3
FS20, S300TH, UNIRoll, Homematic IP, OZW672, diverse HOMEEASY, IT kompatible und China Zeugs

Loredo

Hi,


ich mache mich über die Feiertage vielleicht mal an ein Bugfix-Release. Danke für die Vorarbeiten! Hab noch nicht alles genau durchgelesen :-)




Gruß
Julian
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