NEWS
Harmony 0.9.6 aktualisiert die Objekte nicht im Browser
-
Hallo,
ich habe den Harmony Adapter 0.9.6 installiert und einige Skripte, die auf Änderungen des Objektes harmony.0.Harmony Wohnzimmer Hub.activities.currentActivity triggern. Das Objekt wird sicher geändert, da die Skripte adäquat regieren. Jetzt wollte ich am Skript was ändern und dabei das Objekt beobachten. Hierbei muss ich feststellen, dass das Objekt erst sehr spät in der Admin-Oberfläche angezeigt wird. Zum besseren Verständnis:
-
harmony.0.Harmony Wohnzimmer Hub.activities.currentActivity steht auf "Poweroff"
-
Ich sage Alexa "Netflix an"
-
der Fernseher startet mit Netflix und das Skript bemerkt, dass das Objekt harmony.0.Harmony Wohnzimmer Hub.activities.currentActivity geändert wurde, weil die Rollos sofort schließen
-
In der Weboberfläche der Objekte steht das Objekt harmony.0.Harmony Wohnzimmer Hub.activities.currentActivity weiter auf "Poweroff" und wird erst 30 Sekunden später auf "Netflix starten" geändert
Woran liegt das?
Ich meine mich zu erinnern, dass das vor ein paar Monaten noch anders war. Als ich das Skript geschrieben habe konnte ich in der Weboberfläche noch beobachten, wie sich der Wert von harmony.0.Harmony Wohnzimmer Hub.activities.currentStatus nach dem Start von 0 über 3 auf 2 geändert hat. Die Änderung kann ich jetzt gar nicht mehr sehen.
PS: ioBroker läuft auf einem NUC unter Debian 9.0 mit 4GB RAM von denen noch 2GB frei sind.
-
-
Das habe ich auch beobachtet und es hat mich anfangs etwas verwirrt, weil ich dachte dass der Adapter nicht funktioniert. Nach dem Neuladen (F5) der Seite wird der Zustand aber korrekt angezeigt.
-
Merkwürdigerweise macht das bei mir keinen Unterschied. Ob ich F5 oder Shift F5 drücke füllt mir nicht die Objekte sofort.
-
Vielleicht war das bei mir auch nur Zufall und der Wert hat sich während dem Neuladen aktualisiert.
-
Hi, daran sollte sich nichts geändert haben. Habe es eben getestet und es ist nach wie vor dasselbe Verhalten.
Während dem Einschaltvorgang: 1
Eingeschaltet: 2
Während dem Ausschaltvorgang: 3
Ausgeschaltet: 0
Du könntest den Wert z. B. mal bei Änderung loggen, jedoch vermute ich dass es ein Cache Problem ist.
-
So, ich habe das mal mit einem anderen Browser (Edge) mit leerem Cache probiert. Gleiches Ergebnis wie beim Chrome. Die Objekte aktualisieren sich nicht. Auch nach rund zwei Minuten nicht. Bei klick auf "Baum neu erstellen" wird auch nicht aktualisiert. Erst beim Neuladen der Seite (F5) werden die Werte aktualisiert.
Ist für mich aber nur ein "Schönheitsfehler" weil Skripte die Änderung sofort mitbekommen. Und das ist wichtig.
-
@WaJoWi:So, ich habe das mal mit einem anderen Browser (Edge) mit leerem Cache probiert. Gleiches Ergebnis wie beim Chrome. Die Objekte aktualisieren sich nicht. Auch nach rund zwei Minuten nicht. Bei klick auf "Baum neu erstellen" wird auch nicht aktualisiert. Erst beim Neuladen der Seite (F5) werden die Werte aktualisiert.
Ist für mich aber nur ein "Schönheitsfehler" weil Skripte die Änderung sofort mitbekommen. Und das ist wichtig. `
Und das passiert nur beim Harmony Adapter :?:
Also bei mir sowohl unter Chrome als auch Firefox keines der Probleme. Allerdings unter Ubuntu 18.04.
-
Und das passiert nur beim Harmony Adapter :?: `
Ja, nur beim Harmony Adapter. Der Broker läuft auf einem Raspberrry Pi 3 und der Browser auf Windows 10.admin 3.5.10 harmony 0.10.0 js-controller 1.4.2 node v8.11.3 nodejs v8.11.3 npm 4.6.1
-
@WaJoWi:Und das passiert nur beim Harmony Adapter :?: `
Ja, nur beim Harmony Adapter. Der Broker läuft auf einem Raspberrry Pi 3 und der Browser auf Windows 10.admin 3.5.10 harmony 0.10.0 js-controller 1.4.2 node v8.11.3 nodejs v8.11.3 npm 4.6.1 ```` `
Eigentlich kann es am Adapter nicht liegen, da es lediglich ein Anzeigeprpblem im Admin bzw. Browser ist. Versionen schauen gut aus.
-
Ich habe jetzt extra die Objekte von vier anderen Adaptern getestet - bei allen erfolgt unmittelbar eine Aktualisierung wenn sich etwas ändert. Nur beim Harmony Adapter tut sich nichts. Aber wie gesagt, Hauptsache der javascript-Adaper bekommt die Änderungen mit.
-
Upload des Adapters hast du gemacht, nachdem du ihn von Git installiert hast?
-
Ja.
-
Okay, dann keine Ahnung.
Gerade Win10VM mit IE getestet –> geht bei mir auch dort.
-
Jetzt habe ich extra auch den IE probiert (vorher noch nie unter Win10 gestartet), und auch da erfolgt keine Aktualisierung bis ich F5 drücke. Danach habe ich es auf einem anderen Rechner (auch Win10) mit Firefox probiert - selbes Ergebnis. Zu guter Letzt auf meinem Android-Handy. Auch dort das Selbe. Also Betriebssystem und Browser kann man wohl ausschließen.
Aber danke für deine Zeit und Arbeit! Vielleicht ergibt sich ja irgendwann eine Lösung…
-
Okay. Konnte es nachstellen auf einem Raspberry Pi, kann’s mir nicht erklären was das ist.
-
Okay, konnte feststellen, dass es nicht am System liegt an dem es läuft, sondern irgendwie am Hub Objekt. Habe zwei Hubs, bei einem läuft die Aktualisierung, beim anderen nicht.
Habt ihr Leerzeichen in eurem Hubnamen?
Ich gehe sehr stark davon aus, dass es daran liegt, dass irgendwo im state ein Leerzeichen ist. Zum nachprüfen mal ein simples Skript
let i = 0; createState('javascript.0.test'); createState('javascript.0.test test'); setInterval(() => { setState('javascript.0.test', i, true); setState('javascript.0.test test', i, true); i++; }, 5000);
Beobachtet man nun im Admin Objekte, wird sich 'test' alle 5 Sekunden aktualisieren, während man in 'test test' den aktuellen Wert erst nach einem Browser Refresh sehen kann.
-
Da ich nur einen Hub in Betrieb habe, hat dieser den Standard-Namen. Also "Harmony Hub" und somit ein Leerzeichen.
Weißt du wie man den umbenennt? In der Harmony-App habe ich nichts gefunden.
-
Hatte gestern zum Testen auch geschaut wie man es umbenennt, glaube das ist an eine Neueinrichtung gekoppelt. Also an deiner Stelle würde ich es so lassen. Ich habe ein Issue im Admin angelegt mit dem Problem. Mit der Version 0.9.3 wurden ja die zukünftig verbotenen Zeichen in den States ersetzt und mit Leerzeichen ersetzt.
Dann wird bei dir auch bei jedem Hinzufügen eines Hubs auf Info Level geloggt, dasss er die Aktivitäten neu anlegt?
Das sollte mit der nächsten js-Controller Version dann hoffentlich weg sein.
-
:idea: Umbenennen kann man den Hub nicht in der App sondern nur mit 'MyHarmony' am PC.
Ich habe das getan und der Adapter hat danach den "neuen" Hub eingelesen. Und jetzt funktioniert auch die Aktualisierung der Objekte sofort!
Vielen Dank für die Detektivarbeit - ich wäre nicht darauf gekommen.
Vielleicht kann man eine Warnung im Adapter einrichten falls der Hub-Name ein Leerzeichen enthält? Ist ja leider Standard…
-
Es ist wie gesagt, kein Problem des Harmony Adapters.
Das Problem sind grundsätzlich States, mit Leerzeichen drin. Diese sind allerdings aktuell und soweit ich weiß auch zukünftig erlaubt.
Jedoch hat Pmant als er die problematischen Chars gefixt (https://github.com/Pmant/ioBroker.harmo … b5560d35bf) hat, aufgehört Blanks mit Underscores zu ersetzen.
Ich warte mal auf eine Antwort in meinem Issue (https://github.com/ioBroker/ioBroker.admin/issues/329).
Wenn Blanks nicht gerne gesehen werden, kann man die natürlich einfach wieder mit Underscores ersetzen.
beste Grüße
fox