NEWS
Twinkly - Basisfunktionen mit ioBroker steuern
-
@siggi85 Versuche es jetzt nochmal. Ich hatte noch einen Fehler in der Zeitermittlung ab wann der Token abgelaufen ist. Dadurch wurde jedesmal ein neuer Token generiert. Eventuell kommt die 1102 Fehlermeldung davon. Falls das nicht hilft blende ich die dann einfach aus. Scheint ja kein Fehler zu sein
EDIT: Ich habe gerade meine zweite Lichterkette angeschlossen und bekomme jetzt die gleiche Fehlermeldung wie du. Ich gehe jetzt mal davon aus, dass Twinkly die Challenge-Response nicht mag. Muss ich mir mal anschauen... Aber mit diesem Update nur alle 4 Stunden pro Gerät
-
@patrickbs96
Ich hab die aktuelle Version des Scripts mal geladen und bin am testen, allerdings klappt da nix.
Ich seh in den States zwar jetzt die Firmware Version usw. (Habe noch eine der alten Twinkly aus 2017),
aber der Zustand ob sie an oder aus ist ändert sich nicht und ich kann auch nicht schalten damit, also ob ich auf true oder false setze an der Lichterkette passiert dann nichts.Hier mal ein Auszug aus dem Log:
17:22:18.016 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: getState(id=ping.0.iobroker.192_168_178_175, timerId=undefined) => {"val":true,"ack":true,"ts":1607098913269,"q":0,"from":"system.adapter.ping.0","user":"system.user.admin","lc":1607097243493} 17:22:18.040 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.on] HTTP Error 401 17:22:31.596 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: getState(id=ping.0.iobroker.192_168_178_175, timerId=undefined) => {"val":true,"ack":true,"ts":1607098943471,"q":0,"from":"system.adapter.ping.0","user":"system.user.admin","lc":1607097243493} 17:22:31.617 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.on] HTTP Error 401 17:22:43.389 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: getState(id=ping.0.iobroker.192_168_178_175, timerId=undefined) => {"val":true,"ack":true,"ts":1607098943471,"q":0,"from":"system.adapter.ping.0","user":"system.user.admin","lc":1607097243493} 17:22:43.389 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.MyDevices.Twinkly.Weihnachtsbaum.connected, state={"val":true,"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 17:22:43.409 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.mode] HTTP Error 401 17:22:43.425 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.bri] HTTP Error 401 17:22:43.443 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.name] HTTP Error 401 17:22:43.461 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.mqtt] HTTP Error 401 17:22:43.486 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.timer] HTTP Error 401 17:22:43.507 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.MyDevices.Twinkly.Weihnachtsbaum.details, state={"val":"{\"product_name\":\"Twinkly\",\"product_version\":\"16\",\"hardware_version\":\"7\",\"flash_size\":16,\"led_type\":6,\"led_version\":\"1\",\"product_code\":\"TW225SEUP07\",\"device_name\":\"Twinkly_BA1A63\",\"uptime\":\"1786705\",\"hw_id\":\"00ba1a63\",\"mac\":\"84:f3:eb:ba:1a:63\",\"max_supported_led\":255,\"base_leds_number\":225,\"number_of_led\":225,\"led_profile\":\"RGB\",\"frame_rate\":25,\"movie_capacity\":719,\"copyright\":\"LEDWORKS 2017\"}","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 17:22:43.526 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.MyDevices.Twinkly.Weihnachtsbaum.firmware, state={"val":"2.3.5","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"})
-
Deine Firmware ist auf 2.3.5. Ist das die neueste Version für deine Twinkly oder wird dir über die App ein Update angeboten?
Bei der neuen Version des Skriptes kam nur beim Start für jede Kette eine Fehlermeldung, seit dem alles ruhig. Wahrscheinlich kommt jetzt alle 4 Stunden die Meldung, aber damit kann ich locker leben.
Achja, auch externe Änderungen (bspw. wenn die Kette über die App an/aus geschaltet wird), wird jede volle Minute in ioBroker aktualisiert. Vielen Dank für deine Version des Skriptes! -
@siggi85 Ich habe diesbezüglich auch schon eine Lösung, habe nämlich den Verursacher gefunden Die Befehle werden nämlich doppelt abgeschickt und dann kam es zu Überschneidungen mit dem Token.
Ich bekomme jetzt aber nach einer Weile die Meldung "Invalid Token" in Verbindung mit der "HTTP Error 401". Da es eine Weile dauert bis der Fehler auftritt kann ich noch nicht sagen wie lange ich dafür brauche...
-
@patrickbs96 sagte in Twinkly - Basisfunktionen mit ioBroker steuern:
@siggi85 Ich habe diesbezüglich auch schon eine Lösung, habe nämlich den Verursacher gefunden Die Befehle werden nämlich doppelt abgeschickt und dann kam es zu Überschneidungen mit dem Token.
Ich bekomme jetzt aber nach einer Weile die Meldung "Invalid Token" in Verbindung mit der "HTTP Error 401". Da es eine Weile dauert bis der Fehler auftritt kann ich noch nicht sagen wie lange ich dafür brauche...
Jop, ich habe gerade geschaut und das mit dem "HTTP Error 401" ist mir gerade auch passiert. Musste das Skript neustarten. Mal schauen wie lange es jetzt läuft.
-
@siggi85 Ging dann doch schneller als gedacht. Ich habe es jetzt so ähnlich gelöst, wie du in deinem Skript. Seitdem kriege ich keine Fehlermeldungen mehr. Ich habe zusätzlich noch eine Konstante hinzugefügt um die Zeit für das Polling anzupassen
-
@siggi85
Ja das ist die "neuste" für meine Lichterkette, also es wird in der App (App ist aktuell) auch kein Update angeboten. Wie gesagt die Kette ist schon etwas älter also noch die erste Version von Twinkly die es gab mit 225 LED´s. -
@patrickbs96 Mh, durch die neue Version erhalte ich folgende Meldung und das Schalten funktioniert nicht mehr:
EDIT: Das Polling wird minütlich durchgeführt, aber bringt halt die beschriebenen Fehlermeldungen.
-
@siggi85 Das das Steuern nicht mehr klappt war meine Schuld. Hatte eine Stelle übersehen, die ich ersetzen musste. Ich nutze meine eigene Logging-Komponente...
Könntest du das Skript noch einmal testen? Ich habe eine Prüfung ergänzt, vielleicht lag es daran.
-
@patrickbs96 Logs und Funktionen sehen sehr gut aus! Ich werde weiter beobachten und noch eine Rückmeldung aus dem Dauerbetrieb gebe. Wenn das jetzt stabil läuft bin ich damit sehr zufrieden.
Es wäre natürlich mega, wenn man die jeweilige Szene über ein Attribut steuern könnte, allerdings gibt das die API aktuell leider nicht her. Da können wir wohl nur abwarten und hoffen, dass die API irgendwann offiziell und damit vollständig dokumentiert wird.@W0RSCHD Also derjenige, der die inofizielle API dokumentiert hat, hat anscheinend auch ein Gerät der ersten Generation. Er scheint auch mit der gleichen Firmware getestet zu haben, die auf deinen Twinklys drauf ist. (Siehe hier)
Prinzipiell müsste es meiner Meinung nach bei dir also funktionieren.
Versuche mal bitte auf der Kommadozeile, was ich hier beschrieben habe und gebe Rückmeldung, ob das klappt. -
@siggi85
Ja habe die manuellen Befehle gerade alle getestet, kann damit an und ausschalten, das funktioniertHab die neuste Version aus dem GIT mal reinkopiert und gestartet und auch nochmal alle Objekte im JS Adapter gelöscht das sie neu angelegt werden.
Sieht dann so aus und es wird quasi nur details und Firmware ausgefüllt, welcher modus aktiv ist usw., das bleibt alles leer.
Ebenso ändert sich dann auch nichts wenn ich den modus von Hand schalte, dadurch geht sie auch nicht aus oder an.
Ich habe ehrlich gesagt aber auch keine Ahnung wo ich suchen soll da ich auch dem verbose Log aus dem Skript nix entnehmen kann warum es hakt oder wo es hängt dass es nicht geht.Hier mal ein Auszug aus dem Log:
11:35:33.352 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: getState(id=ping.0.iobroker.192_168_178_175, timerId=undefined) => {"val":true,"ack":true,"ts":1607164512257,"q":0,"from":"system.adapter.ping.0","user":"system.user.admin","lc":1607157356830} 11:35:33.353 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.connected, state={"val":true,"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 11:35:33.386 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.login] 1106 (undefined), Body: {"code":1106} 11:35:33.413 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.verify] 1102 (Error), Data: {}, Headers: {}, Body: {"code":1102} 11:35:33.453 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.login] 1106 (undefined), Body: {"code":1106} 11:35:33.480 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.verify] 1102 (Error), Data: {}, Headers: {}, Body: {"code":1102} 11:35:33.512 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.mode] HTTP Error 401, "Invalid Token." 11:35:33.531 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.login] 1106 (undefined), Body: {"code":1106} 11:35:33.552 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.verify] 1102 (Error), Data: {}, Headers: {}, Body: {"code":1102} 11:35:33.589 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.login] 1106 (undefined), Body: {"code":1106} 11:35:33.611 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.verify] 1102 (Error), Data: {}, Headers: {}, Body: {"code":1102} 11:35:33.640 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.bri] HTTP Error 401, "Invalid Token." 11:35:33.657 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.login] 1106 (undefined), Body: {"code":1106} 11:35:33.678 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.verify] 1102 (Error), Data: {}, Headers: {}, Body: {"code":1102} 11:35:33.711 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.login] 1106 (undefined), Body: {"code":1106} 11:35:33.735 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.verify] 1102 (Error), Data: {}, Headers: {}, Body: {"code":1102} 11:35:33.760 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.name] HTTP Error 401, "Invalid Token." 11:35:33.778 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.login] 1106 (undefined), Body: {"code":1106} 11:35:33.795 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.verify] 1102 (Error), Data: {}, Headers: {}, Body: {"code":1102} 11:35:33.832 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.login] 1106 (undefined), Body: {"code":1106} 11:35:33.858 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.verify] 1102 (Error), Data: {}, Headers: {}, Body: {"code":1102} 11:35:33.885 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.mqtt] HTTP Error 401, "Invalid Token." 11:35:33.902 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.login] 1106 (undefined), Body: {"code":1106} 11:35:33.919 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.verify] 1102 (Error), Data: {}, Headers: {}, Body: {"code":1102} 11:35:33.964 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.login] 1106 (undefined), Body: {"code":1106} 11:35:33.984 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.verify] 1102 (Error), Data: {}, Headers: {}, Body: {"code":1102} 11:35:34.002 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.timer] HTTP Error 401, "Invalid Token." 11:35:34.017 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.login] 1106 (undefined), Body: {"code":1106} 11:35:34.034 warn javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.POST.verify] 1102 (Error), Data: {}, Headers: {}, Body: {"code":1102} 11:35:34.066 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.details, state={"val":"{\"product_name\":\"Twinkly\",\"product_version\":\"16\",\"hardware_version\":\"7\",\"flash_size\":16,\"led_type\":6,\"led_version\":\"1\",\"product_code\":\"TW225SEUP07\",\"device_name\":\"Twinkly_BA1A63\",\"uptime\":\"2913607\",\"hw_id\":\"00ba1a63\",\"mac\":\"84:f3:eb:ba:1a:63\",\"max_supported_led\":255,\"base_leds_number\":225,\"number_of_led\":225,\"led_profile\":\"RGB\",\"frame_rate\":25,\"movie_capacity\":719,\"copyright\":\"LEDWORKS 2017\"}","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 11:35:34.089 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.firmware, state={"val":"2.3.5","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"})
-
@siggi85 Das freut mich zu hören Theoretisch wäre das ja durch MQTT möglich aber ich weiß nicht wie genau ich es konfigurieren muss. Ich hatte es gestern versucht aber es gab keine Verbindung...
@W0RSCHD So wie ich das bei meinen Tests festgestellt habe ist, dass Details und Firmware keinen Token benötigen um die Daten abzurufen. Deshalb funktionieren dies beiden auch noch. In deinem Fall sieht es so aus als schlägt die Anmeldung fehl... Ich habe das Logging mal erweitern vielleicht finden wir so den Grund, weshalb es bei dir nicht mit dem Skript klappt.
Setzte dafürconst EXTENDED_LOGGING = true;
-
@patrickbs96 sagte in Twinkly - Basisfunktionen mit ioBroker steuern:
@siggi85 Das freut mich zu hören Theoretisch wäre das ja durch MQTT möglich aber ich weiß nicht wie genau ich es konfigurieren muss. Ich hatte es gestern versucht aber es gab keine Verbindung...
Anders als in der API beschrieben, ist die MQTT Verbindung mittlerweile verschlüsselt. Hätte man das passende Zertifikat könnte man eine MQTT Instanz mit diesem Zertifikat und einem eigenen Port aufmachen. Ohne Zertifikat sieht das aber schlecht aus.
Ich habe es bei meinen Tests auch nicht hinbekommen, die Verschlüsselung zu deaktivieren. Das wäre sonst die 2. Möglichkeit. -
@patrickbs96
ok, habs mal geändert, hier mal das log dazu16:24:15.409 info javascript.0 (11366) Stop script script.js.Schaltungen.Twinkly_JS 16:24:17.614 info javascript.0 (11366) Start javascript script.js.Schaltungen.Twinkly_JS 16:24:17.662 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setTimeout(ms=2000) 16:24:17.663 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: onStop(timeout=500) 16:24:17.663 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: registered 0 subscriptions and 0 schedules 16:24:17.674 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: getObject(id=javascript.0.Weihnachtsbaum, enumName=undefined) => {"common":{"name":"Twinkly","role":"state","type":"mixed"},"native":{},"type":"channel","from":"system.adapter.javascript.0","user":"system.user.admin","ts":1607163615438,"_id":"javascript.0.Weihnachtsbaum","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}} 16:24:17.675 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setObject(id=javascript.0.Weihnachtsbaum, obj={"common":{"name":"Twinkly","role":"state","type":"mixed"},"native":{},"type":"channel","from":"system.adapter.javascript.0","user":"system.user.admin","ts":1607163615438,"_id":"javascript.0.Weihnachtsbaum","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}) 16:24:19.665 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: subscribe: {"pattern":{"id":{},"change":"ne","ack":false,"q":0},"name":"script.js.Schaltungen.Twinkly_JS"} 16:24:19.669 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setInterval(ms=60000) 16:25:19.673 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: getState(id=ping.0.iobroker.192_168_178_175, timerId=undefined) => {"val":true,"ack":true,"ts":1607181905606,"q":0,"from":"system.adapter.ping.0","user":"system.user.admin","lc":1607157356830} 16:25:19.677 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.connected, state={"val":true,"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 16:25:19.681 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly._get] <led/mode> 16:25:19.682 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.ensure_token] Authentication token expired, will refresh 16:25:19.690 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [httpRequest.POST] {"url":"http://192.168.178.175/xled/v1/login","body":{"challenge":"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8="},"method":"POST","rejectUnauthorized":false,"timeout":3000,"json":true} 16:25:19.810 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] response: {"statusCode":200,"body":{"code":1106},"headers":{"connection":"close","content-length":"13","content-type":"application/json"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.178.175","port":80,"hostname":"192.168.178.175","hash":null,"search":null,"query":null,"pathname":"/xled/v1/login","path":"/xled/v1/login","href":"http://192.168.178.175/xled/v1/login"},"method":"POST","headers":{"accept":"application/json","content-type":"application/json","content-length":60}}} 16:25:19.811 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] body: {"code":1106} 16:25:19.822 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.mode] [Twinkly.POST.login] 1106 (Error - Login) 16:25:19.823 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly._get] <led/out/brightness> 16:25:19.824 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.ensure_token] Authentication token expired, will refresh 16:25:19.824 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [httpRequest.POST] {"url":"http://192.168.178.175/xled/v1/login","body":{"challenge":"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8="},"method":"POST","rejectUnauthorized":false,"timeout":3000,"json":true} 16:25:19.855 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] response: {"statusCode":200,"body":{"code":1106},"headers":{"connection":"close","content-length":"13","content-type":"application/json"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.178.175","port":80,"hostname":"192.168.178.175","hash":null,"search":null,"query":null,"pathname":"/xled/v1/login","path":"/xled/v1/login","href":"http://192.168.178.175/xled/v1/login"},"method":"POST","headers":{"accept":"application/json","content-type":"application/json","content-length":60}}} 16:25:19.856 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] body: {"code":1106} 16:25:19.857 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.bri] [Twinkly.POST.login] 1106 (Error - Login) 16:25:19.858 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly._get] <device_name> 16:25:19.859 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.ensure_token] Authentication token expired, will refresh 16:25:19.859 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [httpRequest.POST] {"url":"http://192.168.178.175/xled/v1/login","body":{"challenge":"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8="},"method":"POST","rejectUnauthorized":false,"timeout":3000,"json":true} 16:25:19.901 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] response: {"statusCode":200,"body":{"code":1106},"headers":{"connection":"close","content-length":"13","content-type":"application/json"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.178.175","port":80,"hostname":"192.168.178.175","hash":null,"search":null,"query":null,"pathname":"/xled/v1/login","path":"/xled/v1/login","href":"http://192.168.178.175/xled/v1/login"},"method":"POST","headers":{"accept":"application/json","content-type":"application/json","content-length":60}}} 16:25:19.903 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] body: {"code":1106} 16:25:19.904 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.name] [Twinkly.POST.login] 1106 (Error - Login) 16:25:19.915 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly._get] <mqtt/config> 16:25:19.916 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.ensure_token] Authentication token expired, will refresh 16:25:19.917 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [httpRequest.POST] {"url":"http://192.168.178.175/xled/v1/login","body":{"challenge":"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8="},"method":"POST","rejectUnauthorized":false,"timeout":3000,"json":true} 16:25:19.975 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] response: {"statusCode":200,"body":{"code":1106},"headers":{"connection":"close","content-length":"13","content-type":"application/json"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.178.175","port":80,"hostname":"192.168.178.175","hash":null,"search":null,"query":null,"pathname":"/xled/v1/login","path":"/xled/v1/login","href":"http://192.168.178.175/xled/v1/login"},"method":"POST","headers":{"accept":"application/json","content-type":"application/json","content-length":60}}} 16:25:19.976 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] body: {"code":1106} 16:25:19.979 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.mqtt] [Twinkly.POST.login] 1106 (Error - Login) 16:25:19.993 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly._get] <timer> 16:25:19.995 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.ensure_token] Authentication token expired, will refresh 16:25:20.001 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [httpRequest.POST] {"url":"http://192.168.178.175/xled/v1/login","body":{"challenge":"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8="},"method":"POST","rejectUnauthorized":false,"timeout":3000,"json":true} 16:25:20.065 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] response: {"statusCode":200,"body":{"code":1106},"headers":{"connection":"close","content-length":"13","content-type":"application/json"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.178.175","port":80,"hostname":"192.168.178.175","hash":null,"search":null,"query":null,"pathname":"/xled/v1/login","path":"/xled/v1/login","href":"http://192.168.178.175/xled/v1/login"},"method":"POST","headers":{"accept":"application/json","content-type":"application/json","content-length":60}}} 16:25:20.073 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] body: {"code":1106} 16:25:20.074 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.timer] [Twinkly.POST.login] 1106 (Error - Login) 16:25:20.076 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly._get] <gestalt> 16:25:20.085 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.ensure_token] Authentication token expired, will refresh 16:25:20.086 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [httpRequest.POST] {"url":"http://192.168.178.175/xled/v1/login","body":{"challenge":"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8="},"method":"POST","rejectUnauthorized":false,"timeout":3000,"json":true} 16:25:20.151 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] response: {"statusCode":200,"body":{"code":1106},"headers":{"connection":"close","content-length":"13","content-type":"application/json"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.178.175","port":80,"hostname":"192.168.178.175","hash":null,"search":null,"query":null,"pathname":"/xled/v1/login","path":"/xled/v1/login","href":"http://192.168.178.175/xled/v1/login"},"method":"POST","headers":{"accept":"application/json","content-type":"application/json","content-length":60}}} 16:25:20.152 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] body: {"code":1106} 16:25:20.153 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.details] [Twinkly.POST.login] 1106 (Error - Login) 16:25:20.155 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly._get] <fw/version> 16:25:20.156 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Twinkly.ensure_token] Authentication token expired, will refresh 16:25:20.180 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [httpRequest.POST] {"url":"http://192.168.178.175/xled/v1/login","body":{"challenge":"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8="},"method":"POST","rejectUnauthorized":false,"timeout":3000,"json":true} 16:25:20.242 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] response: {"statusCode":200,"body":{"code":1106},"headers":{"connection":"close","content-length":"13","content-type":"application/json"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.178.175","port":80,"hostname":"192.168.178.175","hash":null,"search":null,"query":null,"pathname":"/xled/v1/login","path":"/xled/v1/login","href":"http://192.168.178.175/xled/v1/login"},"method":"POST","headers":{"accept":"application/json","content-type":"application/json","content-length":60}}} 16:25:20.253 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [doPostRequest] body: {"code":1106} 16:25:20.261 error javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: [Weihnachtsbaum.firmware] [Twinkly.POST.login] 1106 (Error - Login)
-
@W0RSCHD said in Twinkly - Basisfunktionen mit ioBroker steuern:
Weihnachtsbaum
Ich habe deine Aufrufe mal mit meinen verglichen und die sind bis auf die Rückmeldung identisch:
[httpRequest.POST] {"url":"http://192.168.178.52/xled/v1/login","body":{"challenge":"AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8="},"method":"POST","rejectUnauthorized":false,"timeout":3000,"json":true} Deins: [doPostRequest] response: {"statusCode":200,"body":{ "code":1106},"headers":{ "connection":"close","content-length":"13","content-type":"application/json"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.178.175","port":80,"hostname":"192.168.178.175","hash":null,"search":null,"query":null,"pathname":"/xled/v1/login","path":"/xled/v1/login","href":"http://192.168.178.175/xled/v1/login"},"method":"POST","headers":{"accept":"application/json","content-type":"application/json","content-length":60}}} Meins: [doPostRequest] response: {"statusCode":200,"body":{"authentication_token":"BFJmAWqQ8+4=","authentication_token_expires_in":14400,"challenge-response":"b240d1a142fc8346c72453fa8b4bb62e7f44d64b","code":1000},"headers":{"server":"esp-httpd/0.5","connection":"close", "content-type":"application/json"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.178.52", "port":80,"hostname":"192.168.178.52", "hash":null,"search":null,"query":null,"pathname":"/xled/v1/login","path":"/xled/v1/login","href":"http://192.168.178.52/xled/v1/login"}, "method":"POST","headers":{"accept":"application/json","content-type":"application/json","content-length":60}}}
Ich habe leider keine Erklärung dafür... @siggi85 hast du eventuell eine Idee?
Es scheint ja irgend ein Fehler im Request zu sein, den die erste Generation der Twinkly nicht mag.
Falls du keine Idee hast würde ich den Request gegen den curl Befehl ersetzen, der scheint ja zu funktionieren. -
@W0RSCHD Funktioniert denn zumindest mein Blockly bei dir? Das nutzt ja die curl Aufrufe, die anscheinend funktionieren.
-
@siggi85
Das Blockly lief am Anfang 1a und irgendwann hat das auch gesponnen und es ging nix mehr (keine Ahnung wieso).@patrickbs96 kannst du mir mal eine Version machen mit den curl Anfragen, dann kann ich mal testen ob die bei meiner alten Version besser funktionieren.
Danke euch beiden schon mal
-
@W0RSCHD Ist eingebaut Aktiviere dafür die folgende Einstellung:
const USE_CURL_INSTEAD = true;
-
@patrickbs96
Danke, Authentication funktioniert, es spuckt aber noch Fehler aus,
hier mal der Log10:30:07.001 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/fw/version 10:30:07.074 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.firmware, state={"val":"2.3.5","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:31:06.063 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: getState(id=ping.0.iobroker.192_168_178_175, timerId=undefined) => {"val":true,"ack":true,"ts":1607247061634,"q":0,"from":"system.adapter.ping.0","user":"system.user.admin","lc":1607222544951} 10:31:06.074 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.connected, state={"val":true,"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:31:06.075 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/led/mode 10:31:06.338 warn javascript.0 (11366) at script.js.Schaltungen.Twinkly_JS:190:29 10:31:06.338 warn javascript.0 (11366) at Object.<anonymous> (script.js.Schaltungen.Twinkly_JS:188:25) 10:31:06.338 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.mode, state={"val":{"ack":true},"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:31:06.339 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.on, state={"val":true,"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:31:06.340 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/led/out/brightness 10:31:06.627 warn javascript.0 (11366) at script.js.Schaltungen.Twinkly_JS:196:45 10:31:06.627 warn javascript.0 (11366) at Object.<anonymous> (script.js.Schaltungen.Twinkly_JS:195:25) 10:31:06.628 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.bri, state={"val":{"ack":true},"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:31:06.629 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/device_name 10:31:06.829 warn javascript.0 (11366) at script.js.Schaltungen.Twinkly_JS:200:44 10:31:06.829 warn javascript.0 (11366) at Object.<anonymous> (script.js.Schaltungen.Twinkly_JS:199:25) 10:31:06.829 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.name, state={"val":{"ack":true},"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:31:06.830 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/mqtt/config 10:31:06.969 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.mqtt, state={"val":"{}","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:31:06.972 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/timer 10:31:07.088 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.timer, state={"val":"{}","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:31:07.093 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/gestalt 10:31:07.232 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.details, state={"val":"{\"product_name\":\"Twinkly\",\"product_version\":\"16\",\"hardware_version\":\"7\",\"flash_size\":16,\"led_type\":6,\"led_version\":\"1\",\"product_code\":\"TW225SEUP07\",\"device_name\":\"Twinkly_BA1A63\",\"uptime\":\"3842109\",\"hw_id\":\"00ba1a63\",\"mac\":\"84:f3:eb:ba:1a:63\",\"max_supported_led\":255,\"base_leds_number\":225,\"number_of_led\":225,\"led_profile\":\"RGB\",\"frame_rate\":25,\"movie_capacity\":719,\"copyright\":\"LEDWORKS 2017\"}","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:31:07.234 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/fw/version 10:31:07.383 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.firmware, state={"val":"2.3.5","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:32:06.064 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: getState(id=ping.0.iobroker.192_168_178_175, timerId=undefined) => {"val":true,"ack":true,"ts":1607247122573,"q":0,"from":"system.adapter.ping.0","user":"system.user.admin","lc":1607222544951} 10:32:06.064 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.connected, state={"val":true,"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:32:06.069 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/led/mode 10:32:06.148 warn javascript.0 (11366) at script.js.Schaltungen.Twinkly_JS:190:29 10:32:06.149 warn javascript.0 (11366) at Object.<anonymous> (script.js.Schaltungen.Twinkly_JS:188:25) 10:32:06.149 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.mode, state={"val":{"ack":true},"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:32:06.150 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.on, state={"val":true,"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:32:06.151 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/led/out/brightness 10:32:06.241 warn javascript.0 (11366) at script.js.Schaltungen.Twinkly_JS:196:45 10:32:06.242 warn javascript.0 (11366) at Object.<anonymous> (script.js.Schaltungen.Twinkly_JS:195:25) 10:32:06.242 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.bri, state={"val":{"ack":true},"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:32:06.243 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/device_name 10:32:06.321 warn javascript.0 (11366) at script.js.Schaltungen.Twinkly_JS:200:44 10:32:06.322 warn javascript.0 (11366) at Object.<anonymous> (script.js.Schaltungen.Twinkly_JS:199:25) 10:32:06.322 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.name, state={"val":{"ack":true},"ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:32:06.324 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/mqtt/config 10:32:06.399 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.mqtt, state={"val":"{}","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:32:06.401 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/timer 10:32:06.485 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.timer, state={"val":"{}","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:32:06.489 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/gestalt 10:32:06.555 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.details, state={"val":"{\"product_name\":\"Twinkly\",\"product_version\":\"16\",\"hardware_version\":\"7\",\"flash_size\":16,\"led_type\":6,\"led_version\":\"1\",\"product_code\":\"TW225SEUP07\",\"device_name\":\"Twinkly_BA1A63\",\"uptime\":\"3901446\",\"hw_id\":\"00ba1a63\",\"mac\":\"84:f3:eb:ba:1a:63\",\"max_supported_led\":255,\"base_leds_number\":225,\"number_of_led\":225,\"led_profile\":\"RGB\",\"frame_rate\":25,\"movie_capacity\":719,\"copyright\":\"LEDWORKS 2017\"}","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"}) 10:32:06.557 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: exec: curl -H 'X-Auth-Token: pm6be3o9Vac= Content-Type: application/json' http://192.168.178.175/xled/v1/fw/version 10:32:06.618 info javascript.0 (11366) script.js.Schaltungen.Twinkly_JS: setForeignState(id=javascript.0.Weihnachtsbaum.firmware, state={"val":"2.3.5","ack":true,"c":"script.js.Schaltungen.Twinkly_JS"})
Schalten kann ich auch noch nichts, es scheint nur die Authentifizierung zu klappen bis jetzt.
-
@W0RSCHD Könntest du bitte das erweiterte Logging aktivieren und mir dann das Log schicken? Ich habe das Gefühl als werden die Inhalte anders übermittelt als bei der 2. Generation.