NEWS
Skript für Mondphase, Mondauf- und Untergang
-
@ro75 Ist das hier noch Aktuell?
Bekommt ich noch eine Antwort auf meine Fragen?
Ich kann diesen Alias so wie du Ihn Beschreibst nicht Anlegen, Alias Manager v2.0.0
Ich kenne mich mit dem Alias Manager nicht wirklich aus.0_userdata.0.Wetter. habe ich per Hand angelegt
Das Kopierte und angepasste Script legt aber keine Datenpunkte an Z.b.:
createState(DPMond+'MondphaseIcon', 0, {name: 'MondphaseIcon' ,type: 'number', read: true, write: true});Fehler meldung:
script.js.common.Mondphasen compile failed: at script.js.common.Mondphasen:19Danke für deine Hilfe
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Das Kopierte und angepasste Script legt aber keine Datenpunkte an Z.b.:
Copy to ClipboardcreateState(DPMond+'MondphaseIcon', 0, {name: 'MondphaseIcon' ,type: 'number', read: true, write: true});Falls du das meinst, zeige deinen Code mit den von dir durchgeführten Änderungen / Anpassungen.
Ro75.
-
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Das Kopierte und angepasste Script legt aber keine Datenpunkte an Z.b.:
Copy to ClipboardcreateState(DPMond+'MondphaseIcon', 0, {name: 'MondphaseIcon' ,type: 'number', read: true, write: true});Falls du das meinst, zeige deinen Code mit den von dir durchgeführten Änderungen / Anpassungen.
Ro75.
//Version 1.0.1 - 29.03.2025 //Ersteller Ro75. //Voraussetzungen (Version 1.0.1 getestet mit) //NodeJS: 20.x //Javascript-Adapter: 8.8.1 //Admin-Adapter: 7.4.10 //JS-Controller: 7.0.3 //Hinweis: Die Mondphasenberechnung basiert auf ein Skript aus dem Internet (Seite nicht mehr bekannt). //Das Skript wurde leicht modifiziert const SunCalc = require("suncalc"); //Im Javascript-Adapter einzutragen (Zusätzliche NPM-Module) const DPMond = '0_userdata.0.Wetter.'; //zentraler Datenpunkt const latitude = 51.62; // muss an deinen Standort angepasst werden const longitude = 06.65; // muss an deinen Standort angepasst werden createState(DPMond+'MondphaseIcon', 0, {name: 'MondphaseIcon' ,type: 'number', read: true, write: true}); createState(DPMond+'MondphaseProz', 0, {name: 'MondphaseProz' ,type: 'number', read: true, write: true}); createState(DPMond+'MondphaseDesc', '', {name: 'MondphaseDesc' ,type: 'string', read: true, write: true}); createState(DPMond+'Mondaufgang', '', {name: 'Mondaufgang' ,type: 'string', read: true, write: true}); createState(DPMond+'Monduntergang', '', {name: 'Monduntergang' ,type: 'string', read: true, write: true}); function getMoonTimes(latitude, longitude, date) { const moonTimes = SunCalc.getMoonTimes(date, latitude, longitude); return moonTimes; } function Mondphasenberechnung(){ var heute, Vollmond_Refferenz, differenz, vVollmonde, ausgabetext; var synodischer_mondmonat = 29.530588; var phase = 1; if(phase == 0){ phase = 100; } if(phase < 25){ ausgabetext = "abnehmender Mond"; } if(phase == 25){ heute = new Date(); Vollmond_Refferenz = new Date(2024, 11, 15, 10, 1, 42); //Berechnungsgrundlage heute = heute / 86400000; Vollmond_Refferenz = Vollmond_Refferenz / 86400000; differenz = heute - Vollmond_Refferenz; vVollmonde = differenz / synodischer_mondmonat; phase = vVollmonde * 100; phase = Math.round(phase); phase = phase / 100; phase = phase - Math.floor(phase); phase = phase * 100; phase = Math.floor(phase); if(phase == 0){ phase = 100; } if(phase < 25){ ausgabetext = "abnehmender Mond"; } if(phase == 25){ ausgabetext = "Halbmond (3. Viertel)"; } if(phase > 25 && phase < 50){ ausgabetext = "abnehmender Mond"; } if(phase == 50){ ausgabetext = "Neumond (4. Viertel)"; } if(phase > 50 && phase < 75){ ausgabetext = "zunehmender Mond"; } if(phase == 75){ ausgabetext = "Halbmond (1. Viertel)"; } if(phase > 75 && phase < 100){ ausgabetext = "zunehmender Mond"; } if(phase == 100){ ausgabetext = "Vollmond (2. Viertel)"; } setState(DPMond+'MondphaseIcon',phase,true); setState(DPMond+'MondphaseDesc',ausgabetext,true); } function Monddaten(){ const date = new Date(); // aktuelles Datum const moonTimes = getMoonTimes(latitude, longitude, date); if (moonTimes.rise) { setState(DPMond+'Mondaufgang',moonTimes.rise.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit', hour12: false}),true); } else { setState(DPMond+'Mondaufgang','--:--',true); } if (moonTimes.set) { setState(DPMond+'Monduntergang',moonTimes.set.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit', hour12: false}),true); } else { setState(DPMond+'Monduntergang','--:--',true); } } function berechneMondBeleuchtung(datum) { const mondInfo = SunCalc.getMoonIllumination(datum); const beleuchtungProzent = (mondInfo.fraction * 100); return { beleuchtung: `${beleuchtungProzent}` }; } 51.18 function fRundenM(num) { var m = Number((Math.abs(num) * 100).toPrecision(15)); return Math.round(m) / 100 * Math.sign(num); } function MondBeleuchtung() { const mondBeleuchtung = berechneMondBeleuchtung(new Date()); setState(DPMond+'MondphaseProz', fRundenM(mondBeleuchtung.beleuchtung), true); } schedule('10 * * * *', Mondphasenberechnung); schedule('10 * * * *', Monddaten); schedule('10 * * * *', MondBeleuchtung); Mondphasenberechnung(); Monddaten(); MondBeleuchtung(); -
//Version 1.0.1 - 29.03.2025 //Ersteller Ro75. //Voraussetzungen (Version 1.0.1 getestet mit) //NodeJS: 20.x //Javascript-Adapter: 8.8.1 //Admin-Adapter: 7.4.10 //JS-Controller: 7.0.3 //Hinweis: Die Mondphasenberechnung basiert auf ein Skript aus dem Internet (Seite nicht mehr bekannt). //Das Skript wurde leicht modifiziert const SunCalc = require("suncalc"); //Im Javascript-Adapter einzutragen (Zusätzliche NPM-Module) const DPMond = '0_userdata.0.Wetter.'; //zentraler Datenpunkt const latitude = 51.62; // muss an deinen Standort angepasst werden const longitude = 06.65; // muss an deinen Standort angepasst werden createState(DPMond+'MondphaseIcon', 0, {name: 'MondphaseIcon' ,type: 'number', read: true, write: true}); createState(DPMond+'MondphaseProz', 0, {name: 'MondphaseProz' ,type: 'number', read: true, write: true}); createState(DPMond+'MondphaseDesc', '', {name: 'MondphaseDesc' ,type: 'string', read: true, write: true}); createState(DPMond+'Mondaufgang', '', {name: 'Mondaufgang' ,type: 'string', read: true, write: true}); createState(DPMond+'Monduntergang', '', {name: 'Monduntergang' ,type: 'string', read: true, write: true}); function getMoonTimes(latitude, longitude, date) { const moonTimes = SunCalc.getMoonTimes(date, latitude, longitude); return moonTimes; } function Mondphasenberechnung(){ var heute, Vollmond_Refferenz, differenz, vVollmonde, ausgabetext; var synodischer_mondmonat = 29.530588; var phase = 1; if(phase == 0){ phase = 100; } if(phase < 25){ ausgabetext = "abnehmender Mond"; } if(phase == 25){ heute = new Date(); Vollmond_Refferenz = new Date(2024, 11, 15, 10, 1, 42); //Berechnungsgrundlage heute = heute / 86400000; Vollmond_Refferenz = Vollmond_Refferenz / 86400000; differenz = heute - Vollmond_Refferenz; vVollmonde = differenz / synodischer_mondmonat; phase = vVollmonde * 100; phase = Math.round(phase); phase = phase / 100; phase = phase - Math.floor(phase); phase = phase * 100; phase = Math.floor(phase); if(phase == 0){ phase = 100; } if(phase < 25){ ausgabetext = "abnehmender Mond"; } if(phase == 25){ ausgabetext = "Halbmond (3. Viertel)"; } if(phase > 25 && phase < 50){ ausgabetext = "abnehmender Mond"; } if(phase == 50){ ausgabetext = "Neumond (4. Viertel)"; } if(phase > 50 && phase < 75){ ausgabetext = "zunehmender Mond"; } if(phase == 75){ ausgabetext = "Halbmond (1. Viertel)"; } if(phase > 75 && phase < 100){ ausgabetext = "zunehmender Mond"; } if(phase == 100){ ausgabetext = "Vollmond (2. Viertel)"; } setState(DPMond+'MondphaseIcon',phase,true); setState(DPMond+'MondphaseDesc',ausgabetext,true); } function Monddaten(){ const date = new Date(); // aktuelles Datum const moonTimes = getMoonTimes(latitude, longitude, date); if (moonTimes.rise) { setState(DPMond+'Mondaufgang',moonTimes.rise.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit', hour12: false}),true); } else { setState(DPMond+'Mondaufgang','--:--',true); } if (moonTimes.set) { setState(DPMond+'Monduntergang',moonTimes.set.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit', hour12: false}),true); } else { setState(DPMond+'Monduntergang','--:--',true); } } function berechneMondBeleuchtung(datum) { const mondInfo = SunCalc.getMoonIllumination(datum); const beleuchtungProzent = (mondInfo.fraction * 100); return { beleuchtung: `${beleuchtungProzent}` }; } 51.18 function fRundenM(num) { var m = Number((Math.abs(num) * 100).toPrecision(15)); return Math.round(m) / 100 * Math.sign(num); } function MondBeleuchtung() { const mondBeleuchtung = berechneMondBeleuchtung(new Date()); setState(DPMond+'MondphaseProz', fRundenM(mondBeleuchtung.beleuchtung), true); } schedule('10 * * * *', Mondphasenberechnung); schedule('10 * * * *', Monddaten); schedule('10 * * * *', MondBeleuchtung); Mondphasenberechnung(); Monddaten(); MondBeleuchtung(); -
@walter-o suncalc ist im Javascript adapter eingetragen
Das anlegen eines alias so wie du es beschrieben hast kann leider auch nicht Nachvollziehen
-
@walter-o dann muss das Skript auch laufen. Zeige bitte das Log. Das Skript wurde auch als JS angelegt?
Ro75.
@ro75 Script als JS.
javascript.0 2025-11-05 19:43:27.016 error at processImmediate (node:internal/timers:485:21) javascript.0 2025-11-05 19:43:27.016 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1732:17) javascript.0 2025-11-05 19:43:27.016 error at /opt/iobroker/node_modules/iobroker.javascript/main.js:2322:17 javascript.0 2025-11-05 19:43:27.016 error at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2224:37) javascript.0 2025-11-05 19:43:27.016 error at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1956:21) javascript.0 2025-11-05 19:43:27.016 error at new Script (node:vm:117:7) javascript.0 2025-11-05 19:43:27.016 error SyntaxError: Unexpected number javascript.0 2025-11-05 19:43:27.016 error ^^^ javascript.0 2025-11-05 19:43:27.015 error const longitude = 06.65; // muss an deinen Standort angepasst werden javascript.0 2025-11-05 19:43:27.013 error script.js.common.Mondphasen compile failed: at script.js.common.Mondphasen:19 -
@walter-o suncalc ist im Javascript adapter eingetragen
Das anlegen eines alias so wie du es beschrieben hast kann leider auch nicht Nachvollziehen
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Das anlegen eines alias so wie du es beschrieben hast kann leider auch nicht Nachvollziehen
- Hast du die Bilder in VIS 1 an die korrekte Stelle gelegt?
- Wie legst du denn den Alias an? Ich, ohne Manager.
Ro75.
-
@ro75 Script als JS.
javascript.0 2025-11-05 19:43:27.016 error at processImmediate (node:internal/timers:485:21) javascript.0 2025-11-05 19:43:27.016 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1732:17) javascript.0 2025-11-05 19:43:27.016 error at /opt/iobroker/node_modules/iobroker.javascript/main.js:2322:17 javascript.0 2025-11-05 19:43:27.016 error at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:2224:37) javascript.0 2025-11-05 19:43:27.016 error at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1956:21) javascript.0 2025-11-05 19:43:27.016 error at new Script (node:vm:117:7) javascript.0 2025-11-05 19:43:27.016 error SyntaxError: Unexpected number javascript.0 2025-11-05 19:43:27.016 error ^^^ javascript.0 2025-11-05 19:43:27.015 error const longitude = 06.65; // muss an deinen Standort angepasst werden javascript.0 2025-11-05 19:43:27.013 error script.js.common.Mondphasen compile failed: at script.js.common.Mondphasen:19@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
const longitude = 06.65;
Versuche doch mal
const longitude = 6.65;Ro75.
-
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Das anlegen eines alias so wie du es beschrieben hast kann leider auch nicht Nachvollziehen
- Hast du die Bilder in VIS 1 an die korrekte Stelle gelegt?
- Wie legst du denn den Alias an? Ich, ohne Manager.
Ro75.
@ro75 sagte in Skript für Mondphase, Mondauf- und Untergang:
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Das anlegen eines alias so wie du es beschrieben hast kann leider auch nicht Nachvollziehen
- Hast du die Bilder in VIS 1 an die korrekte Stelle gelegt?
- Wie legst du denn den Alias an? Ich, ohne Manager.
Ro75.
Wo und wie genau muss ich denn die Blder Ablegen?
Eigentlich mit dem Allias Manager, wie geht es denn sonst? -
@ro75 sagte in Skript für Mondphase, Mondauf- und Untergang:
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Das anlegen eines alias so wie du es beschrieben hast kann leider auch nicht Nachvollziehen
- Hast du die Bilder in VIS 1 an die korrekte Stelle gelegt?
- Wie legst du denn den Alias an? Ich, ohne Manager.
Ro75.
Wo und wie genau muss ich denn die Blder Ablegen?
Eigentlich mit dem Allias Manager, wie geht es denn sonst? -
@ro75 sagte in Skript für Mondphase, Mondauf- und Untergang:
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Das anlegen eines alias so wie du es beschrieben hast kann leider auch nicht Nachvollziehen
- Hast du die Bilder in VIS 1 an die korrekte Stelle gelegt?
- Wie legst du denn den Alias an? Ich, ohne Manager.
Ro75.
Wo und wie genau muss ich denn die Blder Ablegen?
Eigentlich mit dem Allias Manager, wie geht es denn sonst?@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Wo und wie genau muss ich denn die Blder Ablegen?

