NEWS
[gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable
-
@syber sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
Nach dem Hochladen mit dem Dateimanager funktioniert es
Die Bilder müssen über den Dateimanager hochgeladen werden , so werden Sie auch registriert .
-
@glasfaser
wieder was gelerntdanke dir
-
Was macht dieser Befehl?
schedule("*/1 * * * *", Sonnenstand_berechnen);
Ich meine, bei mir hat sich die Sonne vier mal bewegt und danach nicht mehr.
Ich kämpfe als älterer Neuling mit diesem VIS- Projekt.Mein Solardach hat OST-WEST Ausrichtung. Ich möchte zwischen 8 und 20 Uhr stündlich den Sonnenstand angezeigt wecheln und dazu die erzeugte Witkleistung anzeigen, die per Modbus zur Verfügung steht. Könnte mir Jemand bei diesem Anliegen helfen? Zur Zeit sehe ich das Sonnensymbol immer an der gleichen Stelle.
Das Widget habe ich importiert und die Bildpfade angepasst
VIS 2.0 RaspberryPi 4 ioBroker -
@pistus Ich sehe, im widget steht eine hm_id.
Funktioniert die Sonnenstandsanzeige nur inVerbindung mit Homematic? -
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
Was macht dieser Befehl?
der startet jede Minute die Sonnenstandsberechnung.
Wobei dafür das/1
überflüssig ist -
Das Skript mit der Visualisierung in VIS-2 funktioniert bei mir nicht.
Die Protokolldatei meldet folgende Fehler.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" 2024-04-17 16:12:00.022 - warn: javascript.0 (19119) You are assigning a string to the state "javascript.0.Sonnenstand.Elevation" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions. 2024-04-17 16:12:00.025 - warn: javascript.0 (19119) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1819:20) 2024-04-17 16:12:00.026 - warn: javascript.0 (19119) at Object.Sonnenstand_berechnen (script.js.Sonnenstand.Snnenstand:73:5) 2024-04-17 16:12:00.026 - warn: javascript.0 (19119) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1620:34) 2024-04-17 16:12:00.026 - warn: javascript.0 (19119) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15) 2024-04-17 16:12:00.027 - warn: javascript.0 (19119) at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28 2024-04-17 16:12:00.027 - warn: javascript.0 (19119) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7) 2024-04-17 16:12:00.027 - warn: javascript.0 (19119) at listOnTimeout (node:internal/timers:569:17) 2024-04-17 16:12:00.027 - warn: javascript.0 (19119) at processTimers (node:internal/timers:512:7)
Ich bitte um Hilfe. Das Sonnensymbol ist zu sehen, bewegt sich aber nicht. In der Objektdatei wird nur der Azimuthwert in schwarz angezeigt. Alle anderen Werte sind gelb.
-
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
Die Protokolldatei meldet folgende Fehler.
ich seh nur Warnungen und die Lösung steht da auch
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
State value to set for "javascript.0.Sonnenstand.Elevation" has to be type "number
-
@homoran
Leider habe ich Anfänger keine Lösung erkannt. Der Wust an Warnungen wird in den Protokollen minütlich angezeigt. -
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
keine Lösung
hab ich dir doch zitiert:
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
State value to set for "javascript.0.Sonnenstand.Elevation" has to be type "number"
irgendein Script bei dir schreibt in den genannten Datenpunkt mit einem String
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
fix your code to use a number
-
@homoran Es gibt nur ein Skript.
Es ist das Skript von @chka siehe oben vom 05.05.21, dass bei anderen Usern funktioniert.Für Elevation habe ich das Skript von @chka mal geändert
createState('Sonnenstand.Elevation', 0, {type: 'number', unit: '°'}); //createState('Sonnenstand.Elevation', 0, {unit: '°'});
Jetzt ist die von dir genannte Warnung weg.
In den Objekten hat sich nichts geändert
-
@pistus
ich kann zwar kein Javascript, aber das hier müsste der Verursacher sein.@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));
Der Datenpunkt
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
createState('Sonnenstand.Elevation', 0, {type: 'number', unit: '°'});
war doch bereits Typ number, wurde laut Meldung aber mit einem String beschrieben
-
createState('Sonnenstand.Elevation', 0, {type: 'number', unit: '°'});
habe ich eingefügt, geändert
Im Skript standcreateState('Sonnenstand.Elevation', 0, {unit: '°'});
-
-
@pistus sagte in [gelöst] X/Y Koordinaten eines Bildes in VIS abhängig einer CCU Variable:
Ich denke, dass Skript muss im VIS-2 Editor in Skripte geladen werden.
ich denke nicht, dass es im Jahr 2017 bereits vis2 gab
-
-
@chka Wenn ich Dein Skript in Skripte speicher, wird die Protokolldatei mit Warnungen vollgeschrieben.
2024-04-20 10:42:00.023 - warn: javascript.0 (19119) You are assigning a string to the state "javascript.0.Sonnenstand.Elevation" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions. 2024-04-20 10:42:00.026 - warn: javascript.0 (19119) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1819:20) 2024-04-20 10:42:00.027 - warn: javascript.0 (19119) at Object.Sonnenstand_berechnen (script.js.Sonnenstand.Sonnenstand:48:5) 2024-04-20 10:42:00.027 - warn: javascript.0 (19119) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1620:34) 2024-04-20 10:42:00.027 - warn: javascript.0 (19119) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15) 2024-04-20 10:42:00.028 - warn: javascript.0 (19119) at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28 2024-04-20 10:42:00.028 - warn: javascript.0 (19119) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7) 2024-04-20 10:42:00.028 - warn: javascript.0 (19119) at listOnTimeout (node:internal/timers:569:17) 2024-04-20 10:42:00.029 - warn: javascript.0 (19119) at processTimers (node:internal/timers:512:7) 2024-04-20 10:42:00.044 - info: javascript.0 (19119) State value to set for "javascript.0.Sonnenstand.Elevation" has to be type "number" but received type "string"
-
@pistus bei MIR ist javascript.0.Sonnenstand.Elevation eine number bei DIR ein string.
das hat nichts mit speichern zu tun, sondern es läuft was erste Mal durch! -
@chka Die Daten für Azimuth und Elevation kommen doch aus der Systemkonfiguration.
Bei diesem Skript für den Sonnenstand gibt es keine Fehlermeldung und Warnungen.
const suncalc = require('suncalc2'); const result = getObject('system.config'); const lat = result.common.latitude; const long = result.common.longitude; //const result = getObject("system.adapter.javascript.0"); //const lat = result.native.latitude; //const long = result.native.longitude; const idEle = 'Sonnenstand.Elevation'; const idAzi = 'Sonnenstand.Azimuth'; createState(idEle, 0, {type: 'number', unit: '°'}); createState(idAzi, 0, {type: 'number', unit: '°'}); function Sonnenstand_berechnen () { var now = new Date(); var sunpos = suncalc.getPosition(now, lat, long); var h = sunpos.altitude * 180 / Math.PI; var a = sunpos.azimuth * 180 / Math.PI + 180; setState(idEle, Math.round(10 * h) / 10, true); //setState(idAzi, Math.round(a), true); setState(idAzi, Math.round(Math.round(10 * a) / 10), true); } schedule("* * * * *", Sonnenstand_berechnen);
Hier wird aber im Skript der Typ number programmiert
createState(idEle, 0, {type: 'number', unit: '°'}); createState(idAzi, 0, {type: 'number', unit: '°'});
-
@pistus dies script läuft bei mir seit jahren
/* System Sonnenstand Sonne Azimut und Elevation in Variablen schreiben 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, {unit: '°'}); createState('Sonnenstand.Azimut', 0, {unit: '°'}); createState('Sonnenstand.X', 0, {unit: 'px'}); createState('Sonnenstand.Y', 0, {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",h.toFixed(1)); setState("javascript.0.Sonnenstand.Azimut",a.toFixed()); setState("javascript.0.Sonnenstand.X",x.toFixed()); setState("javascript.0.Sonnenstand.Y",y.toFixed()); 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("*/1 * * * *", Sonnenstand_berechnen); Sonnenstand_berechnen(); // bei Scriptstart
mehr kann ich dazu nicht sagen
-
@chka Deshalb habe ich ja versucht Dein Skript bei mir zu installieren.
Ich muss passen, weil ich einfach nicht weiter komme.