NEWS
[gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable
-
@chka Was muss ich im Skript ändern?
-
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
@chka Was muss ich im Skript ändern?
ich kann kein Javascript, aber eine Wandlung in Zahl, sollte helfen.
Oder am anderen Ende angreifen und
@chka sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
einfach alles auf mixed und gut
(wobei ich gar nicht weiss ob es mixed offiziell überhaupt noch gibt)
-
-
@pistus änder doch bitte einfach das objet in den type mixed oder number
-
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
sag ich doch
-
@chka
Ich habe das Script komplett auf Zahlen (numbers) umgestellt. Vor dem Start bitte die alten Datenpunkte löschen, da sie nun neu als Typ Number angelegt werden.// setState("javascript.0.Sonnenstand.HTML",'<img src="/vis.0/icons/Images/sun.png" height="50" width="50" style="float: left; margin: '+ y.toFixed() +'px 0px 0px '+x.toFixed()+'px;" >'); // /* System Sonnenstand {1} Sonne Azimut und Elevation in Variablen schreiben {1} erstellt: 06.07.2015 nach ioBroker Forum http://forum.iobroker.net/viewtopic.php?f=21&t=975&sid=6f0ba055de5f82eed6809424f49ca93b#p7635 */ var suncalc = require('suncalc'), result = getObject("system.adapter.javascript.0"), lat = result.native.latitude, long = result.native.longitude; createState('Sonnenstand.Elevation', 0, {type: 'number', unit: '°'}); createState('Sonnenstand.Azimut', 0, {type: 'number', unit: '°'}); createState('Sonnenstand.X', 0, {type: 'number', unit: 'px'}); createState('Sonnenstand.Y', 0, {type: 'number', unit: 'px'}); createState('Sonnenstand.HTML'); //Hier die Koordinaten einstellen var Xm = 500; //500 var Ym = 250; // 250 var rot = 90; // Winkel in dem Grundriss gegenüber Nord verdreht ist var r = 250; function Sonnenstand_berechnen () { var now = new Date(); //log("-----------------------------------------------"); // log("latitude : " + result.native.latitude,'info'); // log("longitude: " + result.native.longitude,'info'); var sunpos = suncalc.getPosition(now, lat, long); // log("sunpos: " + sunpos,'info'); var h = sunpos.altitude * 180 / Math.PI, a = sunpos.azimuth * 180 / Math.PI + 180; /** Formel: https://www-user.tu-chemnitz.de/~heha/viewchm.php/hs/SelfDXD.chm/directxgraphics/theorie/dg_ber.html radWinkel:= 40 / 180 * Pi; // radWinkel = 0.698131... x_koordinate:= cos( radWinkel ) * 5; // x_koordinate = 3,830222... y_koordinate:= sin( radWinkel ) * 5; // y_koordinate = 3,213938... **/ var azimuth = a.toFixed(); //sunpos.azimuth; var radWinkel =( azimuth -90 - rot )/ 180 * Math.PI; var x = (Math.cos(radWinkel)* r)+Xm; var y = (Math.sin(radWinkel) * r)+Ym; setState("javascript.0.Sonnenstand.Elevation",parseFloat(h.toFixed(1)),true); setState("javascript.0.Sonnenstand.Azimut",parseFloat(a.toFixed()),true); setState("javascript.0.Sonnenstand.X",parseFloat(x.toFixed()),true); setState("javascript.0.Sonnenstand.Y",parseFloat(y.toFixed()),true); // setState("javascript.0.Sonnenstand.HTML",'<img src="/vis/img/10_sun.png" height="50" width="50" style="float: left; margin: '+ y.toFixed() +'px 0px 0px '+x.toFixed()+'px;" >'); setState("javascript.0.Sonnenstand.HTML",'<img src="/vis/img/Weather-Sun-icon.png" height="50" width="50" vspace="'+ y.toFixed() +'" hspace="'+x.toFixed()+'">'); } schedule("* * * * *", Sonnenstand_berechnen); Sonnenstand_berechnen(); // bei Scriptstart
-
@martybr jup type anpassen
type type: 'number',
bringt das gleiche ergebniss nur wie du geschrieben hast muss die datenpunkte gelöscht werden davor..
-
@chka Ich bekomme nur beim ersten Start des Skriptes Fehlermeldungen. Danach läuft es ohne Fehler durch und erzeugt fleißig die Datenpunkte.
-
@martybr einmal ist keinmal ...
-
@martybr sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
setState("javascript.0.Sonnenstand.Elevation",parseFloat(h.toFixed(1)),true);
jepp!
wandeln in Zahl -
-
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
B ist diese Codezeile vermutlich auch nicht korrekt.
natürlich nicht!
hast du nicht das komplette Skript von @MartyBr übernommen?@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
Die Warnungen bleiben aber
dann steht da auch drin um welchen State es geht
-
@pistus
Es geht um diese Zeilen aus dem Script (ist weiter oben komplett eingestellt):setState("javascript.0.Sonnenstand.Elevation",parseFloat(h.toFixed(1)),true); setState("javascript.0.Sonnenstand.Azimut",parseFloat(a.toFixed()),true); setState("javascript.0.Sonnenstand.X",parseFloat(x.toFixed()),true); setState("javascript.0.Sonnenstand.Y",parseFloat(y.toFixed()),true);
Hier wird String nach Zahlen umgewandelt. Damit läuft das Script mit den Datenpunkten Typ number.
-
@martybr Elevation- und Azimuth-Daten sind verglichen mit Sonnenverlauf.de fast genau.
Die Sonne bewegt sich aber nicht.
Es gibt keine Warnungen und Fehlermeldungen.<img src="/vis-2.0/main/10_sun.png" height="100" width="100" style="float: left; margin: 6px 0px 0px 556px;">
Passen die Bilddaten zu den Objektdaten?
-
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
Die Sonne bewegt sich aber nicht.
Damit sind wir jetzt endlich wieder beim eigentlichen Thema.
Alles andere waren falsche Parameter für die Berechnung des Sonnenstandes und hatten mitvder Visualisierung nichts zu tun.@chka sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
Dein Problem ist jetzt das es in vis2 nicht angezeigt wird?
Das ganze ist ja auch nicht für vis-2 vorgesehen
vis-2 hat eine komplett andere Basis als vis -
@homoran Du hast recht. Voraussetzung war, dass Skript muss fehlerfrei sein.
Dank Eurer Hilfe ist das geschafft.
CSS ist in VIS1 und VIS2 gleich. Das Widget müsste noch angepasst werden. Visualisierung ist für mich Neuland. Ich denke, alle Grundeinstellungen sind in dem Widget verankert.
Das Bild wird angezeigt, bewegt sich aber nicht. -
<img src="/vis-2.0/main/10_sun.png" height="100" width="100" style="float: left; margin: 17px 0px 0px 590px;">
Wie man sieht, hat sich die Position der Sonne doch geändert. (Vergleich zu <img src siehe oben)
Aber nur margin left 6px auf 17px. Die anderen Werte sind gleich geblieben.
Das kann doch nicht sein. Ist die Formel im Skript o.k.? -
@pistus Doch kann sein! Warum sollen sich denn die anderen Werte ändern, wen nur x und y-Achse sich verschiebt??
-
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
Die Sonne bewegt sich aber nicht.
meinst du dass du
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
margin left 6px auf 17px.
eine Veränderung von 11px auf Anhieb erkennst?
wie breit ist dein Monitor? -