NEWS
Wie die Ausgabe eines Scriptes in der VIS anzeigen
-
Hallo,
ich bin ganz neu hier, fange gerade mit ioBroker an.
Ich habe schon Erfahrung mit EDOMI, will aber auf ioBroker umsteigen.
Nun meine Frage:
Wenn ich ein ganz einfaches Script schreibe:
var test1 = 10;
Wie kann ich dann in der VIS diese Variable ausgeben?
Wenn ich eine Ausgabefeld nehme, kann ich ja nur den Scriptnamen auswählen, aber es wird dann nichts angezeigt.
Script ist natürlich gespeichert und gestartet.
Danke für die Hilfe
Martin
-
warum schreibst du den wert der variablen nicht über dein script in einen datenpunkt mit setState("pfad-zum-datenpunkt", test1) und lässt den inhalt des datenpunkts dann in vis z.b. mit dem basic string widget anzeigen, so wird das eigentlich gemacht
den datenpunkt musst du entweder vorher manuell unter objekte (z.b. unter javascript.0) neu anlegen oder mit createState per script erstellen lassen. In der Doku vom Javascript Adapter (auf das Fragezeichen neben dem Javascript Adapter in der Adapterliste klicken) ist alles erklärt.
-
Nun meine Frage:
Wenn ich ein ganz einfaches Script schreibe:
var test1 = 10;
Wie kann ich dann in der VIS diese Variable ausgeben? `
Vis greift auf die Datenpunkte zu, die von den Adaptern oder Deinen Skripten angelegt werden.
Datenpunkte könne auch von Hand angelegt werden. Ich mache dies immer im Skript.
Für Dein Beispiel:
// Datenpunkt anlegen unter javascript.0.test.test1 createState("test.test1", 0, { name: 'Testdatenpunkt', desc: 'Die Beschreibung des Testdatenpunkts', type: 'number', unit: '', role: 'value' }); function main() { var test 1 = 10; } // mit der Verarbeitung des Skripts etwas warten, damit der erste Skriptstart keinen Fehler bringt // wenn der Datenpunkt noch nicht angelegt ist setTimeout(main, 500);
Den Datenpunkt javascript.0.test.test1 kannst Du dann in VIS auswählen und visualisieren.
-
Nun meine Frage:
Wenn ich ein ganz einfaches Script schreibe:
var test1 = 10;
Wie kann ich dann in der VIS diese Variable ausgeben? `
Vis greift auf die Datenpunkte zu, die von den Adaptern oder Deinen Skripten angelegt werden.
Datenpunkte könne auch von Hand angelegt werden. Ich mache dies immer im Skript.
Für Dein Beispiel:
// Datenpunkt anlegen unter javascript.0.test.test1 createState("test.test1", 0, { name: 'Testdatenpunkt', desc: 'Die Beschreibung des Testdatenpunkts', type: 'number', unit: '', role: 'value' }); function main() { var test 1 = 10; } // mit der Verarbeitung des Skripts etwas warten, damit der erste Skriptstart keinen Fehler bringt // wenn der Datenpunkt noch nicht angelegt ist setTimeout(main, 500);
Den Datenpunkt javascript.0.test.test1 kannst Du dann in VIS auswählen und visualisieren. `
Danke, die Info hat mir gefehlt.
So klappt es super.
-
Es fehlt noch der setState() und es ist ein Leerzeichen zuviel.
function main() { var test1 = 10; setState('test.test1', test1, true); }