zum Beispiel. Du kannst den Ordner benennen wie du willst, musst es dann halt anpassen.
ALIAS:

Ro75.
-
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Wo und wie genau muss ich denn die Blder Ablegen?

zum Beispiel. Du kannst den Ordner benennen wie du willst, musst es dann halt anpassen.
ALIAS:

Ro75.
@ro75 sagte in Skript für Mondphase, Mondauf- und Untergang:
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Wo und wie genau muss ich denn die Blder Ablegen?

zum Beispiel. Du kannst den Ordner benennen wie du willst, musst es dann halt anpassen.
ALIAS:

Ro75.
Beim links klick auf alias.0 kann ich auch im expertenmodus kein "Neues Objekt hinzufügen " finden
-
@ro75 sagte in Skript für Mondphase, Mondauf- und Untergang:
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Wo und wie genau muss ich denn die Blder Ablegen?

zum Beispiel. Du kannst den Ordner benennen wie du willst, musst es dann halt anpassen.
ALIAS:

Ro75.
Beim links klick auf alias.0 kann ich auch im expertenmodus kein "Neues Objekt hinzufügen " finden
-
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
@homoran Der satz bezog sich auf das Alter des Treads
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
Bekommt ich noch eine Antwort auf meine Fragen?
ach so :thinking_face:
-
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
@ro75 So,geschaft...
Ich danke für die HilfeLeider doch noch eine Frage, die Mondphaseicon bleibt auf 1 und ändert sich nicht.
Was ist da mein Problem? -
@ro75 sagte in Skript für Mondphase, Mondauf- und Untergang:
@walter-o zeige doch mal deinen Alias.
Ro75.
Sorry, späte Antwort.

und der Abgeschnittene Text:
"/vis.0/vis-new/Meine_Icons/Mond_2/" + val+ ".png"@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
/vis.0/vis-new/Meine_Icons/Mond_2/
wie sieht der Ordnerinhalt aus? Und welchen Wert hat der DP?
Ro75.
-
@walter-o sagte in Skript für Mondphase, Mondauf- und Untergang:
/vis.0/vis-new/Meine_Icons/Mond_2/
wie sieht der Ordnerinhalt aus? Und welchen Wert hat der DP?
Ro75.

