NEWS
[gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable
-
@chka Die Sonne wird angezeigt, ändert aber nicht Ihre Position. Dazu kommen die unzähligen Warnmeldungen in der Protokolldatei.
@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. -
@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.
-
- 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" } } -
{ "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
-
@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
-
@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 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 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 -
@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.
-
@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 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
-
@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.
-
@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?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden

