NEWS
Übersicht der verfügbaren JS-Funktionen
-
Hallo ihr,
ich versuche mich ja weiterhin in JS für ioBroker einzuarbeiten. Das eigentliche JS geht ja, schwieriger ist es im Moment für mich die Nutzweise in ioBroker zu verstehen.
Ich möchte ein kleines Bild einblenden, wenn mindestens einer von 8 Fensterkontakten den State >0 hat.
Dazu wollte ich eine eigene Bool-Var verwenden, um dann diese in .vis mittels "Sichtbarkeit" in einen Static Widget zu nutzen.
8 Sensoren (einer im State>0) -> Setze Var auf true <- Wenn Var True, zeige widget an.
Ich muss ja vermutlich mittels "on/subscribe" die Status der Sensoren abfragen.
Ich habe es mit der Doku versucht, stoße aber sehr früh an generelle Probleme.
Beispiel:
Wenn ich funktionierenden Code…
... on({ id:'javascript.0.VIS.Kamera_Garten_Steuerung', change: 'any' }, function (data) { var steuerbefehl_garten = Kamera_Garten_Steuerung_url + data.newState.val; ...
umschreiben möchte, frage ich mich,
1.) woher die Funktion function (data) kommt? In der Doku gibt es auch noch z. B. function (obj), usw. Wie kann ich verstehen, wann ich welche nutzen muss und wie diese funktionieren?
2.) Wie eine ODER -Abfrage zu den 8 Sensoren aussieht? In der Doku wird schön die RegEx Möglichkeit gezeigt, leider kann ich diese nicht logisch nutzen, da diese 8 Sensoren bedingt durch ihre Namen keine eindeutige Filterung zulassen (es gibt noch etliche andere). Muss ich also ein "on" für jeden Adapter nutzen?
Danke für Eure Unterstützung.
Fitti
-
Hallo Fitti,
8 Sensoren (einer im State>0) -> Setze Var auf true <- Wenn Var True, zeige widget an. `
Das gab's hier schon mal:http://forum.iobroker.org/viewtopic.php?f=21&t=535
Die gesetzte Variable kann dann leicht in VIS weiterverwendet werden.
Gruß
Pix
-
Hi pix,
wieder vielen Dank. Es passt nicht 100%, da ich vier Räume habe, die ich abfrage. Aber das schreibe ich mir zurecht. Werde in jenem Thread noch nach einer eleganten Art nachfragen.
Aber die ersten Tests laufen mit einem Raum sehr gut.
Kann mir jemand bei der 1. Frage noch helfen?
Danke wie immer an alle,
Fitti
-
woher die Funktion function (data) kommt? In der Doku gibt es auch noch z. B. function (obj), usw. Wie kann ich verstehen, wann ich welche nutzen muss und wie diese funktionieren? `
on(pattern, function(dp) { ... });
deklariert eine Funktion, wobei im Beispiel dp der selbst gewählte lokale Name des an die Funktion übergebenen Objekts ist, so wie es in der javascript-Adapter-Doku beschrieben ist. Innerhalb der Funktion kann über den lokalen Namen auf die übergebenen Elemente zugriffen werden, z.B.
var x = dp.newState.val; // neuer Wert var n = dp.common.name; // Objekt-Name
Soll kein Objekt-Zugriff innerhalb der deklarierten Funktion erfolgen, kann der lokale Name auch entfallen:
on(pattern, function() { ... });
Im http://forum.iobroker.org/viewtopic.php?f=21&t=1208#p9958 wird anstelle von
var x = dp.newState.val;
die Funktion
var x = getState(id).val;
verwendet.
1632_wemo-fix.png -
In der Doku wird schön die RegEx Möglichkeit gezeigt, leider kann ich diese nicht logisch nutzen, da diese 8 Sensoren bedingt durch ihre Namen keine eindeutige Filterung zulassen (es gibt noch etliche andere). `
Das mag für die ID zutreffen. Da die Objektnamen selbst vergeben werden können, lässt sich ein eindeutiger Bestandteil (z.B. am Ende) der Namen für die 8 Sensoren sicherlich finden. -
…deklariert eine Funktion, ... `
Ohh man. Schon blöd eine Deklaration mit einem Call zu verwechseln. Vielen Dank - jetzt ist es etwas klarer. Da diese in den Beispielen immer den gleichen Namen hatten, dachte ich, es wird eine Funktion aufgerufen.Das mag für die ID zutreffen. Da die Objektnamen selbst vergeben werden können, lässt sich ein eindeutiger Bestandteil (z.B. am Ende) der Namen für die 8 Sensoren sicherlich finden. `
Leider nein. Ich habe den Sensoren logisch im Namen aufgebaut: typ_raum_name_eigenschaft. Das hat bisher auch gut für CCU Skripte gereicht.Da diese Sensoren auch in CCU-Skripten benutzt werden, möchte ich diese Namen nicht ändern.
Im Moment konzentriere ich mich primär bei ioBroker um die Anzeige-Möglichkeiten.
Da ich hier nicht an zwei Stellen die Gleiche Frage stellen möchte, verweise ich jetzt auf den anderen Thread, den Pix 4x weiter oben verlinkt hat. Da habe ich es genauer aufgeführt. Ich wäre Die natürlich sehr dankbar, wenn Du mir noch diesen "Filter" oder was auch immer erklären könntest.
Viele Grüße,
Fitti
-
Viele Grüße,
Pix `
Das ist mein Gruß! :lol:
859_adapter.jpg
859_host.jpg -