NEWS
Astro-Tageszeit abfragen und in Datenpunkt eintragen
-
Meinst du sowas??
Enrico
-
Hallo,
ich habe das Script von Pic am laufen und es werden mir die Zeiten Sonnenuntergang und Sonnenaufgang in einem Datenpunkt angezeigt. Wie kann ich das Script erweitern, so das mir alle Astrozeiten in Datenpunkten angezeigt werden?
/* System Tageszeoten Skript meldet Tageszeiten Nacht;Frühmorgens;Morgengrauen;Vormittag;Mittag;Nachmittag;Dämmerung;Abend; Basis: http://www.homematic-inside.de/tecbase/homematic/scriptlibrary/item/tageszeit-in-abschnitte-unterteilen oder hier: https://github.com/ioBroker/ioBroker.javascript#astro--funktion https://github.com/iobroker/ioBroker.javascript/blob/master/README.md#getastrodate erstellt: 01.06.2015 von Pix 11.12.2015 getAstroDate ermittelt nun auch Sonnenaufgang und Untergang Astrotag (isAstroDay) eingebaut */ // Variablen erstellen createState('Tageszeit', { name: 'Tageszeit' }); createState('Tageszeit.Sonnenaufgang', { name: 'nächster Sonnenaufgang Uhrzeit', desc: 'sunrise (top edge of the sun appears on the horizon)' }); createState('Tageszeit.Sonnenuntergang', { name: 'nächster Sonnenuntergang Uhrzeit', desc: 'sunset (sun disappears below the horizon, evening civil twilight starts)' }); createState('Tageszeit.Astrotag', false, { read: true, write: true, type: 'boolean', name: 'Astologischer Tag', desc: 'Zeit zwischen Sonnenauf- und untergang' }); var idTageszeit = "Tageszeit", tageszeiten = ['Nacht', 'Morgendämmerung', 'Morgen', 'Vormittag', 'Mittag', 'Nachmittag', 'Abenddämmerung', 'Abend'], idAstrotag = "Tageszeit.Astrotag", idSonnenaufgang = "Tageszeit.Sonnenaufgang", idSonnenuntergang = "Tageszeit.Sonnenuntergang"; function zeiten_speichern () { var astrotag = getState(idAstrotag).val, sonnenaufgang, sonnenuntergang; var today = new Date(); var tomorrow = today.setDate(today.getDate()+1); if (astrotag) { // Wenn Tag (Aufgang vorbei (erst wieder morgen, Untergang kommt noch heute) sonnenuntergang = getAstroDate('sunset', today), sonnenaufgang = getAstroDate('sunrise', tomorrow); } else { // nach Nacht (Untergang vorbei (erst wieder morgen, Aufgang kommt heute oder morgen) sonnenuntergang = getAstroDate('sunset', tomorrow); sonnenaufgang = (today.getHours() > 12 && today.getHours() <= 23) ? getAstroDate('sunrise', tomorrow) : getAstroDate('sunrise', today); // es ist vor Mitternacht (bzw. vor 23:XXUhr), dann morgen, sonst heute } setState(idSonnenaufgang, sonnenaufgang.toLocaleTimeString()); setState(idSonnenuntergang, sonnenuntergang.toLocaleTimeString()); } function neue_tageszeit(abschnitt) { setState(idTageszeit, tageszeiten[parseInt(abschnitt, 10)]); log('neue Tagezeit: ' + tageszeiten[parseInt(abschnitt, 10)], 'info'); zeiten_speichern(); } // Nacht schedule({astro: "night", shift: 120}, function () { neue_tageszeit(0) }); // Morgengdämmerung schedule({astro: "nightEnd"}, function () { neue_tageszeit(1) }); // Morgen schedule({astro: "sunrise"}, function () { neue_tageszeit(2) }); // Vormittag (beginnt 120min vor Sonnenhöchststand) schedule({astro: "solarNoon", shift: -120}, function () { neue_tageszeit(3) }); // Mittag schedule({astro: "solarNoon"}, function () { neue_tageszeit(4) }); // Nachmittag schedule({astro: "solarNoon", shift: 60}, function () { neue_tageszeit(5) }); // Abenddämmerung (nach Sonnenuntergang) schedule({astro: "dusk"}, function () { neue_tageszeit(6) }); // Abend schedule({astro: "night"}, function () { neue_tageszeit(7) }); // Astrotag checken schedule("*/1 * * * *", function () { if (isAstroDay) setState(idAstrotag, true); if (!isAstroDay) setState(idAstrotag, false); zeiten_speichern(); });
Gruß Micha
-
das würde mich auch interessieren. Gerade die Dämmerungszeiten sind viel interessanter wie der Sonnenaufgang.
Kann man hinterher dann auf diese Zeiten auslösen z. B. ein Licht schalten?
-
Kann man hinterher dann auf diese Zeiten auslösen z. B. ein Licht schalten? `
Dafür gibt es die astrofunction in JavaScript und Blockly
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Hallo zusammen,
bei mir werden per Blockly die beiden Objekte "Sonnenaufgang" und "Sonnenuntergang" mit der jeweiligen Zeit aktualisiert.
Die geschieht ellrdings immer nur beim eintreten der jeweiligen Zeit.
Wie kann ich die Daten (Längen- und Breitengrand), die im ioBroker hinterlegt sind, verrbeiten um damit die beiden Objkete zu befüllen.
Denn es ist ja immer vorher interessant zu wissen wann die Sonne auf- oder untergeht.
Kann da jemand helfen?
-
Zeig dochmal bitte dein Blockly!
Enrico
-
Zeig dochmal bitte dein Blockly!
Enrico `
-
Ich habe das so:
Jeden Tag um 00:05 Uhr werden die Datenpunkte beschrieben.
Enrico
-
Ich habe das so:
Sonne.JPG
Jeden Tag um 00:05 Uhr werden die Datenpunkte beschrieben.
Enrico `
Oh man, so einfach ^^ Dass ich da nicht selber drauf gekommen bin.
Vielen Dank Enrico
-
Moin,
habe eben mal das Script eingetragen und Breite und Länge auch.
nun hab ich Zeiten von SA 3:43 und SU 15:37.
so ganz kann das ja nicht stimmen (Norddeutschland-Küste), wenn man andere quellen trauen kann (Internet).
Gruß
-
Hast du dich vielleicht bei den Kommastellen verschrieben?
Enrico
-
52,…... und 8,........
viel falsch kann man nicht machen bei Paste copy [emoji12]
Habe eben nochmal nachgeschaut …. laut JavaScript Einstellung wäre das bei Somalia ....... mal sehen was systemstandort bringt
Gesendet von iPad mit Tapatalk
-
52,…... und 8,........ `
ich meine mich zu erinnern, dass man anstelle des Komma einen Punkt eingeben musste. Ich bin mir aber nicht mehr sicher und kann gerade nicht nachsehen.
-
Jaja , ist richtig .
Habe die Werte von einer Seite kopiert , wo Länge als erstes stand . Also einfach nur verwechselt die beiden Werte -_-
Läuft
-
viel falsch kann man nicht machen bei Paste copy [emoji12] `
Scheinbar eben doch! :lol:
Enrico
-
Wie kann man den die Uhrzeit anpassen ? Sekunden benötige ich eigentlich nicht dafür
-
Wie kann man den die Uhrzeit anpassen ? Sekunden benötige ich eigentlich nicht dafür `
Das sollte in meinem Blockly-Beispiel auf der vorherigen Seite nur als hh:mm angezeigt werden!
Enrico
-
Okay danke …. mit Blocky kenne ich mich nicht aus . Da muss ich erstmal lesen
-
Moin,
so hab das mal gemacht, sieht auch ähnlich wie bei dir aus.
Wo ändert sich denn dann die anzeige oder wird es seperat erstellt das script?
weil unter Objekte ist nichts verändert oder hinzu gekommen.
! javascript.0 2018-02-22 08:52:47.743 info script.js.common.SaSu: registered 0 subscriptions and 1 schedule
! javascript.0 2018-02-22 08:52:47.726 info Start javascript script.js.common.SaSu
! javascript.0 2018-02-22 08:52:47.704 info Stop script script.js.common.SaSudas kommt beim Neustart vom Blocky Script.
2562_12.png -
Ich glaube, dass die Anzeige erst um 00:05 kommt, ob da beim Scriptstart auch schon was kommt, weiß ich jetzt nicht mehr, glaub ich aber nicht, wegen der zeitlichen Triggerung!
Enrico