NEWS
Start Sonoff-Adapter ohne Netzwerkverbindung
-
Guten Abend Zusammen,
ich habe bei mir in ioBroker den Adapter "Sonoff" in der Version 2.4.7 installiert.
Des Weiteren habe ich einen Sonoff TH16 (Tasmota geflasht), der sich via MQTT mit dem Adapter verbindet.
Wenn ich nun hergehe und den Rechner (Raspberry Pi), auf dem ioBroker läuft, herunterfahre, dann das Netzwerk abstecke und den RPI wieder starte, passiert Folgendes: Wenn ich nach 2-3 Minuten das Netzwerk wieder stecke und die Web-Oberfläche von ioBroker öffne, sehe ich, dass der Sonoff TH16 nicht mit dem Sonoff-Adapter verbunden ist. Auch nach längerer Wartezeit verbindet er sich nicht mehr.
In das Log schreibt der Sonoff-Adapter folgende Fehlermeldung:
Can not start Server Error: listen EADDRNOTAVAIL: address not available 192.168.1.161:1883
Die Fehlermeldung ist ja erstmal ok, da zum Startzeitpunkt von ioBroker bzw. dem Sonoff-Adapter keine aktive Netzwerkverbindung zur Verfügung stand.
Die Frage ist nun, ob der Sonoff-Adapter zyklisch sich wieder versucht zu aktivieren oder ob er dann einfach dauerhaft nicht funktioniert bis man den Adapter händisch neustartet.
Wenn ich ihn nämlich händisch neustarte, verbindet sich der Sonoff TH16 innerhalb von ein paar Sekunden mit dem Sonoff-Adapter.
Meine Frage ist nun: Ist dieses Verhalten normal oder sollte der Sonoff-Adapter sich zyklisch versuchen zu aktivieren?
Vielen Dank vorab!
-
@magnus-0 ,
im Adapter steht:if (config.timeout === undefined) { config.timeout = 300;
5 Minuten reconnect Zeit.
Falls er sich in der Zeit nicht verbindet, ein issues auf Github erstellen. -
@wal
Vielen Dank für die Rückmeldung.Ich probiere das direkt mal aus.
-
Ich habe jetzt noch etwas herumprobiert und habe folgende "Lösung" zu dem Problem gefunden.
Der Sonoff-Adapter war bei mir so eingestellt, dass er nur auf die fest eingestellte IPv4-Adresse hört.
D. h. in den Einstellungen war bei dem Feld "IP-Adresse" Folgendes ausgewählt:
[IPv4] 192.168.1.161 - eth0
Testweise habe ich das umgestellt auf Folgendes:
[IPv4] 0.0.0.0 - Liste on all IPs
Als ich nun nach Änderung der Einstellung den RPI heruntergefahren, das Netzwerkkabel abgesteckt, den RPI wieder gestartet habe und dann nach ca. 15 Minuten das Netzwerkkabel wieder gesteckt habe, hat sich mein Sonoff-Gerät (Tasmota) nach wenigen Sekunden wieder via MQTT mit dem Adapter verbunden. Des Weiteren war auch die folgende Meldung im Log nicht mehr da:
Can not start Server Error: listen EADDRNOTAVAIL: address not available 192.168.1.161:1883
Meine Vermutung bzw. Theorie ist Folgende:
Beim Start des Adapters ist zwar die richtige Netzwerkverbindung nicht da, der Adapter kann sich aber auf der Schnittstelle 127.0.0.1 "aktivieren", da er ja nun auf allen IPv4-Schnittstellen hört bzw. aktiv ist. Zuerst war meine Vermutung zwar, dass auch nach Stecken des richtigen Netzwerkkabels die Verbindung über die richtige IPv4-Schnittstelle (192.168.1.161) nicht funktioniert, da er ja nur auf die Schnittstelle 127.0.0.1 hört, das hat jedoch sofort funktioniert. Also sieht es so aus, dass er beim Start des Adapters nur eine Schnittstelle benötigt (um sich zu aktivieren). Sobald die anderen Schnittstellen dann aktiv werden, hört er automatisch auch auf diese.
Jedoch ist die Frage, ob in den Adapter vielleicht nicht ein Mechanismus eingebaut werden sollte, dass wenn er direkt auf eine Schnittstelle eingestellt ist und diese beim Start des Adapters nicht zur Verfügung steht, dass er dann zyklisch (einstellbarer Wert in den Einstellungen des Adapters, Default-Wert könnte 300 Sekunden sein) versucht sich auf der gewählten Schnittstelle zu aktivieren.
@Wal Was hältst du davon?
@Wal Bzgl. deiner Antwort: Ich glaube du meinst mit deinem Kommentar die Einstellung "Client-Zeitüberschreitung", oder? Das hat mit meinem Thema ja meines Erachtens nichts zu tun. Bei mir geht es ja darum, dass der Adapter sich auf einer Netzwerkschnittstelle gar nicht aktiviert, wenn diese zum Zeitpunkt des Adapterstarts nicht zur Verfügung steht. Oder verstehe ich das falsch?