NEWS
[gelöst]script fehler
-
anbei, ich habe eigentlich nichts geändert außer den Namen in der Kopf def.
var idFarbe = "javascript.0.VIS.hgfarbe"; var idAktor = "hm-rpc.0.NEQ1012485.1.FILLING_LEVEL"; createState(idFarbe, 'white', { def: 'white', type: 'string', role: 'text' }); function toVis(level) { var farbe = 'red'; if(level > 30) farbe = 'orange'; if(level > 60) farbe = 'green'; setState(idFarbe, farbe); } toVis(getState(idAktor).val); // Skriptstart on(idAktor, function(data) { toVis(data.state.val); });
-
Habe mir das gerade nach ioBroker kopiert: Bei mir liefert der Wert 32 die Farbe 'orange'.
var idFarbe = "javascript.1.Test.String"/*Test.String*/; var idAktor = "javascript.1.Test.Analog"/*Test.Analog*/; function toVis(level) { var farbe = 'red'; if(level > 30) farbe = 'orange'; if(level > 60) farbe = 'green'; setState(idFarbe, farbe); } toVis(getState(idAktor).val); // Skriptstart on(idAktor, function(data) { toVis(data.state.val); });
-
Hm…tja was nun... ich habe mal beim Aufruf "background" den Namen vom Script eingetragen (hintergrundfarbe) hier kommt aber auch rot raus. vielleicht liegt es ja an dem Datenpunkt, ich werde nochmal den Dimmer zum testen eintragen.
Sonst habe ich jetzt keine weitere Idee... :shock:
Gruß Jan
-
Wenn ich den Datenpunkt vom Dimmer nehme funktioniert es, waran kann das liegen?
-
waran kann das liegen? `
Vielleicht liefert der Datenpunkt keinen Wert vom Typ Zahl (number). Um das zu testen, füge mal ein Log ein.function toVis(level) { log('Level: ' + level + ' ' + typeof level); var farbe = 'red'; if(level > 30) farbe = 'orange'; if(level > 60) farbe = 'green'; log('Farbe: ' + farbe); setState(idFarbe, farbe); }
-
siehe LOG anbei…
5664_iob.jpg -
> getState "hm-rpc.0.NEQ.." not found
Der Datenpunkt existiert nicht oder der Befehl ist falsch geschrieben.Du hast hoffentlich nur die Funktion um die Logs ergänzt ?
EDIT: Das Skript mit zusätzlichem Log:
var idFarbe = "javascript.0.VIS.hgfarbe"; var idAktor = "hm-rpc.0.NEQ1012485.1.FILLING_LEVEL"; createState(idFarbe, 'white', { def: 'white', type: 'string', role: 'text' }); function toVis(level) { log('Level: ' + level + ' ' + typeof level); var farbe = 'red'; if(level > 30) farbe = 'orange'; if(level > 60) farbe = 'green'; log('Farbe: ' + farbe); setState(idFarbe, farbe); } toVis(getState(idAktor).val); // Skriptstart on(idAktor, function(data) { toVis(data.state.val); });
-
ja nur die eine Zeile….
var idFarbe = "javascript.0.VIS.hgfarbe"; var idAktor = "hm-rpc.0.NEQ1012485.1.FILLING_LEVEL"; /*var idAktor = "hm-rpc.0.NEQ1101537.1.LEVEL";*/ createState(idFarbe, 'white', { def: 'white', type: 'string', role: 'text' }); function toVis(level) { log('Level: ' + level + ' ' + typeof level); var farbe = 'red'; if(level > 30) farbe = 'orange'; if(level > 60) farbe = 'green'; setState(idFarbe, farbe); } toVis(getState(idAktor).val); // Skriptstart on(idAktor, function(data) { toVis(data.state.val); });
-
"not found" bedeutet, dass der Datenpunkt mit der ID "hm-rpc.0.NEQ1012485.1.FILLING_LEVEL" nicht existiert (nicht gefunden wurde).
-
Ich kann den Punkt doch sehen wenn ich ihn zum Beispiel mit ID hinzufüge, da wird mir sogar der aktuelle Wert in dieser Auswahl angezeigt.
Gesendet von iPhone mit Tapatalk
-
Ich kann den Punkt doch sehen wenn ich ihn zum Beispiel mit ID hinzufüge, da wird mir sogar der aktuelle Wert in dieser Auswahl angezeigt. `
Dann ersetze mal die ID durch die Auswahl (dann wird als Kommentar der Name hinzugefügt). Irgend etwas muss abweichend sein. -
Gehe mal in den Reiter "Zustände", filtere die ID nach FILLING_LEVEL und schaue den Wert, den Zeitstempel und die Zeit der letzten Änderung des Datenpunktes "hm-rpc.0.NEQ1012485.1.FILLING_LEVEL" an. Sind dort überall sinnvolle Werte ?
-
Wo ist das mit den Zuständen? Unter Admin?
Gesendet von iPhone mit Tapatalk
-
Wo ist das mit den Zuständen? `
Neben den Reitern "Adapter", "Instanzen", "Objekte" gibt es auch den Reiter "Zustände". Evtl. muss Du ihn erst aktivieren (Bleistift-Symbol rechts oben). -
Dass das Script funktioniert, sieht man bei Verwendung des anderen Datenpunktes mit der ID "hm-rpc.0.NEQ1101537.1.LEVEL". Manchmal passiert es, dass bei Start der hm-rpc-Instanz zwar ein Objekt angelegt wird, aber kein zugehöriger State. Dann wundert es mich allerdings, dass ein Wert zu dem Objekt existiert.
Um den fehlenden State zu erzeugen, kann man im Reiter "Objekte" per Hand einen Wert eingeben und abschicken.
-
Wo ist das mit den Zuständen?
Neben den Reitern "Adapter", "Instanzen", "Objekte" gibt es auch den Reiter "Zustände". Evtl. muss Du ihn erst aktivieren (Bleistift-Symbol rechts oben).
Hallo Paul , ich habe es zeitlich noch nicht geschafft weiter dAnach zu schauen, muss ich morgen mal gucken. Am vorbei rennen am PC habe ich nur gesehen das es einen Punkt Ereignisse gibt, meinst du diesen mit Zuständen?Gruß Jan
-
das es einen Punkt Ereignisse gibt, meinst du diesen mit Zuständen? `
Nein.
-
hallo Paul, sorry aber bei sieht das ganz anders aus das Menue, fehlt mir hier irgendwo noch eine Ansicht Einstellung?->siehe Bild
Gruß Jan
5664_iobroker.jpg -
Oops,
Gibt es bei Admin v3 die Zustände nicht mehr?
Ist mir noch gar nicht aufgefallen.
Der Inhalt des Reiters sollte schon länger in Objekte integriert werden.
Wahrscheinlich ist er das jetzt.
Gruß Rainer
-
Unter objekte sehe ich den Wert 30, aber es steht ja 30 %…
Sollte das % Zeichen ein Problem sein...?
5664_iobroker.jpg