NEWS
[gelöst] hqwidget Checkbox in Vis per Skript bearbeiten
-
-
Danke schon mal für die Links. Ich habe nun folgenden Code in Vis unter Skripte eingefügt.
on ({ id: "0_userdata.0.Meine_Geräte.Nordlichter", change: 'ne', val: true }, function(){ setStateDelayed('0_userdata.0.Meine_Geräte.Nordlichter', false, 5000, true); } );
Es tut sich aber nichts. Wenn ich den selben Code im JavaScript Adapter ausführen lasse, funktioniert alles. Wo ist mein Denkfehler?
Grüße!
-
@Karel-Puhli https://www.iobroker.net/#de/documentation/viz/app.md
Da ist ein Beispiel hinterlegt vielleicht hilft es?$document.on..... ?
var viewOrder = ['View 1','View 2','View 3','View 4','View 5','View 6']; $(document).on('swipe', function (event){ event.preventDefault(); if (event.originalEvent.touch.delta.x < -200 && event.originalEvent.touch.delta.y > -30 && event.originalEvent.touch.delta.y < 30) { if (viewOrder.indexOf(vis.activeView) < viewOrder.length - 2) vis.changeView(viewOrder[viewOrder.indexOf(vis.activeView) + 1]); else vis.changeView(viewOrder[0]); } else if (event.originalEvent.touch.delta.x > 200 && event.originalEvent.touch.delta.y > -30 && event.originalEvent.touch.delta.y < 30) { if (viewOrder.indexOf(vis.activeView) > 0) vis.changeView(viewOrder[viewOrder.indexOf(vis.activeView) - 1]); else vis.changeView(viewOrder[viewOrder.length - 1]); } });
-
Man muss anscheinend mit den Scripten bezogen auf das HTML-Objekt arbeiten. In dem Moment der Bearbeitung ist ja die Seite eine HTML-Seite!
var objTag = document.getElementById("w00072");
-
-
Vielen lieben Dank! Ich versuche mal hier was passendes heraus zu suchen!
-
-
Man muss anscheinend mit den Scripten bezogen auf das HTML-Objekt arbeiten. In dem Moment der Bearbeitung ist ja die Seite eine HTML-Seite!
var objTag = document.getElementById("w00072");
Das war der entscheidende Tip!
Du kannst aus den Projekt-Skripten nicht auf die Objekte zugreifen. Die Vis-Skripte laufen im Browser, nicht auf dem Server, wo sich die Objekte befinden.
-
@Karel-Puhli Wenn es funktioniert, stellst du bitte das Script und die entsprechenden Widget Bilder zur Verfügung. Dann können andere das nachvollziehen. Danke.
-
Naja, somit kann ich eigentlich die Eingangsfrage mit nein beantworten. Das scheint dann tatsächlich nur über ein Javascript / Ereignis / Datenpunkt zu laufen.
Für den Reiter Skripte in Vis kommen beispielsweise folgende Möglichkeiten in Betracht.
<!DOCTYPE html> <html> <div id="div1"> <p onclick="on()" id="p1">Hallo</p> <p>ihr lieben</p> </div> </html>
Ein HTML Widget
function on() { document.getElementById("p1").style.backgroundColor = ("yellow"); document.getElementById("w00048").style.backgroundColor = ("blue"); }
Das Skript reagiert auf das Klickevent onclick und setzt dann den <p>Hallo auf gelb und das ganze Widget auf blau.