[gelöst] BlockingCall - BlockingInformParent läuft in Timeout

Begonnen von amunra, 07 Januar 2016, 00:37:40

Vorheriges Thema - Nächstes Thema

amunra

Hallo Rudolf, Hallo zusammen,
im Bereich "Heizungssteuerung/Raumklima" wurde ein Modul entwickelt welches Blocking Call nutzt.
Es gibt einen User bei dem im BlockingCall die "BlockingInformParent" Funktion nicht abgearbeitet wird.
Nähere Informationen stehen hier.
Hatst du/jemand eine Idee was auf dem System los ist und wie mein das Problem weiter eingränzen könnte bzw. warum die Funktion nicht abgearbeitet wird?
Vielen Dank und Grüße
Arthur

rudolfkoenig

Ich habe im verlinkten Thread direkt geantwortet.


amunra

Hallo Daniel,

ich habe in das BlockingCall Modul etwas mehr Logging eingebaut - bitte erneut probieren.

1)   Vorhandene Blocking.pm umbenennen und durch die im Anhang ersetzen.
2)   attr global verbose 5 setzen
3)   attr ebus1 verbose 5 setzen
4)   FHEM Restart und Logs hier posten
5)   Alles wieder rückgängig machen

Aber, das kennst du ja schon ;o)

Danke und Grüße
Arthur

yellowpinky

Hallo Arthur;

Anbei der gewünsche log...


Vielen Dank für die super Unterstützung :-)
Daniel


amunra

Hallo Daniel,
ok, das hier ist das Problem - es kann keine telnet Verbindung (Host: localhost => auf sich selbst) aufgebaut werden:
2016.01.08 15:57:15 1: BlockingInformParent (GAEBUS_GetUpdatesDone): Can't connect to localhost:7072: IO::Socket::INET: connect: Connection timed out
Könntest du bitte das Ergebnis von deiner telnetconfig hier posten
list telnetPort
dann bitte auch noch in der Konsole "shh/telnet" (mit dem RPI verbinden) folgeneden Befehl ausführen:
sudo ps -aux | grep fhem
und
sudo ifconfig
und die Ergebnisse hier posten.
Danke.
Viele Grüße
Arthur

yellowpinky

Hallo Arthur;

Mir ist die Meldung auch schon mal aufgefallen, ich habe aber damals gedacht, dass es eine Folge des "shutdown restart" sei :-(
Das war aber bereits vor den Tests mi den modifizierten Blocking und GAEBUS.


Könntest du bitte das Ergebnis von deiner telnetconfig hier posten

Internals:
   DEF        7072 global
   FD         5
   NAME       telnetPort
   NR         4
   NTFY_ORDER 50-telnetPort
   PORT       7072
   STATE      Initialized
   TYPE       telnet
Attributes:

sudo ps aux | grep fhem
(sudo ps -aux | grep fhem -> bringt eine Fehlemeldung)

root     21256  0.0  0.1   3560  1784 pts/0    S+   22:56   0:00 grep fhem
fhem     22710  1.0  3.5  35372 33580 ?        S    18:38   2:35 /usr/bin/perl fhem.pl fhem.cfg

sudo ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:8b:a0:e4
          inet addr:10.0.0.12  Bcast:10.0.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3911899 errors:0 dropped:612 overruns:0 frame:0
          TX packets:3986424 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:212161601 (202.3 MiB)  TX bytes:294911153 (281.2 MiB)


Vielen Dank
Daniel

amunra

#7
Hallo Daniel,
ok, wir haben es!
Ablauf:
Bitte in der Konsole "shh/telnet" (mit dem RPI verbinden) folgenede Befehle ausführen:
sudo cp /etc/network/interfaces /etc/network/interfaces_bak
sudo echo '' >> /opt/network/interfaces
sudo echo '# The loopback network interface' >> /etc/network/interfaces
sudo echo 'auto lo' >> /etc/network/interfaces
sudo echo 'iface lo inet loopback' >> /etc/network/interfaces
sudo echo '' >> /opt/network/interfaces

Damit werden die folgenden Einträge in die Datei /etc/network/interfaces (Netzwerkkonfiguration) hinzugefügt:
# The loopback network interface
auto lo
iface lo inet loopback

Wenn Du möchtest kannst du die Einträge auch gerne per Editor deiner Wahl hinzufügen - wie Du magst.
Bitte Einträge prüfen mit:
cat /etc/network/interfaces
Falls Du dir unsicher bist, dann einfach die Ausgabe hier posten - ich bin noch etwas da -> Wichtig "kein Neustart" durchführen - falls du dir unsicher bist.
Falls die Einträge korrekt sind (plausibel aussehen), dein RPI neustarten.
Danach sollte auch GAEBUS auto Update funktionieren.
Ansonsten FHEM Logs hier posten - wird aber zu 99,99% nicht mehr nötig sein.
Viele Grüße
Arthur

yellowpinky

Hallo Arthur;

... es funktioniert !!!
Ich möchte mich recht herzlich für deine Mühe und die Zeit bedanken die du investiert hast.
Ebenso ein Dankeschön an  Andy & Rudolf.

Könntest du mir vielleicht noch auf die Sprünge helfen was der interface Loopback damit zu tun hatte ?

Liebe Grüße
Daniel

amunra

#9
Hallo Daniel,

gerne und freut mich, dass es nun funktioniert.

Zum Thema "loopback interface" - das genau zu erklären würde den Rahmen sprängen, aber das loopback interface wird unter anderem auch in FHEM von BlockingCall für den internen Datenaustausch verwendet (High-level => (Vereinfacht/Grob) Beschreibung).
Nähere Informationen findest Du im Wiki und auch im WEB.

In der Regel wird immer empfohlen das loopback interface anzulegen (eigentlich "Pflicht" ), deine Konfiguration ist also etwas, ich nenne es, ungewöhnlich gewesen. ;o)

Viele Grüße
Arthur

P.S. Und viel Spaß noch mit dem EBUSD und GAEBUS.

@Rudolf: Eine Prüfung im Blocking.pm auf das loopback interface wäre hier sicher sinnvoll - Umsetzung noch "offen".