Modul für ENIGMA2 Receiver

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

Vorheriges Thema - Nächstes Thema

CicakDOS

Hallo Loredo,

sowie ich weiß, existiert "keys" erst seit Perl 5.12.
Wäre sowas nicht "günstiger":


my $arr_size=@a;
while ($i < $arr_size) {


Grüßle

Loredo

Update:

- workaround for key command with arrays
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

DannyP

Hi,

derzeit bricht die komplette FHEM Instanz immer wieder wegen der folgenden Meldung ab:

ZitatNot a HASH reference at ./FHEM/30_ENIGMA2.pm line 559, <$fh> line 232.

Ich habe die aktuellste 30_ENIGMA2.pm im Einsatz, in der fhem.cfg ist folgendes eingetragen:
Zitatdefine Dreambox_Wohnzimmer ENIGMA2 192.168.1.30 80

Der Abbruch kommt nur, wenn die Dreambox eingeschaltet ist.

Das ganze läuft auf einem RPi, Perl Version 5.14.2 unter FHEM 5.4. Die Dreambox ist eine DM 800se

Schöne Grüße
Daniel

franky08

Hallo, ist bei mir auch so, wenn die Box an ist bricht fhem den Start ab.

Fhem 5.4 DEVELOPMENT $Id: fhem.pl 3872 2013-09-07 11:58:33Z auf einer fritz 7390 unter Freetz.

Fahre ich die Box in den Deep Standby und starte dann fhem, lässt sich das Modul starten aber Das Viera Modul welches ich auch am Start habe läuft nicht mehr und fhem crasht. Fehlermeldung wird nicht ins Log geschrieben.

Gruß Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

punker

Also bei mir stürzt fhem nach Eingabe von define Dreambox_8000 ENIGMA2 192.168.2.75 80
einfach ohne noch einen Eintrag ins Log zu schreiben ab!
LG

Dieter

The truth is out there!

Gerhard

Hallo Loredo,

Fhem 5.4 DEVELOPMENT update 19.09 auf einer fritz 7390 mit FHEM von AVM,
funktioniert korrekt mit der Version von 18.09 und davor!!
Die heutige Version habe ich nicht getestet.

Super Modul!!

Gruß, Gerhard
FB6890LTE, cubietruck, orangePi, raspberry 2/3/4, HM/HMIP, shelly > 50, etc.

Loredo

Update:

- keep readings after shutdown
- code improvements
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

Danke für eure Fehlerberichte.

Ich kann diese jedoch nicht wirklich nachvollziehen. Mir scheint, als wenn es an den limitierten Perl Fähigkeiten auf einer Fritzbox liegen könnte.
Dagegen spricht aber, dass Gerhard berichtet, dass es bei ihm läuft.

Ich habe das Modul bei mir normal auf einem RaspberryPi laufen, habe es aber gerade einmal auf meiner Fritzbox eingespielt. Auch dort stürzt FHEM direkt ohne Kommentar ab. Ich habe aber aktuell keine Ahnung, wie ich das debuggen kann. Da bräuchte ich wohl Hilfe von einem erfahreneren Modul-Entwickler...


Edith:
Es liegt wohl an der Perl Installation der Fritzbox:

# 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.
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

CicakDOS

Hi,

das Problem ist teilweise behoben:


    # Tuner
    foreach my $key (keys %{ $boxinfo->{e2about}{e2tunerinfo}{e2nim} }) {
      my $tuner_name=lc($key);
      $tuner_name =~ s/\s/_/g;
      my $tuner_type=$boxinfo->{e2about}{e2tunerinfo}{e2nim}{$key}{type};

      ENIGMA2_SetReading($hash, $tuner_name, $tuner_type);
    }


Das kann wie gesagt, bei der Perl-Version < 5.12 nicht funktionieren.

Bitte nehme bei den Definition folgendes auf:


use 5.012;


Danach sollte es gehen.

Grüßle

DannyP

Hi,

ich habe das Debuggen einfach mal übernommen und bin auf das Problem "Not a HASH reference" gestoßen.
Der Abbruch kommt, wenn mehr als eine Festplatte angeschlossen ist, neben der internen also noch weitere externe Festplatten an USB angeschlossen sind.

Die Variable $boxinfo sieht für den Key e2about, e2hddinfo wie folgt aus wenn eine interne Festplatte und eine externe Festplatte mit USB angeschlossen ist:
'e2hddinfo' => [
  {
    'free' => '744.479 GB',
    'model' => 'ATA-HGST HTS541010A9',
    'capacity' => '1000.204 GB'
  },
  {
    'free' => '-1 MB',
    'model' => 'ST2000DL-001-9VT156',
    'capacity' => '2000.398 GB'
  }
],




Bei nur einer internen Festplatte sieht es wie folgt aus:
'e2hddinfo' => {
  'free' => '744.304 GB',
  'model' => 'ATA-HGST HTS541010A9',
  'capacity' => '1000.204 GB'
},



Zum Nachvollziehen also einfach eine USB Platte anschließen. Dann sollte der Abbruch kommen. Die Perl Version dürfte dabei egal sein.
Somit gäbe es ja dann auch eine Möglichkeit, den Status weiterer Festplatten auszugeben, wie ich in meinem ersten post in diesem Thread schon mal geschrieben hatte ;-)

