NEWS
[gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable
-
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
die unzähligen Warnmeldungen in der Protokolldatei.
liegen an dem falschen Datentyp deines Datenpunktes.
Zeig doch bitte mal die Objektdaten davon. -
-
- Expertenmodus an
- dann rechts auf den dann erscheinenden Bleistift
- Reiter Objektdaten
- den Inhalt hier in code-tags posten.
-
{ "common": { "unit": "°", "name": "Sonnenstand.Azimut", "role": "state", "type": "mixed" }, "native": { "unit": "°", "name": "Sonnenstand.Azimut", "role": "state", "type": "mixed" }, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1713353051011, "_id": "javascript.0.Sonnenstand.Azimut", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
{ "common": { "type": "number", "unit": "°", "name": "Sonnenstand.Elevation", "role": "state" }, "native": { "type": "number", "unit": "°", "name": "Sonnenstand.Elevation", "role": "state" }, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1711981079388, "_id": "javascript.0.Sonnenstand.Elevation", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
{ "common": { "name": "Sonnenstand.HTML", "role": "state", "type": "mixed" }, "native": {}, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1713353051014, "_id": "javascript.0.Sonnenstand.HTML", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@pistus Danke!
Azimut ist mixed, Elevation ist Number.
Und genau dort kommt doch die Meldung@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
2024-04-17 16:11:00.043 - info: javascript.0 (19119) State value to set for "javascript.0.Sonnenstand.Elevation" has to be type "number" but received type "string
Das Script scheint da einen String hineinzuschreiben
@chka sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
setState("javascript.0.Sonnenstand.Elevation",h.toFixed(1));
ich kann kein Javascript, aber das dürfte einen String ergeben
-
einfach alles auf mixed und gut so wird es normalerweise auch angelegt
-
@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?