71_YAMAHA_AVR.pm Problem

Begonnen von esskaa, 20 Juni 2014, 16:37:01

Vorheriges Thema - Nächstes Thema

Markus Bloch

Hallo Sascha,

ja leider. Perl kommt ja ursprünglich aus der Unix-Welt und diese Herkunft spürt man ganz deutlich bei sämtlichen Perl-Portierungen für Windows.

Dazu kommt, dass jede Perl-Portierungen wieder so ihre Eigenheiten hat, so dass es sehr schwierig ist, all diese Spezialitäten irgendwie zu umschiffen. Generell wird Windows nur nach Best-Effort unterstützt. Am saubersten arbeitet nach meinen Informationen die Perl-Portierung von Cygwin. Aber auch hier ist nicht alles fehlerfrei.

Ich kann dir nur raten, einen anderen Perl-Interpreter zu testen, oder eben auf irgend ein linux-basiertes System umzusteigen.

Warum dieses Problem nicht bei den genannten Modulen XBMC und EGMP nicht auftritt, liegt daran, dass dort eine eigene Implementation und Steuerung des Sockets durchgeführt wird. Ich nutze das FHEM-weite Modul HttpUtils.pm, welches innerhalb FHEM Funktionen zur Abfrage von HTTP URL's zur Verfügung stellt.

Die genannte Fehlermeldung, die bei dir im Log erscheint, ist auch Gegenstand von vielen Diskussionen in anderen Programmiersprachen im Internet. Wenn man bei Tante Google nach der Meldung "A non-blocking socket operation could not be completed immediately" sucht, findet man sehr viele Hilfeschreie zu diesem Thema unter anderem in Python, C# und auch Perl.

Tut mir leid.

Gruß

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

esskaa

Hallo Markus,

ja Perl ist sicherlich so eine Sache. Da kann man sicherlich viel und lange drüber streiten. Das bringt mich aber dann auch nicht weiter.
Schade das es nicht klappt. Da ich nicht auf ein Linux System wechseln kann, muss ich mal schauen wie ich das ganze Thema dann abhandeln kann.
Vielen Dank für Deine Hilfe.

Gruß,
Sascha

esskaa

Hallo Markus,

vielen Dank, da hast Du mir ja was angetan!!! ;)
Ich habe jetzt so ziemlich alles was irgendwie möglich ist getestet.


  • Ich habe FHEM unter Linux laufen lassen mit USB-over-Ethernet. Das war ein ganzes Stück Arbeit! - funktioniert aber nur eingeschränkt weil USB-over-Ethernet keine Events vom CUL ans FHEM weiterleitet. Das hat mich den grössten Teil des gestrigen Abends gekostet ;)
  • Ich habe cygwin ausprobiert - Fehlanzeige!
  • Ich habe ActiveState Perl probiert: Es geht! :O

Jetzt werde ich das nochmal weiter debuggen, das muss doch auch mit Strawberry Perl gehen. Mal sehen woran es liegt.
Der Tip mit dem Perl interpreter war gut! :)

Gruß,
Sascha