Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Bewegungsmelder mit Astro-Funktion

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    221

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Bewegungsmelder mit Astro-Funktion

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
11 Beiträge 6 Kommentatoren 2.6k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #2

    @smarti2020:

    Wie muss da jetzt diese Astro-Funktion integriert werden? `
    falls <u>nicht zwischen</u> Sonnenaufgang und Sonnenuntergang

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      smarti2020
      schrieb am zuletzt editiert von
      #3

      hi,

      bin noch anfänger, wie sähe das denn in Blockly aus?`

      gruss

      mark

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #4

        @smarti2020:

        wie sähe das denn in Blockly aus? `
        493_blockly_bwm_nachts.jpg

        value ist eine vordefinierte Variable, die den Wert des Trigger-Datenpunktes (Occupancy) enthält.

        Export:

        ! ````
        <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="bvX-;)m{?xhk.Mzn}KG=" x="-537" y="138"><field name="COMMENT">Occupancy</field>
        <next><block type="on" id="=dU?PZCpnq:.HlErk(tk"><field name="OID">Object ID</field>
        <field name="CONDITION">ne</field>

            <statement name="STATEMENT"><block type="controls_if" id="puNS`n5EB)f7}r0cwG/b"><value name="IF0"><block type="time_compare_ex" id="7z,uid+-*v2nj6[ZV!Z~" inline="false"><mutation end_time="true" actual_time="true"></mutation>
                    <field name="USE_ACTUAL_TIME">TRUE</field>
                    <field name="OPTION">not between</field>
                    <value name="START_TIME"><shadow type="text" id="m9Ancls9lkmRVYC}X#N:"><field name="TEXT">12:00</field></shadow> 
                      <block type="time_astro" id="zGYD{VLC[BSl),;1b}Y="><field name="TYPE">sunrise</field>
                        <field name="OFFSET">0</field></block></value> 
                    <value name="END_TIME"><shadow type="text" id="f=c[*|JL#]2kT0V7=l6~"><field name="TEXT">18:00</field></shadow> 
                      <block type="time_astro" id="](+1g5[/zF8nV-(fief#"><field name="TYPE">sunset</field>
                        <field name="OFFSET">0</field></block></value></block></value> 
                <statement name="DO0"><block type="comment" id="-JM(COYD9}1i;]c}/m#u"><field name="COMMENT">Switch state</field>
                    <next><block type="control" id="@Os1K2~LL|d)LY.?._`w"><mutation delay_input="false"></mutation>
                        <field name="OID">Object ID</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE"><block type="variables_get" id="^T^dJ3ZU)Q|ypTVm3.k_"><field name="VAR">value</field></block></value></block></next></block></statement></block></statement></block></next></block></xml> 
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          Denwo
          schrieb am zuletzt editiert von
          #5

          Vielleicht kannst ja von meinem Script etwas gebrauchen.

          Bewegungsmelder: Xiaomi

          Lampe: Ikea Tradfri

          ~~![](</s><URL url=)<link_text text="https://www.tetris-multigaming.de/forum ... 52d37b.PNG">https://www.tetris-multigaming.de/forum/uploads/picupload/71762c1e47b0df66d1b88d202f52d37b.PNG</link_text>" />

          Script Bewegungsmelder:

          ! ````
          <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="i={`iP[jI:sy_4gjW~~|" x="-412" y="-362"><field name="OID">zigbee.0.00158d00022ec340.occupancy</field>
          <field name="CONDITION">any</field>

          <statement name="STATEMENT"><block type="debug" id="I!4iaByKXfKQNJyPZ_p%"><field name="Severity">log</field>
              <value name="TEXT"><shadow type="text" id="RpK6e!ooN/}E}*)ogSi+"><field name="TEXT">bewegung 1</field></shadow></value> 
              <next><block type="controls_if" id=",9_Nr-P-{%Fd+Tc0-=Nu"><mutation elseif="2"></mutation>
                  <value name="IF0"><block type="logic_operation" id=")6uq5IHRYbgp!=bV219U"><field name="OP">AND</field>
                      <value name="A"><block type="logic_operation" id="#wbV/--qkzH=mi62c=G8"><field name="OP">OR</field>
                          <value name="A"><block type="time_compare_ex" id="4/ejvtJCi;//Mm@e(_lE"><mutation end_time="false" actual_time="true"></mutation>
                              <field name="USE_ACTUAL_TIME">TRUE</field>
                              <field name="OPTION">>=</field>
                              <value name="START_TIME"><shadow type="text" id="|t-}2ZM.XW2n:A([YNL}"><field name="TEXT">20:00</field></shadow></value></block></value> 
                          <value name="B"><block type="time_compare_ex" id=";fVJW_Gt96??v)E:xp?;"><mutation end_time="false" actual_time="true"></mutation>
                              <field name="USE_ACTUAL_TIME">TRUE</field>
                              <field name="OPTION"><=</field>
                              <value name="START_TIME"><shadow type="text" id="c^N:.Y2%A@lnH|4~7%+f"><field name="TEXT">05:00</field></shadow></value></block></value></block></value> 
                      <value name="B"><block type="logic_compare" id=";_i]cfZdrmL/qXWB6PuO"><field name="OP">EQ</field>
                          <value name="A"><block type="get_value" id="05hB:}da}@CQX_^vBlC@"><field name="ATTR">val</field>
                              <field name="OID">zigbee.0.00158d00022ec340.occupancy</field></block></value> 
                          <value name="B"><block type="logic_boolean" id="ZT5]2tgD5CM]Of-|;}#F"><field name="BOOL">TRUE</field></block></value></block></value></block></value> 
                  <statement name="DO0"><block type="debug" id="eOpuS(/OMhfi44t8N~4E"><field name="Severity">log</field>
                      <value name="TEXT"><shadow type="text" id="MxU[/LGwKN{/vy[A!P(c"><field name="TEXT">zeit 20 bis 5</field></shadow></value> 
                      <next><block type="timeouts_cleartimeout" id="qeNew,P;Ck/+UR1HoQt|"><field name="NAME">timeout</field>
                          <next><block type="control" id="?@[iUeZkjOkI7hEdQ_Od"><mutation delay_input="true"></mutation>
                              <field name="OID">zigbee.0.90fd9ffffe844cab.brightness</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">500</field>
                              <field name="UNIT">ms</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE"><block type="math_number" id="v+`DYzuv=`8Gf6=Rnm/s"><field name="NUM">30</field></block></value> 
                              <next><block type="control" id="H{riRA16MMe3MCwhm]]B"><mutation delay_input="true"></mutation>
                                  <field name="OID">zigbee.0.90fd9ffffe844cab.colortemp</field>
                                  <field name="WITH_DELAY">TRUE</field>
                                  <field name="DELAY_MS">500</field>
                                  <field name="UNIT">ms</field>
                                  <field name="CLEAR_RUNNING">FALSE</field>
                                  <value name="VALUE"><block type="math_number" id="/`!W0-H^Ot6pMc/]~x4C"><field name="NUM">250</field></block></value> 
                                  <next><block type="control" id="1HPCv1]o{F7w,fB1Ndnd"><mutation delay_input="true"></mutation>
                                      <field name="OID">zigbee.0.90fd9ffffe844cab.state</field>
                                      <field name="WITH_DELAY">TRUE</field>
                                      <field name="DELAY_MS">500</field>
                                      <field name="UNIT">ms</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="VALUE"><block type="logic_boolean" id="Sl@Mezcn0wmi97;c;{Np"><field name="BOOL">TRUE</field></block></value> 
                                      <next><block type="debug" id="v+Jps6{O-%9cRj9l_3A@"><field name="Severity">log</field>
                                          <value name="TEXT"><shadow type="text" id="t7w~]^!CcLkcQWRNW/Xa"><field name="TEXT">lampe an</field></shadow></value> 
                                          <next><block type="timeouts_settimeout" id="_q?^EDYi4IB{sB0L/A!Q"><field name="NAME">timeout</field>
                                              <field name="DELAY">75</field>
                                              <field name="UNIT">sec</field>
                                              <statement name="STATEMENT"><block type="control" id="bm*596q+MR)+t%!Xz1Jr"><mutation delay_input="false"></mutation>
                                                  <field name="OID">zigbee.0.90fd9ffffe844cab.state</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE"><block type="logic_boolean" id="#2yX?R:/%e?QN|~qTls)"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></statement> 
                  <value name="IF1"><block type="logic_operation" id="%BRy2KL@E?,guVjOg4nb"><field name="OP">AND</field>
                      <value name="A"><block type="logic_operation" id="AGJMY~+0c6)gA8,AVbs}"><field name="OP">AND</field>
                          <value name="A"><block type="time_compare_ex" id="ZjE?TscRW6_.h2WZiAJJ"><mutation end_time="false" actual_time="true"></mutation>
                              <field name="USE_ACTUAL_TIME">TRUE</field>
                              <field name="OPTION">>=</field>
                              <value name="START_TIME"><shadow type="text" id="%C9/{Zl32.b;Ln^zu:MW"><field name="TEXT">05:00</field></shadow></value></block></value> 
                          <value name="B"><block type="time_compare_ex" id="|ip0R8iaUJKl%y7;u`xA"><mutation end_time="false" actual_time="true"></mutation>
                              <field name="USE_ACTUAL_TIME">TRUE</field>
                              <field name="OPTION"><=</field>
                              <value name="START_TIME"><shadow type="text" id="B5-(MdFbd?FI_}:WpEU^"><field name="TEXT">06:00</field></shadow> 
                                <block type="get_value" id="fJ@1a=cNO=bw:`-vLomA"><field name="ATTR">val</field>
                                  <field name="OID">javascript.0.virtualDevice.Astro.03 - goldenHourEnd</field></block></value></block></value></block></value> 
                      <value name="B"><block type="logic_compare" id="NX+^-1`uVS4/saL(0HDZ"><field name="OP">EQ</field>
                          <value name="A"><block type="get_value" id="m~X,E#)5~wq)._UuaaF3"><field name="ATTR">val</field>
                              <field name="OID">zigbee.0.00158d00022ec340.occupancy</field></block></value> 
                          <value name="B"><block type="logic_boolean" id="BjS7wF?!`cELRVkANf4X"><field name="BOOL">TRUE</field></block></value></block></value></block></value> 
                  <statement name="DO1"><block type="debug" id="*W}+weD]=GJ]yc8]z_wH"><field name="Severity">log</field>
                      <value name="TEXT"><shadow type="text" id="BaUJV16Y+m=}X},;{cU^"><field name="TEXT">zeit 5 bis sonnenaufgang</field></shadow></value> 
                      <next><block type="timeouts_cleartimeout" id="oJN-Z3ssg6!]BczK^{NE"><field name="NAME">timeout2</field>
                          <next><block type="control" id="J,+loO]^0A}QI2L;%ZL*"><mutation delay_input="true"></mutation>
                              <field name="OID">zigbee.0.90fd9ffffe844cab.brightness</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">500</field>
                              <field name="UNIT">ms</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE"><block type="math_number" id="gnHI[lS@bA?%Wv`:8b7l"><field name="NUM">100</field></block></value> 
                              <next><block type="control" id="1:ldK+,!}Z6OCFVgX~Lw"><mutation delay_input="true"></mutation>
                                  <field name="OID">zigbee.0.90fd9ffffe844cab.colortemp</field>
                                  <field name="WITH_DELAY">TRUE</field>
                                  <field name="DELAY_MS">500</field>
                                  <field name="UNIT">ms</field>
                                  <field name="CLEAR_RUNNING">FALSE</field>
                                  <value name="VALUE"><block type="math_number" id="vDe].(Es*0qCCPcC7Pee"><field name="NUM">250</field></block></value> 
                                  <next><block type="control" id="P#`|USFjI+5vDvMzdX7!"><mutation delay_input="true"></mutation>
                                      <field name="OID">zigbee.0.90fd9ffffe844cab.state</field>
                                      <field name="WITH_DELAY">TRUE</field>
                                      <field name="DELAY_MS">500</field>
                                      <field name="UNIT">ms</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="VALUE"><block type="logic_boolean" id="BafbC]=LsoFb*u!)cnMq"><field name="BOOL">TRUE</field></block></value> 
                                      <next><block type="debug" id="zL0J#hQYqgGI_ecO-nxn"><field name="Severity">log</field>
                                          <value name="TEXT"><shadow type="text" id="2kXL;cvs9j.7f;vHuyuF"><field name="TEXT">lampe an</field></shadow></value> 
                                          <next><block type="timeouts_settimeout" id="--=@X5Tl#:r3B^@HWE5g"><field name="NAME">timeout2</field>
                                              <field name="DELAY">75</field>
                                              <field name="UNIT">sec</field>
                                              <statement name="STATEMENT"><block type="control" id="LPjH()0(xf~KfFwZMs!s"><mutation delay_input="false"></mutation>
                                                  <field name="OID">zigbee.0.90fd9ffffe844cab.state</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE"><block type="logic_boolean" id="jbnWuqP0K9URNN},)y+k"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></statement> 
                  <value name="IF2"><block type="logic_operation" id="]O%eS5~Ycr#w5+jVe(hv"><field name="OP">AND</field>
                      <value name="A"><block type="logic_operation" id="74KAhTgmVM_4`1=:[90X"><field name="OP">AND</field>
                          <value name="A"><block type="time_compare_ex" id="nTCzW3e4K=orMtCdPe%-"><mutation end_time="false" actual_time="true"></mutation>
                              <field name="USE_ACTUAL_TIME">TRUE</field>
                              <field name="OPTION">>=</field>
                              <value name="START_TIME"><shadow type="text" id=":gn=|rfLRiA@9F5c1qF."><field name="TEXT">05:00</field></shadow> 
                                <block type="get_value" id="*9pwgNhSMM:rOZ(nzJpk"><field name="ATTR">val</field>
                                  <field name="OID">javascript.0.virtualDevice.Astro.05 - goldenHour</field></block></value></block></value> 
                          <value name="B"><block type="time_compare_ex" id="y/`;mq_(n*~a`c*O(},T"><mutation end_time="false" actual_time="true"></mutation>
                              <field name="USE_ACTUAL_TIME">TRUE</field>
                              <field name="OPTION"><=</field>
                              <value name="START_TIME"><shadow type="text" id="f;ycyA]L/OoV}gJy%:0@"><field name="TEXT">20:00</field></shadow></value></block></value></block></value> 
                      <value name="B"><block type="logic_compare" id="srxd;WO:tTO6#KZaxxvN"><field name="OP">EQ</field>
                          <value name="A"><block type="get_value" id="qoM|DEnSG_/^14;,7Vu!"><field name="ATTR">val</field>
                              <field name="OID">zigbee.0.00158d00022ec340.occupancy</field></block></value> 
                          <value name="B"><block type="logic_boolean" id="3aJN*[|~BHTIwHt9b/_y"><field name="BOOL">TRUE</field></block></value></block></value></block></value> 
                  <statement name="DO2"><block type="debug" id="*s1lS]{=bI;x)Wa}SZHO"><field name="Severity">log</field>
                      <value name="TEXT"><shadow type="text" id="pQ1AMK)qL.^o:f]7+23*"><field name="TEXT">sonnenuntergang anfang bis sonnenuntergang</field></shadow></value> 
                      <next><block type="timeouts_cleartimeout" id=".LC;f}k,])Q2,(#)+[aZ"><field name="NAME">timeout3</field>
                          <next><block type="control" id="k8#kKIwG8:)Z2eCfQ/r}"><mutation delay_input="true"></mutation>
                              <field name="OID">zigbee.0.90fd9ffffe844cab.brightness</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">500</field>
                              <field name="UNIT">ms</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE"><block type="math_number" id="7]i~dCH8@UKghp_uDg;7"><field name="NUM">100</field></block></value> 
                              <next><block type="control" id=";B2`rWH!^Xvq~[TPexeX"><mutation delay_input="true"></mutation>
                                  <field name="OID">zigbee.0.90fd9ffffe844cab.colortemp</field>
                                  <field name="WITH_DELAY">TRUE</field>
                                  <field name="DELAY_MS">500</field>
                                  <field name="UNIT">ms</field>
                                  <field name="CLEAR_RUNNING">FALSE</field>
                                  <value name="VALUE"><block type="math_number" id=";WVp=_d?dO:(C9*RFTcz"><field name="NUM">250</field></block></value> 
                                  <next><block type="control" id="h!.1@_%.0/u:n#V2fbsy"><mutation delay_input="true"></mutation>
                                      <field name="OID">zigbee.0.90fd9ffffe844cab.state</field>
                                      <field name="WITH_DELAY">TRUE</field>
                                      <field name="DELAY_MS">500</field>
                                      <field name="UNIT">ms</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="VALUE"><block type="logic_boolean" id="DL0yJg^ivi,KQ8^u}K#q"><field name="BOOL">TRUE</field></block></value> 
                                      <next><block type="debug" id=")5~-#1ITwdSR?P#iS.,R"><field name="Severity">log</field>
                                          <value name="TEXT"><shadow type="text" id="R.RCJh;2Ls,G!V4eNWrP"><field name="TEXT">lampe an</field></shadow></value> 
                                          <next><block type="timeouts_settimeout" id="[w(#1-MP(]y%bCkYhCzR"><field name="NAME">timeout3</field>
                                              <field name="DELAY">75</field>
                                              <field name="UNIT">sec</field>
                                              <statement name="STATEMENT"><block type="control" id="rhbLfJ`UX}t~BD*Uu(32"><mutation delay_input="false"></mutation>
                                                  <field name="OID">zigbee.0.90fd9ffffe844cab.state</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE"><block type="logic_boolean" id="1YT|n.(?*U%Jbt?N]:!9"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></xml> 
          
          
          Astro Script:
          
          >! ```
          `/* 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
          23.02.2018 checkSec eingebaut (Uhrzeit sekundengenau?)
                     andere Astrozeiten werden nun auch gespeichert
                     Neuer subPfad
          24.02.2018 Unterteilung in zwei Bereiche
          27.02.2018 Bestimmung, welche AstroZeit aktuell ist (mit der ioBroker-Funktion compareTime)
                     Beschreibung Objekt Astrotag korrigiert
                     Objekte werden jetzt bei jedem Zeitplan angelegt, falls nicht (mehr) vorhanden
          */
          >! const sec = false; // Sekunden darstellen oder nicht
          const fC = false; // forceCreation ein/aus
          const pfad = "virtualDevice"
          const subpfad = pfad + ".Astro"; // subPfad zum Objekt - Objektbaum-Hauptverzeichnis
          >! // *****************************************************************************
          // TAGESZEITEN - T E I L 
          >! // Tageszeiten nach eigenem Gusto (Shifts siehe schedules weiter unten)
          const tageszeiten = ["Nacht", // Night
                               "Morgendämmerung",  // nightEnd
                               "Morgen",
                               "Vormittag",
                               "Mittag",
                               "Nachmittag",
                               "Abenddämmerung",
                               "Abend"];
          >! const idTageszeit = "javascript." + instance  + "." + subpfad + ".Tageszeit.current" /*Tageszeit*/,
                idTageszeitNext = "javascript." + instance  + "." + subpfad + ".Tageszeit.next";
          
          function createTageszeiten() {
              createState(idTageszeit, "nächsten Wechsel abwarten", fC, {
                  name: "Tageszeit",
                  desc: "Name der Tageszeit",
                  type: "string"
              });   
              createState(idTageszeitNext, "nächsten Wechsel abwarten", fC, {
                  name: "nächste Tageszeit",
                  desc: "Name der nächsten Tageszeit",
                  type: "string"
              });
          }
          >! function neue_tageszeit(abschnitt) {
              createTageszeiten(); // Objekte anlegen, falls noch nicht geschehen
              var akt = tageszeiten[parseInt(abschnitt, 10)],
                  // wenn aktuelles Element ist letztes, dann nächstes ist erstes :-D
                  nxt = (abschnitt + 1 === tageszeiten.length) ? tageszeiten[0] : tageszeiten[parseInt(abschnitt + 1, 10)];
              setState(idTageszeit, akt);
              setState(idTageszeitNext, nxt);
              log("neue Tagezeit: " + akt);
              log("nächte kommende Tagezeit: " + nxt);
          }
          >! // 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);
          });
          >! // *****************************************************************************
          // A S T O - T E I L 
          >! /* Objekt Astrotag 
             Astrotag liegt zwischen Sonnauf- und untergang, 
             Astronacht liegt zwischen Sonnenunter- und aufgang */
          const idAstrotag =  "javascript." + instance + "." + subpfad + ".Astrotag";
          const idAstrotime = "javascript." + instance + "." + subpfad + ".Astrozeit";
          >! // Array für Funktion compareTime (sind leider nicht alle Astrozeiten, die auch mit Astro-Function möglich sind)
          const astrotime_arr = [
              "sunrise", 
              "sunriseEnd", 
              "goldenHourEnd", 
              "goldenHour",
              "sunsetStart", 
              "sunset",
              "dusk", 
              "nauticalDusk", 
              "night", 
              "nightEnd", 
              "nauticalDawn", 
              "dawn"
              ];
          
          // Objekt für Uhrzeiten der Astrozeiten
          const astrotime = {
              "elements" : [
                  // Astrotag beginnt
                  {
                      "fname" : "sunrise", // function name
                      "de" : {
                          "name" : "Sonnenaufgang",
                          "nxt" : "nächster",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "Sunrise",
                          "desc" : "top edge of the sun appears on the horizon"
                      },
                      "astroday" : true //during astroday
                  },
                  {
                      "fname" : "sunriseEnd", // function name
                      "de" : {
                          "name" : "Ende Sonnenaufgang",
                          "nxt" : "nächstes",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "End of sunrise",
                          "desc" : "bottom edge of the sun touches the horizon"
                      },
                      "astroday" : true //during astroday
                  },
                  {
                      "fname" : "goldenHourEnd", // function name
                      "de" : {
                          "name" : "Ende der goldenen Stunde am Morgen",
                          "nxt" : "nächstes",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "End of golden hour",
                          "desc" : "morning golden hour (soft light, best time for photography) ends"
                      },
                      "astroday" : true //during astroday
                  },
                  {
                      "fname" : "solarNoon", // function name
                      "de" : {
                          "name" : "Sonnenhöchststand",
                          "nxt" : "nächster",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "Solar noon",
                          "desc" : "sun is in the highest position"
                      },
                      "astroday" : true //during astroday
                  },
                  {
                      "fname" : "goldenHour", // function name
                      "de" : {
                          "name" : "Goldene Stunde (am Abend)",
                          "nxt" : "nächste",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "Golden hour",
                          "desc" : "evening golden hour starts"
                      },
                      "astroday" : true //during astroday
                  },
                  {
                      "fname" : "sunsetStart", // function name
                      "de" : {
                          "name" : "Beginn Sonnenuntergang",
                          "nxt" : "nächster",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "Sunset starts",
                          "desc" : "bottom edge of the sun touches the horizon"
                      },
                      "astroday" : true //during astroday
                  },
                  // Astronacht beginnt
                  {
                      "fname" : "sunset", // function name
                      "de" : {
                          "name" : "Sonnenuntergang",
                          "nxt" : "nächster",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "Sunset",
                          "desc" : "sun disappears below the horizon, evening civil twilight starts"
                      },
                      "astroday" : false //during astronight
                  },
                  {
                      "fname" : "dusk",
                      "de" : {
                          "name" : "Abenddämmerung",
                          "nxt" : "nächste",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "Dusk",
                          "desc" : "evening nautical twilight starts"
                      },
                      "astroday" : false //during astronight
                  },
                  {
                      "fname" : "nauticalDusk",
                      "de" : {
                          "name" : "nautische Abenddämmerung",
                          "nxt" : "nächste",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "Nautical dusk",
                          "desc" : "evening astronomical twilight starts"
                      },
                      "astroday" : false //during astronight
                  },
                  {
                      "fname" : "night",
                      "de" : {
                          "name" : "Nacht",
                          "nxt" : "nächste",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "Night",
                          "desc" : "dark enough for astronomical observations"
                      },
                      "astroday" : false //during astronight
                  },
                  {
                      "fname" : "nadir",
                      "de" : {
                          "name" : "Nadir",
                          "nxt" : "nächster",
                          "desc" : "Fußpunkt gegenüber dem Zenit"
                      },
                      "en" : {
                          "name" : "Nadir",
                          "desc" : "darkest moment of the night, sun is in the lowest position"
                      },
                      "astroday" : false //during astronight
                  },
                  {
                      "fname" : "nightEnd",
                      "de" : {
                          "name" : "Nachtende",
                          "nxt" : "nächstes",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "Night ends",
                          "desc" : "morning astronomical twilight starts"
                      },
                      "astroday" : false //during astronight
                  },
                  {
                      "fname" : "nauticalDawn",
                      "de" : {
                          "name" : "nautische Morgendämmerung",
                          "nxt" : "nächste",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "Nautical dawn",
                          "desc" : "morning nautical twilight starts"
                      },
                      "astroday" : false //during astronight
                  },
                  {
                      "fname" : "dawn",
                      "de" : {
                          "name" : "Morgendämmerung",
                          "nxt" : "nächste",
                          "desc" : ""
                      },
                      "en" : {
                          "name" : "dawn",
                          "desc" : "morning nautical twilight ends, morning civil twilight starts"
                      },
                      "astroday" : false //during astronight
                  }
          
              ]
          };
          >! function writeAstroTimes(i) {
              // führende Nummer zur Sortierung in Admin/Objekte
              var nr = (i+1 < 10) ? "0" + (i+1) : (i+1);
              // Erstelle Objekt, falls nicht bereits vorhanden
              var idAstroObject = "javascript." + instance + "." + subpfad + "." + nr + " - " + astrotime.elements[i].fname;
              createState(idAstroObject, " ", fC, {
                  name: astrotime.elements[i].de.nxt + " " + astrotime.elements[i].de.name + " Uhrzeit",
                  desc: astrotime.elements[i].en.desc,
                  type: "string"
              });
          
              setTimeout(function() { // kurz warten, damit Objekte ggf. erst angelgt werden können
                  var astrotag = getState(idAstrotag).val,
                      temp;
                  var today = new Date();
                  var tomorrow = today.setDate(today.getDate()+1);
                  var next_event;
                  if (astrotag) { 
                      // Wenn Tag (Aufgang vorbei (erst wieder morgen, Untergang kommt noch heute)
                      next_event = (astrotime.elements[i].astroday) ? tomorrow : today; // prüfen
                      temp = getAstroDate(astrotime.elements[i].fname, next_event);
                  } else { 
                      // nach Nacht (Untergang vorbei (erst wieder morgen, Aufgang kommt heute oder morgen)
                      next_event = (astrotime.elements[i].astroday) ? today : tomorrow; // prüfen
                      temp = getAstroDate(astrotime.elements[i].fname, next_event);
                  /* // Rudimente aus altem Skript zur Erinnerung -> Nachfrage bei Bluefox
                  sonnenuntergang = getAstroDate("sunset", tomorrow);
                  nacht = (today.getHours() > 12 && today.getHours() <= 23) ? getAstroDate("night", today) : getAstroDate("night", tomorrow);
                  nachtende = (today.getHours() > 12 && today.getHours() <= 23) ? getAstroDate("night", tomorrow) : getAstroDate("night", today);
                  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(idAstroObject, checkSec(temp.toLocaleTimeString()) );
          
              }, 3 * 1000);
          }
          >! // Zeit mit oder ohne Sekunden anzeigen
          function checkSec (zeit) {
              if (!sec) {
                  var newString_arr = zeit.split(":");
                  var newString = newString_arr[0] + ":" + newString_arr[1];
                  return (newString);
              } else return (zeit);
          }
          >! function getAstrotime (j) {
              // Objekt anlegen, falls nicht bereits geschehen
              createState(idAstrotime, " ", fC, {
                  type: "string",
                  name: "aktuelle Astrozeit",
                  desc: "Anzeige der aktuellen Astrozeit durch ioBroker-Funktion compareTime()"
              }); 
              // aktuelle Astrozeit bestimmen
              var k = (j == (astrotime_arr.length-1) ) ? 0 : (j+1); // wenn j max ist, dann ist k min
              var startTime = astrotime_arr[j];
              var endTime   = astrotime_arr[k];
              //log("Astrozeit zwischen " + j + " und " + k + " von " + astrotime_arr.length);
              if (!startTime || !endTime) {
                  log("Fehler","error");
              } else {
                  var astrotime_check = (compareTime(startTime, endTime, "between") ) ;
                  if (astrotime_check) {
                      setState(idAstrotime, startTime);
                      //log("Astrozeit: " + startTime);
                  }
              }
          }
          >! function getAstroday() {
              // Astrotag bestimmen (boolean)
              createState(idAstrotag, false, fC, {
                  type: "boolean",
                  name: "Astrologischer Tag",
                  desc: "Liegt die aktuelle Zeit zwischen Sonnenauf- und untergang"
              }); 
              setState(idAstrotag, isAstroDay());
          }
          >! function iterateAstrotimes() {
              // Zeiten für jede Astrozeit schreiben
              for (var i = 0; i < astrotime.elements.length; i++) {
                  writeAstroTimes(i);
              }
              // aktuelle Astrozeit ermitteln
              for (var j = 0; j < astrotime_arr.length; j++) {
                  getAstrotime(j);
              }
          }
          >! // Astrotag checken
          schedule("*/1 * * * *", function () { // jede Minute
              getAstroday();
              iterateAstrotimes();
          });
          >! iterateAstrotimes();
          getAstroday();`
          [/i][/i][/i][/i][/i][/i][/i][/i]
          ```~~
          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            muschu72
            schrieb am zuletzt editiert von
            #6

            hallo ich bräuchte mal hilfe vieleicht wäre jemand so freundlich ,

            und zwar möchte ich mit meinen Hue motion sensor das Badlicht nachts steuern .

            Leider funktioniert nichts wenn ich die Astro funktion benutze das script habe ich hinzugefügt bekomme auch alles angezeigt .

            Ich wollte gerne das die Lampe( Sonoff Touch)mit astro in der Nacht angeht und 5Minuten anbleibt und der Hue Motion sensor nicht ein paar Minuten brauch bis er wieder reagiert wenn das machbar ist .hab mal ein Bild angehängt was mach ich da falsch? Danke schonmal
            7006_1.jpg

            1 Antwort Letzte Antwort
            0
            • R Offline
              R Offline
              RappiRN
              Most Active
              schrieb am zuletzt editiert von
              #7

              Du hast einen Trigger im Trigger! Das geht nicht!

              Der äußere Trigger (Astro) muss weg. Dafür muss in den anderen Trigger ein "falls" Nacht oder so ähnlich!

              Enrico

              1 Antwort Letzte Antwort
              0
              • J Offline
                J Offline
                J Riemann
                schrieb am zuletzt editiert von
                #8

                @muschu72:

                Ich wollte gerne das die Lampe( Sonoff Touch)mit astro in der Nacht angeht und 5Minuten anbleibt und der Hue Motion sensor nicht ein paar Minuten brauch bis er wieder reagiert `
                Definiere bitte mal etwas genauer was wann passieren soll?

                Soll die Lampe über Astro eingeschaltet werden?

                Oder soll die Lampe über den BWM geschaltet werden, aber nur wenn Astro Nacht?

                Sonstige Besonderheiten?

                ****Viele Grüße!

                Jörg****

                1 Antwort Letzte Antwort
                0
                • M Offline
                  M Offline
                  muschu72
                  schrieb am zuletzt editiert von
                  #9

                  Hi

                  erstmal danke das mit den 2 Triggern hab ich verstanden .

                  @Jörg

                  ich wollte das die Lampe im Badezimmer angeht wenn der BWM reagiert( BMW habe ich mit node hinbekommen )sprich sonoff soll dan angesprochen werden vom BWM ,das geht ja auch so nur wenn ich die Zeiten über Astro steuer funktionierte nichts.Habe es jetzt über Zeitsteuerung gemacht das er zwischen 17 und 6 Uhr reagiert funzt auch is ja aber zu leicht :D grins. aber ich kann ja noch lernen.

                  Mittlerweile funktioniert auch die Astro Steuerung mit ner Steckdose getestet fehler war im script da stand bei Astrotag false,heut mittag war komischerweise true und siehe da ging obwohl jetzt wieder false steht nur weis ich nicht warum das ständig wechselt.

                  aber ganz großes lob an das Forum das mann hier super geholfen bekommt.

                  Danke

                  1 Antwort Letzte Antwort
                  0
                  • R Offline
                    R Offline
                    RappiRN
                    Most Active
                    schrieb am zuletzt editiert von
                    #10

                    Astrotag ist auf true zwischen Sonnenaufgang und Sonnenuntergang anders herum ist der DP auf false.

                    Enrico

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      muschu72
                      schrieb am zuletzt editiert von
                      #11

                      Aha danke

                      Gruß Majo

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      601

                      Online

                      32.7k

                      Benutzer

                      82.5k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe