NEWS
Script und Anbindung im VIS
-
Hallo, ich bin recht neu hier und nutze Homematic mit CCU. Mir gefällt allerdings die Visualisierung auf Tablet total super. In Java und Java-script kenne ich mich recht gut aus , aber ich brauche hier mal kurz ein "Anlauftip"… Wenn ich im Script mit "createState" was erstelle so kann ich das in der VIS auch abfragen. Jedoch gelingt es mir nicht eine einzelne Funktion über eine Schaltfläche aus der VIS aufzurufen ...
Ein Gerät über setState anzusprechen kein Problem. Wenn ich aber eine Taste im VIS anlege und mit dieser eine Funktion (z.B. Rollo Wohnzimmer herunter fahren (funktion rolloAB) dann bekomme ich das nicht hin. Ich möchte aber nur die Funktion ansprechen, in der dann das setState für das Rollo steht, nicht direkt das Gerät.
Suche deshalb ein Beispiel inkl. VIS.
Danke LG EWA
-
Hallo EWA,
was du suchst ist
on({id: deinObjekt}, function(){ })
Und http://www.iobroker.net/docu/?page_id=5385&lang=de gibt es eine sehr Ausführliche Einführung in die Programmierung mit ioBroker und JS.
-
..oh vielen Dank. Deine Lösung klappt, mein Problem war noch, dass ich kein neues Objekt angelegt habe mit dem entsprechenden namen. Nun kann ich zugreifen und mir mienen "virtuellen Stop-Schalter" anlegen und mit Script darauf zu greifen. Klappt perfekt.
Da ich nun meine ganzen Objekte einfach anlege , würde mir der übersichtshalber gefallen eine seperate Mappe anzulegen (z.B. eigene Objekte). Gibt es eine Möglichkeit in der Objektansicht eine eigene Mappe anzulegen oder lege ich die Objekte im scriptOrdner an, wobei mir erstes besser gefallen würde.
Siehe Bildanhang
3390_script.jpg -
Gibt es eine Möglichkeit in der Objektansicht eine eigene Mappe anzulegen oder lege ich die Objekte im scriptOrdner an, `
Im Ordner 'javascript.0' ist es weniger anfällig für Fehler: Ein Ordner in der Wurzel benötigt die Ergänzung '.N' (N für Ziffer). Wenn eigener Ordner in der Wurzel, dann bitte als 'eigene_Objekte.0', denn Leerzeichen in IDs können Probleme machen. Unter diesem Ordner können beliebige Objekte/Datenpunkte erzeugt werden. -
Hallo, bei Benutzung von createState() landen sie im Ordner 'JavaScript.INSTANZ.'
Durch Einfügen von Punkten im Namen kannst du eine Ordnerstruktur bauen.
Z.B. Objektname = "javascript.0.Ordner.Unterodner.Datenpunkt"
Gruß
Pix
-
super Dank euch beiden… ja perfekt , werde mir einen Ordner anlegen unter javascript.0 , dann ist auch die Zugeghörigkeit gleich ersichtlich...
Der "Punkt" und die Nummerierung war die Lösung und danke für die schnelle Erklärung
-
@pix:Durch Einfügen von Punkten im Namen kannst du eine Ordnerstruktur bauen.
Z.B. Objektname = "javascript.0.Ordner.Unterodner.Datenpunkt" `
Genauer:createState('Ordner.Unterordner.Datenpunkt', Init-Wert, { type: 'boolean', read: true, write: false });
unter der JS-Instanz 0 erzeugt eine Datenpunkt mit dem Namen "Ordner.Unterordner.Datenpunkt" und der ID "javascript.0.Ordner.Unterodner.Datenpunkt".