NEWS
Variables html Widget
-
Hallo ich möchte meine "alte" Solaranlage in die Vis einbinden.
Bei der alten Solaranlage werkelt ein SolarLog 500.
Dieser zeigt die Tageswerte unter folgender Adresse an:
src="http://192.168.XXX.XXX/visu.html?mode=0"
Soweit funktioniert das auch. Aber wenn ich jetzt den Mode auf Monatswerte (1) stellen möchte klappts schon nicht mehr.
Ich habe einen Datenpunkt, mit dem ich den gewollten Mode abrufen kann.
Und folgendes in das HTML Widget geschrieben:<div style> <iframe style="transform-origin: 0px 0px 0px; transform: scale(0.64); width: 1100px; height: 670px;" src="http://192.168.XXX.XX/visu.html?mode={x:parseInt(0_userdata.0.FromVis.pv_anlage_alt_mode);x}" name="iFrame" scrolling="no"></iframe> </div>
wie nicht anderst zu erwarten, kommt undefined.
Ich habe auch schon folgende Passage versucht, mit überschaubarem Erfolg:<div style> <iframe style="transform-origin: 0px 0px 0px; transform: scale(0.64); width: 1100px; height: 670px;" src="http://192.168.XXX.XXX/visu.html?mode={0_userdata.0.FromVis.pv_anlage_alt_mode}" name="iFrame" scrolling="no"></iframe> </div>
pv_anlage_alt_mode ist eine Number (integer) Variable.
Kann mir jemand helfen?
Das wurde auch schon ausprobiert:<div style> <iframe style="transform-origin: 0px 0px 0px; transform: scale(0.64); width: 1100px; height: 670px;" src="http://192.168.XXX.XXX/visu.html?mode={parseInt(0_userdata.0.FromVis.pv_anlage_alt_mode)}" name="iFrame" scrolling="no"></iframe> </div>
-
die notation beim 1. und 2. beispiel ist falsch.
les dir die beschreibung dazu nochmal durchhast du mal mit den web developer tools im runtime mode das html angeschaut, was beim 2. beispiel genau erzeugt wird?
das ist noch das richtigere. leider gibt es keinen int oder trim befehl, falls da ein text mit einem leerzeichen ankommt. das zerhaut dir dann die url.binding hat 2 modis.
- da wird am anfang einfach nur der datenpunkt genannt, ohne doppelpunkt und ohne variable, danach darf man mit ; getrennt dann bestimmte befehle verwenden, die in der doku aufgezählt sind.
- datenpunkt mit : und variable ist der javascript-modus. d.h. jeder nachfolgende befehl wird in ein javascript befehl umgewandelt, der aber bestimmten bedingungen folgt.
wenn der datenpunkt in die variable eingelesen wird, darfst du noch keine funktion anwenden, das kannst du dann erst mit der variable machen.
korrekt für dich wäre dann
{x:0_userdata.0.FromVis.pv_anlage_alt_mode;parseInt(x)}
-
@oliverio Hallo OliverIO, habe im Browser mal das Debugging durchgeführt.
wenn ich ein Basic Html verwende und folgendes unter HTML: eintrage sehe ich ein Bild:<div style> <iframe style="transform-origin: 0px 0px 0px; transform: scale(0.63); width: 900px; height: 610px;" src="http://192.168.XXX.XXX/visu.html?mode=0" name="iFrame" scrolling="no"></iframe> </div>
Mode 0 ist der Tagesmodus (Summe des Tages)
wenn mode=0 durch mode=1 ersetzt wird sehe ich die Monatswerte.Ersetze ich aber den Code durch folgende Passage (variabler mode) :
<div style> <iframe style="transform-origin: 0px 0px 0px; transform: scale(0.63); width: 900px; height: 610px;" src="http://192.168.XXX.XXX/visu.html?mode={x:0_userdata.0.FromVis.pv_anlage_alt_mode;x}" name="iFrame" scrolling="no"></iframe> </div>
schon klappts nicht mehr.
Im Debug steht aber nix von x sondern ein Problem, dass ich mal wegen der Farbauswahl hatte:Error in eval[value]: {level:mihome-vacuum.0.consumable.filter; parseInt(level) < 10 ? "#FF0000" : parseInt(level) < 30 "#FFBB33" : "#87EC2E"}
Ich blicks nicht
-
-
@codierknecht Jetzt sieht es besser aus!
Ich hatte die zweite Variante versucht, die klappte nicht.
Mit parseInt() klappt es!!
DAAAAAANKE -
@hunterhb sagte in Variables html Widget:
Mit parseInt() klappt es!!
Der Dank geht dann aber an @OliverIO
-
@codierknecht An beide, ohne Dich hätte ich den ersten Vorschlag nicht mehr probiert, weil ich der Meinung war, ich hab das schon getestet.