NEWS
Datenpunkt per VIS-Script ändern
-
Hi,
ich habe in einem früheren Topic gesehen, dass man das click-Ereignis eines Widgets auf eine eigene Routine umleiten kann
function onClick() { alert("Hallo Welt"); var s1 = getState("vis.0.data01").val; alert(s1); } function enableClick(id) { var $id = $("#" + id); if (!$id.length) return setTimeout(enableClick, 300, id); $id.click(onClick); } if (!vis.editMode) enableClick('w00002');
Leider gelingt es mir nicht, auf Datenpunkte zuzugreifen (siehe Zeile 3, der Datenpunkt existiert auch). Was mache ich falsch?
Joerg
-
@joerg55 sagte in Datenpunkt per VIS-Script ändern:
function onClick() { alert("Hallo Welt"); var s1 = getState("vis.0.data01").val; alert(s1); } function enableClick(id) { var $id = $("#" + id); if (!$id.length) return setTimeout(enableClick, 300, id); $id.click(onClick); } if (!vis.editMode) enableClick('w00002');
an dieser stelle solltest du keine datenpunkte anlegen.
Die einzigen Bereiche, wo du selbst datenpunkte anlegen solltest ist0_userdata.0 und
javascript.0Weiterhin funktionieren die Befehle in vis nicht exakt so wie im javascript-Adapter, da du dich ja im browser befindest.
Daher musst du den Befehl asynchron erst an den Server senden:<script> function onClick() { vis.conn._socket.emit('getState', "0_userdata.0.select", function (err, state) { alert(state.val); }); } function enableClick(id) { var $id = $("#" + id); if (!$id.length) return setTimeout(enableClick, 300, id); $id.click(onClick); } if (!vis.editMode) enableClick('w00011'); </script>
-
prima, das funktioniert. Schönen Dank.
Ich sehe häufig, dass mit dem ioBroker und seiner Visualisierung alle erdenklichen Varianten von Smarthome-Themen sehr ansprechend realisierbar sind. Ich würde da gern ein bißchen tiefer einsteigen, um eigene Vorstellungen besser umsetzen zu können. Leider finde ich nirgends entsprechende Dokumentation. Gibt es die irgendwo?
Bezogen auf obiges Thema hätte ich noch die Frage, wie ich innerhalb meiner onClick-Funktion auf die visible-Eigenschaft von anderen Widgets des Projekts zugreifen kann.
Hast du da noch einen Tipp für mich?
-
@joerg55 sagte in Datenpunkt per VIS-Script ändern:
prima, das funktioniert. Schönen Dank.
Ich sehe häufig, dass mit dem ioBroker und seiner Visualisierung alle erdenklichen Varianten von Smarthome-Themen sehr ansprechend realisierbar sind. Ich würde da gern ein bißchen tiefer einsteigen, um eigene Vorstellungen besser umsetzen zu können. Leider finde ich nirgends entsprechende Dokumentation. Gibt es die irgendwo?
Bezogen auf obiges Thema hätte ich noch die Frage, wie ich innerhalb meiner onClick-Funktion auf die visible-Eigenschaft von anderen Widgets des Projekts zugreifen kann.
Hast du da noch einen Tipp für mich?
welches visible`?
das css visible?
oder eines der vis-einstellungen zu einem widget?
im browser in der console findest du das huaptobjekt von vis, nämlich vis.
das kannst mal durchschauendie vis Einstellungen für eine view und den darin enthaltenen widgets findest du unter
vis.views[viewname]widgets[widgetID]
Änderungen daran werden allerdings nicht übernommen.
da musst du direkt auf css gehen -
@oliverio said in Datenpunkt per VIS-Script ändern:
Änderungen daran werden allerdings nicht übernommen.
da musst du direkt auf css gehenOk. Ich meinte die Sichtbarkeit eines Widgets im 'Nicht-Edit-Modus' also das css-visible. Hintergrund war die Idee, ein Klick im View zu nutzen, um Bilder ein- bzw. auszublenden, ohne dabei den 'Umweg' über einen Datenpunkt zu gehen.
Besten Dank, Gruß Joerg
-
@joerg55 said in Datenpunkt per VIS-Script ändern:
@oliverio said in Datenpunkt per VIS-Script ändern:
Änderungen daran werden allerdings nicht übernommen.
da musst du direkt auf css gehenOk. Ich meinte die Sichtbarkeit eines Widgets im 'Nicht-Edit-Modus' also das css-visible. Hintergrund war die Idee, ein Klick im View zu nutzen, um Bilder ein- bzw. auszublenden, ohne dabei den 'Umweg' über einen Datenpunkt zu gehen.
Besten Dank, Gruß Joerg
Das lässt sich sehr gut mit jquery abfragen und ändern:
$(selektor).css('visibility','none');
-
@oliverio said in Datenpunkt per VIS-Script ändern:
$(selektor).css('visibility','none');
ja, das ist genau das, was ich gesucht habe. Ich habe im Moment leider noch keinen wirklichen Plan zu dem gesamten web-Thema (html, css, dom, jquery...). Ich hoffe, die Community bleibt geduldig mit mir
Besten Dank, Joerg