NEWS
[Workaround] Cloud-Verbindungsprobleme
-
Kleine Korrektur:
In einem der letzten TR-064-Adapter-Updates (0.3.5 - 0.3.11; gab ziemlich viele in den letzten Tagen) wurde offenbar der Tippfehler im oben genutzten Datenpunkt korrigiert:
externalP -> externalIP (das große I fehlte)
Das muss natürlich auch im Script nachgezogen werden. Habe es oben im original Post korrigiert.
-
Hallo,
ich habe das Problem mit dem reconnect auch. Bei mir wird scheinbar täglich mehrmals die Verbindung gekappt (A1 Telekom).
Vielleicht habe ich aber auch ein Problem mit meinem Router.
Die neueste Version des cloud adapters hilft auch nicht aus, gleiches Problem wie von justr beschrieben.
Da ich keine Fritzbox verwende musste ich den Workaround mit dem "Radar Adapter for IP" realisieren. Hat einwandfrei funktioniert.
// ######################## Restart cloud due to new external IP address ######################## on({ id: "radar.0.ExternalNetwork.IP4", change: "ne", ack: true }, function (obj) { log('mylog: Restart cloud adapter due to new external IP address'); setTimeout(function(){extendObject('system.adapter.cloud.0', {common: {enabled: false}})}, 10000); setTimeout(function(){extendObject('system.adapter.cloud.0', {common: {enabled: true }})}, 10000); });
Nachdem der Radar Adapter nur alle 5 Minuten (auch kürzer einstellbar) die externe IP prüft, reicht die Zeit von insgesamt 20 Sekunden für einen Neustart aus.
Bei einem manuellen Test (disconnect und connect am router) hat das super funktioniert. Nun lasse ich das mal ein paar Tage laufen.
Danke an justr für das Script!
lg, kesaloh13
-
Hi kesaloh13,
du hast da leider einen kleinen Verständnisfehler. Javascript wartet nicht die ersten 10 Sekunden bis der 2. Timeout startet, sondern startet den Timer und macht sofort weiter. Soll heißen, dass der 2. Timer nur Microsekunden nach dem ersten getriggert wird und somit beide nach 10 Sekunden ablaufen.
Und wenn dein Radar-Adapter alle fünf Minuten aktualisiert, hast du immer noch eine signifikante Wahrscheinlichkeit, dass der Reconnect innerhalb der letzten 60 Sekunden passiert ist. D.h. dein Script wird jedes 6. mal fehlschlagen (50s/300s).
Würde dir also empfehlen auf die oben genutzten 50 bzw. 60 Sekunden abzuändern.
Beste Grüße, justr
-
Hi Justr,
klar, da hatte ich wohl einen Knopf im Hirn. Danke für den Hinweis.
lg, kesaloh13
-
Also bei mir ist und bleibt es unverändert.
Will ich täglich mein Licht einschalten mache ich folgendes:
PC an machen, ioBroker Oberfläche öffnen, Adapter neu starten, Alexa öffnen, Geräte suchen klicken, danach verschwindet dann auch das (offline) hinter den Namen.
Licht an sagen!
Hey ich habe in 5 Minuten das Licht an gemacht, vielleicht sollte ich den Lichtschalter nutzen
Spaß beiseite! In den Logs gibt es keine Fehler oder Auffälligkeiten. Trotzdem sind täglich die Geräte unter SmartHome in Alexa offline.
-
Sollte ich einen neuen Beitrag eröffnen oder ist damit zu rechnen dass mir hier jemand helfen kann ?
-
Cloud version? Restart eingesetzt? Wann wird ip gewechselt?
-
Version 0.6.10, Restart ist nach Router reset und Neustart bei dem Verbindungsabbruch ist aktiv.
Geräte in Alexa täglich offline und im iobroker log ist kein roter Eintrag.
` > cloud.0 2017-03-19 15:07:34.664 info Connection changed: CONNECTED
cloud.0 2017-03-19 15:07:34.278 info 2017-03-19T14:07:34.277Z Connected system.user.admin
cloud.0 2017-03-19 15:07:34.110 info Connecting with https://iobroker.net:10555 with "xxx"
cloud.0 2017-03-19 15:07:34.047 info starting. Version 0.6.10 in /opt/iobroker/node_modules/iobroker.cloud, node: v4.8.0
cloud.0 2017-03-19 15:07:28.888 info terminating
cloud.0 2017-03-19 15:07:28.854 info Connection changed: DISCONNECTED `
-
Ich habe trotz Workaround script mit Cloud-Adapter 0.6.8. weiter Probleme, daß der "Hub… nicht reagiert". Mein Internetanbieter wechselt mehrmals am Tag die IP. erst hatte ich es mit dem cronjob probiert, aber da waren mir immer noch zu viele Wechsel, so das es nicht zuverlässig funktioneirte. Seit gestern habe ich das script laufen (muß man da noch was händisch anpassen???) und heute kam leider wieder die "hub reagiert nicht" Meldung.
Um es einzugrenzen, was soll ich an screenshots posten?
Danke und Grüße
Andreas
-
Sorry für die späte Antwort (war im Skiurlaub ).
Da offensichtlich viele diesen Workaround testen möchten und bisher wenig bis keine javascript-Erfahrungen haben, hier mal ein paar Tipps:
-
Laufende javascript-Instanz (grüne Ampel) sollte selbsterklärend sein
-
Über Bleistift-Icon im Admin rechts oben, links neben dem Login-Namen kann der "Skripte"-Reiter ein-/ausgeblendet werden.
-
Im "Skripte"-Reiter unter Common ein neues Skript anlegen und obiges Skript reinkopieren, speichern und starten (roter Play-Button).
-
Roter Play-Button wechselt zu grünem Pause-Button und im Log unter dem Skript sollte etwa das folgende stehen ("SystemIOB" ist bei mir der Name des Skripts und irrelevant; im dedizierten "Log"-Reiter in umgekehrter Reihenfolge):
12:23:36.829 [info] javascript.0 Start javascript script.js.common.SystemIOB 12:23:36.829 [info] javascript.0 script.js.common.SystemIOB: subscribe: {"pattern":{"id":"tr-064.0.states.externalIP","change":"ne","ack":true},"name":"script.js.common.SystemIOB"} 12:23:36.829 [info] javascript.0 script.js.common.SystemIOB: registered 1 subscription and 0 schedules
-
Die "id" im subscribe-Statement muss eurem Trigger entsprechen und in meinem Fall muss natürlich der "tr-064"-Adapter installiert sein und laufen (grüne Ampel!).
-
Ein Reconnect der Internet-Verbindung zum Testen lässt sich in der Regel in der Router-Oberfläche provozieren.
-
Beim erfolgreichen Triggern des Skripts muss ein "mylog: Restart cloud adapter due to new external IP address" im Log erscheinen.
-
Ob die Verbindung (unabhängig von Alexa) zwischen Cloud-Instanz und Cloud-Backend funktioniert, kann gut man testen, indem man sich unter https://iobroker.net/intro einloggt (Login rechts oben; manueller Refresh bei Bedarf!). Eine Fehlerseite mit "501" kann dabei als Connect verstanden werden (habe ich auch) und liegt wohl an meiner verschlüsselten Web-Instanz.
-
Wenn der Haken "Neustart bei dem Verbindungsabbruch" in den cloud-Einstellungen bei euch nicht geholfen hatte, dann nehmt ihn besser wieder raus. Ich hatte bei mir festgestellt, dass dadurch das ganze automatische cloud-Reconnect-Prozedere verzögert wird und damit auch das Rauskicken erst nach mehr als einer Minute passiert. Somit triggert mein Skript (eine Minute Verzögerung) zu früh und der Abbruch passiert erst danach.
-
Testweise könnt ihr im Skript die einminütige Verzögerung auch mal auf 2 Minuten setzen (false auf 110000 und true auf 120000 Millisekunden).
Hoffe das hilft dem einen oder anderen weiter.
Beste Grüße, justr
-