Schöne Grüße
Daniel

CicakDOS

Hi,

die Sache mit "use 5.012;" streichen - hatte es falsch in Erinnerung.

Sonst bleibt es dabei, wenn ich Zeile 454 bis 460 auskommentiere, funktioniert Modul perfekt.

Habe auch eine interne HDD und kann den Hinweis von Daniel nicht ganz nachvollziehen, daran liegt es bei mir definitiv nicht.

Grüßle

DannyP

Hi,

ZitatHabe auch eine interne HDD und kann den Hinweis von Daniel nicht ganz nachvollziehen, daran liegt es bei mir definitiv nicht.

Hast du nur eine interne? Dann funktioniert es auch.
Nur wenn du eine interne UND eine USB Platte laufen hast. Oder mehrere USB Platten.

Schöne Grüße
Daniel

franky08

Zitat von: DannyP schrieb am Do, 19 September 2013 21:16Hi,

ZitatHabe auch eine interne HDD und kann den Hinweis von Daniel nicht ganz nachvollziehen, daran liegt es bei mir definitiv nicht.

Hast du nur eine interne? Dann funktioniert es auch.
Nur wenn du eine interne UND eine USB Platte laufen hast. Oder mehrere USB Platten.

Schöne Grüße
Daniel

oder einen Stick und eine interne hdd
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

Loredo

Danke fürs Herausfinden, dass es an den HDDs liegt.
Die letzte Version sollte zumindest keinen Fehler mehr werfen, wenngleich auch dann aktuell bei mehr als einer Platte kein Reading erzeugt wird. Ich muss mal schauen wie ich das flux nachstelle.

Den "keys"-Befehl hatte ich in der Manpage so verstanden, dass er mit der Nutzung eines Hashes auch bei älteren Versionen als Perl 5.12 funktioniert und lediglich die Unterstützung für normale Arrays nicht gegeben ist.

Da ich keine alte Perl Version habe: Kann das jemand final bestätigen/widerlegen?
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

franky08

Also, wenn ich Zeile 454 bis 460 auskommentiere crasht fhem immer noch. Sehe gerade, ist das der Abschnitt:


# Tuner
      #foreach my $key (keys %{ $boxinfo->{e2about}{e2tunerinfo}{e2nim} }) {
      #my $tuner_name=lc($key);
      #$tuner_name =~ s/\s/_/g;
      #my $tuner_type=$boxinfo->{e2about}{e2tunerinfo}{e2nim}{$key}{type};

      #ENIGMA2_SetReading($hash, $tuner_name, $tuner_type);
      #}
sind bei mir die Zeilen 452 bis 459 in der letzten 30_Enigma2.pm version
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...