NEWS
Fehler nach Update js-controller
-
HAT EIGENTLICH JEMAND IN DEN EINGANGS-POST GESCHAUT?? `
Ja. Bei dir im Skript ist ein Fehler drin. Habe ich neulich gepostet nur finde ich nicht wo :lol:Du musst eine Zeile mit getState gegen eine andere umtauschen, wo erst geprüft wird ob State existiert.
getState(id).val blablbal
mit so was ergänzen:
if (!getState(id)) return oder continue;
Wie sieht dein Kode aus?
-
Weiterhin bedeutet die Meldung, dass ein Wert nicht bearbeitet werden kann nicht zwangsläufig,dass der entsprechende Adapter nicht funktioniert, auch der zu bearbeitende Wert kann falsch sein (hast du dazu mal im debug Modus nachgesehen welcher das ist?), Oder wegen der falschen node Version kommt dieser Wert falsch an, oder….. `
Siehst du, womit wir wieder beim Thema wären;).
Danke.
Aber warum sollte der zu bearbeitende Wert JETZT plötzlich falsch sein, wenn dieses Script bis zum Update korrekt gelaufen ist?
Bitte nicht böse sein, es ist auch ganz lieb von dir dass du helfen möchtest, aber wenn du bei Windows raus bist, hilft das nicht wirklich bei meinem Problem.
…und wenn dann auch noch einfach so ein völlig anderes Thema (nicht von dir) unter gemischt wird ist das auch nicht sehr hilfreich.
-
Siehst du, womit wir wieder beim Thema wären;).
…und wenn dann auch noch einfach so ein völlig anderes Thema (nicht von dir) unter gemischt wird ist das auch nicht sehr hilfreich `
Leider bist du nicht der einzige User der einen
> Fehler nach Update js-controller
hat.Und hier hat niemand einen Privatthread.
Gruß
Rainer
-
aber wenn du bei Windows raus bist, hilft das nicht wirklich bei meinem Problem. `
Noch wissen wir ja nicht, ob es an Windows liegt. Warum beantwortest du nicht die Fragen?Aber warum sollte der zu bearbeitende Wert JETZT plötzlich falsch sein, wenn dieses Script bis zum Update korrekt gelaufen ist? `
Weil er z.B. schon immer falsch war, aber frühere Versionen des Javascript Adapters diesen Fehler haben durchrutschen lassen.Genaueres kann man erst sagen, wenn wir mehr Informationen haben.
Gruß
Rainer
-
Leider bist du nicht der einzige User der einen
Fehler nach Update js-controller
hat.
Und hier hat niemand einen Privatthread. `
Dafür habe ich auch vollstes Verständnis, und damit ioBroker weiter so funktioniert wie es bisher funktioniert hat ist auch jede Meldung wichtig.
Das bringt trotzdem nichts, wenn einer einen Fehler in der Script-Ausführung hat, ein anderer mit dem Web-Interface,
und man das in einem einzigen Thema schön zusammenwürfelt.
…
> Warum beantwortest du nicht die Fragen?
Hab ich nicht?Im ersten Post ist die genaue Fehlermeldung.
Ich habe jetzt debug aktiviert und schau mir das mal eine Weile an.
` > Weil er z.B. schon immer falsch war, aber frühere Versionen des Javascript Adapters diesen Fehler haben durchrutschen lassen.
Genaueres kann man erst sagen, wenn wir mehr Informationen haben. `
Sobald ich dieses Script aktiviere kommen Fehlermeldungen:
/* System Homematic Servicemeldungen Skript erstellt Variablen Service.Homematic.* http://forum.iobroker.org/viewtopic.php?f=21&t=914#p9153 erstellt: 03.08.2015 von paul53 - angepasst von pix */ // Service Meldungen createState('Servicemeldungen.Homematic.Anzahl', 0); // Anzahl der Service-Alarme createState('Servicemeldungen.Homematic.Text', ""); // Service-Alarme, als Variable unter Javascript.0 anlegen var SelectorUNREACH = $('channel[state.id=*.UNREACH]'); var SelectorLOWBAT = $('channel[state.id=*.LOWBAT]'); // var SelectorSTICKY_UNREACH = $('channel[state.id=*.STICKY_UNREACH]'); var SelectorCONFIG_PENDING = $('channel[state.id=*.CONFIG_PENDING]'); function countService(obj) { var anzahl = 0; var text = ""; function count(id) { var status = getState(id).val; // Zustand abfragen (jedes Element) if (status === true) { // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt text = text + id + " -> " + getObject(id).common.name +", "; // Zu String hinzufügen ++anzahl; // Zählt die Anzahl der Service-Alarme } } SelectorUNREACH.each(function (id, i) { count(id); }); // SelectorSTICKY_UNREACH.each(function (id, i) { // count(id); // }); SelectorLOWBAT.each(function (id, i) { count(id); }); SelectorCONFIG_PENDING.each(function (id, i) { count(id); }); // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon Service zutreffend) ausgegeben log("Homematic-Servicemeldungen: " + text); log("Anzahl Homematic-Servicemeldungen: " + anzahl); // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert if (!anzahl) { text = "kein Service-Alarm"; } setState("Servicemeldungen.Homematic.Text", text); // Schreibt die IDs der Datenpunkte mit Service Meldung setState("Servicemeldungen.Homematic.Anzahl", anzahl); // Schreibt die aktuelle Anzahl der Service Meldungen } SelectorUNREACH.on(function(obj) { // bei Zustandänderung *.UNREACH in allen Gewerken countService(obj); }); // SelectorSTICKY_UNREACH.on(function(obj) { // bei Zustandänderung *.UNREACH in allen Gewerken // countService(obj); // }); SelectorLOWBAT.on(function(obj) { // bei Zustandänderung *.LOWBAT in allen Gewerken countService(obj); }); SelectorCONFIG_PENDING.on(function(obj) { // bei Zustandänderung *.CONFIG_PENDING in allen Gewerken countService(obj); }); // alternative Abfrage jede Minute schedule("*/15 * * * *", function () { countService(); }); // Ausführung bei Scriptstart countService();
-
HAT EIGENTLICH JEMAND IN DEN EINGANGS-POST GESCHAUT?? `
Ja. Bei dir im Skript ist ein Fehler drin. Habe ich neulich gepostet nur finde ich nicht wo :lol:Du musst eine Zeile mit getState gegen eine andere umtauschen, wo erst geprüft wird ob State existiert.
getState(id).val blablbal
mit so was ergänzen:
if (!getState(id)) return oder continue;
Wie sieht dein Kode aus? `
DANKE Bluefox!!
Das ist doch wenigstens konstruktiv:).
Dann werden sicher noch andere diesen Fehler haben.
Ist ja das Script hier aus dem Forum;).
-
DANKE, funktioniert jetzt Fehlerfrei.
-
Stellt sich natürlich die Frage, warum ein Datenpunkt des hm-rpc-Adapters zwar ein object (statischer Teil des Datenpunktes - zu sehen im Reiter "Objekte") aber kein state (dynamischer Teil des Datenpunktes - zu sehen im Reiter "Zustände") hat. Auch wenn state noch keine gültigen Werte hat, da noch nie etwas von der CCU gesendet wurde, sollte doch die Struktur vorhanden sein.
EDIT: http://forum.iobroker.net/viewtopic.php?f=36&t=3239&p=30151#p30151 hat Bluefox geschrieben
@Bluefox:Objekt ist da, aber Zustand vom Objekt wurde nie beschrieben und existiert nicht. `
Es kann also auch Datenpunkte ohne state geben (wenn diese noch nie geschrieben wurden), was bedeutet, dass man in Schleifen, in denen solche Datenpunkte abgefragt werden, den Test auf die Existenz des state machen muss. -
Also wie es aussieht gibt es da entweder ein Problem mit CUX oder mit dem hm-rpc.2
Ich habe auf jeden Fall mal CUX aktualisiert, aber die entsprechenden Datenpunkte werden vom ioBroker nicht erkannt bzw. nicht gefunden.
javascript.0 2016-07-11 14:00:52.494 warn javascript.0 State "hm-rpc.2.CUX4000007.0.UNREACH" not found javascript.0 2016-07-11 14:00:52.494 warn javascript.0 State "hm-rpc.2.CUX4000005.0.UNREACH" not found javascript.0 2016-07-11 14:00:52.494 warn javascript.0 State "hm-rpc.2.CUX4000004.0.UNREACH" not found javascript.0 2016-07-11 14:00:52.494 warn javascript.0 State "hm-rpc.2.CUX4000003.0.UNREACH" not found javascript.0 2016-07-11 14:00:52.494 warn javascript.0 State "hm-rpc.2.CUX4000002.0.UNREACH" not found javascript.0 2016-07-11 14:00:52.494 warn javascript.0 State "hm-rpc.2.CUX4000001.0.UNREACH" not found javascript.0 2016-07-11 14:00:52.494 warn javascript.0 State "hm-rpc.2.CUX4000008.0.UNREACH" not found javascript.0 2016-07-11 14:00:52.494 warn javascript.0 State "hm-rpc.2.CUX1000001.0.UNREACH" not found
Bei den Objekten im ioBroker-Admin sind die entsprechenden Datenpunkte vorhanden.
-
Nochmal neu:
npm cache clean
iobroker stop
iobroker update
iobroker upgrade (nicht neues)
reboot
8081 ist weiterhin tot.
Das System läuft aber soweit. sql adapter, flot…
Auch im Log ist kein Fehler ersichtlich.
Gruß
Holger `
Aus irgendeinem Grund hat sich der Admin Adpater auf Disabled gestellt.
Mit dem hier:
http://www.iobroker.net/docu/?page_id=3 … ter_laeuft
Fehler gefunden und behoben. Keine Ahnung, was beim Upgrade da schief lief.
Danke und Gruß
Holger
-
Wenn wir jetzt nur glückliche User haben - kann dann der Thread als gelöst markiert werden?
Gruß
Rainer
-
Wenn wir jetzt nur glückliche User haben - kann dann der Thread als gelöst markiert werden?
Gruß
Rainer `
Von meiner Seite, gerne.
Wie man den Admin checken kann, habe ich mir jetzt germerkt
Danke und Gruß
Holger
-
Hallo,
ich wecke mal den Thread wieder auf - ist ja eh noch nicht als gelöst markiert und mein Problem passt zum Eingangsgpost.
Ich habe jetzt mal dieses Script welches Servicemeldungen zählt bei mir implementiert und erhalt habe die gleiche Fehlermeldung:
javascript.0 2017-02-05 23:15:00.916 warn javascript.0 State "hm-rpc.0.MEQ0690365.0.CONFIG_PENDING" not found
Das Eigenartige ist dass auch die Prüfung, ob der Zustand existiert wie von Bluefox vorgeschlagen bei mir nicht hilft. Ich habe mein Script wie folgt angepasst:
function count(id) { if (!id.match("[\\.][1-9][\\.]")) { log('1: ' + getState(id)); if (!getState(id)) return; log('2: ' + getState(id).val);
und erhalte damit folgende Logausgabe:
`2017-02-05 23:15:00.791 - [32minfo[39m: javascript.0 script.js.InArbeit.HM_Servicemeldungen: 1: [object Object] 2017-02-05 23:15:00.791 - [33mwarn[39m: javascript.0 State "hm-rpc.0.LEQ0411469.0.CONFIG_PENDING" not found 2017-02-05 23:15:00.791 - [33mwarn[39m: javascript.0 State "hm-rpc.0.LEQ0411469.0.CONFIG_PENDING" not found 2017-02-05 23:15:00.791 - [32minfo[39m: javascript.0 script.js.InArbeit.HM_Servicemeldungen: 2: null 2017-02-05 23:15:00.806 - [33mwarn[39m: javascript.0 State "hm-rpc.0.MEQ0197597.0.CONFIG_PENDING" not found 2017-02-05 23:15:00.806 - [32minfo[39m: javascript.0 script.js.InArbeit.HM_Servicemeldungen: 1: [object Object] 2017-02-05 23:15:00.806 - [33mwarn[39m: javascript.0 State "hm-rpc.0.MEQ0197597.0.CONFIG_PENDING" not found 2017-02-05 23:15:00.806 - [33mwarn[39m: javascript.0 State "hm-rpc.0.MEQ0197597.0.CONFIG_PENDING" not found 2017-02-05 23:15:00.806 - [32minfo[39m: javascript.0 script.js.InArbeit.HM_Servicemeldungen: 2: null 2017-02-05 23:15:00.806 - [33mwarn[39m: javascript.0 State "hm-rpc.0.MEQ0690365.0.CONFIG_PENDING" not found 2017-02-05 23:15:00.806 - [32minfo[39m: javascript.0 script.js.InArbeit.HM_Servicemeldungen: 1: [object Object] 2017-02-05 23:15:00.806 - [33mwarn[39m: javascript.0 State "hm-rpc.0.MEQ0690365.0.CONFIG_PENDING" not found 2017-02-05 23:15:00.806 - [33mwarn[39m: javascript.0 State "hm-rpc.0.MEQ0690365.0.CONFIG_PENDING" not found 2017-02-05 23:15:00.806 - [32minfo[39m: javascript.0 script.js.InArbeit.HM_Servicemeldungen: 2: null 2017-02-05 23:15:00.806 - [32minfo[39m: javascript.0 script.js.InArbeit.HM_Servicemeldungen: 1: [object Object] 2017-02-05 23:15:00.806 - [32minfo[39m: javascript.0 script.js.InArbeit.HM_Servicemeldungen: 2: false[/code]` Das scheint mir so, als ob die Prüfung an sich schon einen Fehler wirft, aber trotzdem erstmal ein Object zurückgibt und somit nicht greift und wieder in den Fehler läuft. Bei den States wo zwischen Log1 und Log2 kein Fehler kommt wurde der Datenpunkt schon mal beschrieben und somit ist alles OK. Bei den anderen DP's gibt .val eben "null" zurück was ja eigentlich IMO korrekt ist , aber warum kommen dann die Fehlermeldungen vom JS-Adapter?