ioBroker Forum


Nutzungsbedingungen |Datenschutzrichtlinie
Cloud |Dokumentation
Aktuelle Zeit: 20.02.2018, 10:14

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 12.02.2018, 22:36 
Offline

Registriert: 12.02.2018, 15:23
Beiträge: 2
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


Nach oben
   
BeitragVerfasst: 12.02.2018, 23:06 
Offline
starter

Registriert: 07.05.2017, 18:08
Beiträge: 74
Hat sich bedankt: 17 Mal
Danksagung erhalten: 6 Mal
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.


Nach oben
   
BeitragVerfasst: 13.02.2018, 00:45 
Offline
guru
Benutzeravatar

Registriert: 24.02.2015, 19:40
Beiträge: 2114
Hat sich bedankt: 102 Mal
Danksagung erhalten: 137 Mal
MartinHe hat geschrieben:
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:
Code:
// 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.

_________________
Intel NUC (NUC6i5SYH) -> ESXi 6 > VM Ubuntu 16.04 ioBroker (redis) > VM Ubuntu 16.04 mySQL
Slave: Pi 3 ohne SD (Boot USB SLC)
CCU2, hue 2, DS 1512+, WeMos, Harmony Hub, Alexa
Adapter: Fritzbox / Skripte: dynamic hue, Bluetooth Scanner, WIFFI-wz


Nach oben
   
BeitragVerfasst: 13.02.2018, 17:02 
Offline

Registriert: 12.02.2018, 15:23
Beiträge: 2
ruhr70 hat geschrieben:
MartinHe hat geschrieben:
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:
Code:
// 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.


Nach oben
   
BeitragVerfasst: 13.02.2018, 17:54 
Offline
guru

Registriert: 09.06.2015, 16:03
Beiträge: 2148
Wohnort: Berlin
Hat sich bedankt: 3 Mal
Danksagung erhalten: 277 Mal
Es fehlt noch der setState() und es ist ein Leerzeichen zuviel.
Code:
function main() {
    var test1 = 10;
    setState('test.test1', test1, true);
}

_________________
Versionen für RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs:
Jessie lite, Kernel 4.4.13-v7+, hmcon 0.18, node 6.11.1, Host 1.1.2, Admin 2.0.4, Javascript 3.4.0, HM-RPC 1.4.14, Email 1.0.2, History 1.6.3, Flot 1.6.1, Vis 0.15.5, Web 2.1.3


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu Forum:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de