Logitech Harmony Hub

Begonnen von der-Lolo, 07 August 2013, 14:17:16

Vorheriges Thema - Nächstes Thema

fhem_olsi

ZitatDu kannst ja gerne weiter editieren aber, wenn dann halt (wieder) mal was nicht klappt: daran denken, dass es damit zu tun haben könnte...
Mach' ich.

ZitatGut theoretisch hier:...
Dann evtl.: ...
Ansonsten: ...
Danke.

Gruß, Wolfgang

fhem_olsi

#1951
So, das Problem ist mittlerweile diskutiert, aufgeklärt und gelöst.
Siehe hier: https://forum.fhem.de/index.php?topic=133405.0

Zusammenfassung: In beiden Fällen ist das Modul "37_harmony.pm" die Ursache!
Die weiter o.g. Warnung "PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/37_harmony.pm line 1765." läßt sich beseitigen durch Auskommentieren der Zeilen 1765 - 1767:
1764      my $domain = "svcs.myharmony.com";
1765  #   if( $hash->{discoveryinfo}{discoveryServerUri} =~ m'https://([^/]+)' ) {
1766  #     $domain = $1;
1767  #   }

und die Fehlermeldung "Der Befehl "[" ist entweder falsch geschrieben oder konnte nicht gefunden werden." läßt sich beseitigen durch Auskommentieren der Zeile 23:
Zitat22    {
23   #   $harmony_isFritzBox = int( qx( [ -f /usr/bin/ctlmgr_ctl ] && echo 1 || echo 0 ) )  if( !defined($harmony_isFritzBox) );
24    }
Hier handelt es sich tatsächlich um einen Fehler im Modul 37_harmony.pm, denn unter Windows quittiert das OS den Aufruf der System-Funktion
"qx( [ -f /usr/bin/ctlmgr_ctl ] && echo 1 || echo 0 )"
mit einer Fehlermeldung: '"Der Befehl "[" ...'.

Der Aufruf "{ -f ...]" funktioniert nur unter Linux und nicht unter Windows. Hierfür müßte die Zeile 23 entsprechend abgefangen werden...

Gruß, Wolfgang

fhem_olsi

Auf Hinweis von JoWiemann sollte auch die Variable $harmony_isFritzBox initialisiert werden. Die Änderungen müßten demnach so aussehen:
19    my $harmony_isFritzBox = 0;    # und nicht "= undef";
20    sub
21    harmony_isFritzBox()
22    {
23   #   $harmony_isFritzBox = int( qx( [ -f /usr/bin/ctlmgr_ctl ] && echo 1 || echo 0 ) )  if( !defined($harmony_isFritzBox) );
24    }