NEWS
Suche Skript für Mondphase
-
und wie hast Du Dein Script und die VIS aufgebaut?
-
Hallo
Habe dank Sigi soeben diesen Thread entdeckt.
Dazu hätt ich als Anfänger gleich mal eine Frage.
Muss ich die Mondbilder in einen bestimmten Ordner geben, damit das Script darauf zugreifen kann?
Danke
-
Bins nochmal!
Ich hab dieses Script als JS erstellt.
[/const suncalc = require('suncalc'); const idVis = 'Vis.Mondphase'; // Für Vis createState(idVis, 0, { type: 'number', min: 0, max: 7, role: 'level', states: { 0: 'Neumond', 1: 'Viertelmond zu', 2: 'Halbmond zu', 3: 'Dreiviertelmond zu', 4: 'Vollmond', 5: 'Dreiviertelmond ab', 6: 'Halbmond ab', 7: 'Viertelmond ab' } }); function mpVis() { var mond = suncalc.getMoonIllumination(new Date()); var mp = mond.phase; var state = 0; if(mp > 0.05) state = 1; if(mp > 0.2) state = 2; if(mp > 0.3) state = 3; if(mp > 0.45) state = 4; if(mp > 0.55) state = 5; if(mp > 0.7) state = 6; if(mp > 0.8) state = 7; if(mp > 0.95) state = 0; setState(idVis, state, true); } mpVis(); // Skriptstart schedule("*/10 * * * *", mpVis); // alle 10 Minutenspoiler]
Wenn ich es starte, kommt folgende Fehlermeldung und ich seh nichts in den Objekten unter Javascript.0
21:38:16.315 [info] javascript.0 Start javascript script.js.common.Mondphasen 21:38:16.315 [error] javascript.0 script.js.common.Mondphasen compile failed: at script.js.common.Mondphasen:1
Kenn mich als Anfänger noch nicht so mit JS & Co. aus.
Danke
-
Am Skriptanfang sind zwei störende Zeichen: [/
Richtig:
const suncalc = require('suncalc');
-
Was sollen die beiden Zeichen am Anfang vom Script:
`[/[/code]` Edit - Ok Paul ist eindeutig schneller :D
-
Am Skriptanfang sind zwei störende Zeichen: [/
Richtig:
const suncalc = require('suncalc'); ```` `
Danke, das wars!
-
Hallo,
ich nutze die images aus dem VClouds Weahter 2: https://www.deviantart.com/vclouds/art/ … -179058977 `
Hi,
sehr schöne Grafiken.
Leider sind nur 8 Bilder enthalten.
Hat jemand ähnliche Bilder für alle Mondphasen?
EDIT: Habe mir aus folgender Vorlage selber welche gebastelt.
!
-
Ich habe mich an dem Script für die Mondphase versucht. Das ging auch ganz gut und ich habe es erweitert auf 28 Varianten.
Soweit so gut, ich habe nun das Script einem image8 Widget angehängt, aber wie krieg ich die Daten nun an das Widget. Die 28 Icons sind angehängt im Widget aber es verändert sich nichts.
Da ich ganz neuer iobroker User bin ist das ganze noch ein wenig Neuland und ich brauch einen Moment bis ich die Logik verstehe.
- Habe ich das Script am richtigen Ort?
- Wie krieg ich die Daten ins Widget?
- Was muss in die Object ID des Widgets
Danke zum Voraus
-
@stm47
Schöne Mondbilder. Aber hättest den Vollmond auch noch?
Das hier ist ein Blutmond (bei einer Mondfinsternis).Edit:
Hab einen kreiert ^^
-
@spicer
Habe noch ein paar Mondphasen hinzugefügt.const suncalc = require('suncalc'); const idVis = 'Vis.Mondphase'; // Für Vis createState(idVis, 0, { type: 'number', min: 0, max: 15, role: 'level', states: { 0: 'Neumond', 1: 'Achtelmond zu', 2: 'Viertelmond zu', 3: 'DreiAchtelmond zu', 4: 'Halbmond zu', 5: 'FunfAchtelmond zu', 6: 'Dreiviertelmond zu', 7: 'SiebenAchtelmond zu', 8: 'Vollmond', 9: 'SiebenAchtelmond ab', 10: 'Dreiviertelmond ab', 11: 'FunfAchtelmond ab', 12: 'Halbmond ab', 13: 'DreiAchtelmond ab', 14: 'Viertelmond ab', 15: 'Achtelmond ab' } }); function mpVis() { var mond = suncalc.getMoonIllumination(new Date()); var mp = mond.phase; var state = 0; if(mp > 0.04) state = 1; if(mp > 0.10) state = 2; if(mp > 0.20) state = 3; if(mp > 0.25) state = 4; if(mp > 0.30) state = 5; if(mp > 0.38) state = 6; if(mp > 0.43) state = 7; if(mp > 0.49) state = 8; if(mp > 0.55) state = 9; if(mp > 0.62) state = 10; if(mp > 0.70) state = 11; if(mp > 0.75) state = 12; if(mp > 0.80) state = 13; if(mp > 0.86) state = 14; if(mp > 0.92) state = 15; if(mp > 0.97) state = 0; setState(idVis, state, true); } mpVis(); // Skriptstart schedule("*/10 * * * *", mpVis); // alle 10 Minuten
Und die Mond-Icons etwas aufgeräumt.
mond_icons.zip -
@bitstorm66
Etwas spät.
Du musst den Datenpunkt Vis.Mondphase löschen, damit dieser neu geschrieben wird.- Im root oder eigenen Verzeichnis bei den Skripten
- Die werden über den Datenpunkt (Object ID) übergeben
- javascript.0.Vis.Mondphase