Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] From Dusk Till Dawn

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    256

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

[gelöst] From Dusk Till Dawn

[gelöst] From Dusk Till Dawn

Scheduled Pinned Locked Moved Skripten / Logik
6 Posts 4 Posters 1.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ldittmarL Offline
    ldittmarL Offline
    ldittmar
    Developer
    wrote on last edited by
    #1

    Hallo Leute,

    ich würde gerne bei einem Ereignis etwas ausführen, wenn es gerade zeitlich zwischen "dusk" und "dawn" ist, aber irgendwie klappt es nicht. Ich habe versucht Astrozeiten zu holen, die in String-Uhrzeit umzuwandel und dann mit "between" zu veegleichen, aber ohne erfolg. (bin gerade unterwegs und kann ggf später mein code posten).

    Grüße,

    ldittmar

    1 Reply Last reply
    0
    • HomoranH Offline
      HomoranH Offline
      Homoran
      Global Moderator Administrators
      wrote on last edited by
      #2

      Ist das hier etwas für dich.

      http://www.iobroker.net/?page_id=3708&lang=de

      Gruß

      Rainer

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      1 Reply Last reply
      0
      • ldittmarL Offline
        ldittmarL Offline
        ldittmar
        Developer
        wrote on last edited by
        #3

        Hi Rainer,

        danke für die schnelle Antwort. JS-Technisch bekomme ich das hin, aber ich wollte wissen ob es vielleicht mit compareTime "between" irgendwie machbar wäre… eine Idee wäre vielleicht auch das compareTime so zu erweitern, dass auch die Astrobegriffe akzeptiert werden. Sowas wie compareTime("dusk", "dawn", "between").

        Grüße,

        ldittmar

        1 Reply Last reply
        0
        • P Offline
          P Offline
          pix
          wrote on last edited by
          #4

          Vielleicht hilft dir die Funktion https://github.com/ioBroker/ioBroker.javascript#getastrodate oder auch https://github.com/ioBroker/ioBroker.javascript#isastroday.

          Mit getAstroDate kannst du ja abfragen, wann zB der nächste Sonnenuntergang ist und die Zeit speichern, um sie dann mit compareTime zu verwenden.

          Gruß

          Pix

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Reply Last reply
          0
          • ldittmarL Offline
            ldittmarL Offline
            ldittmar
            Developer
            wrote on last edited by
            #5

            Danke Rainer und Pix,

            ich habe mal alles angeschaut und eine Lösung gefunden:

            function compareAstroTime(startTime, endTime, operation, time) {
                var astroList = ["sunrise", "sunset", "sunriseEnd", "sunsetStart", "dawn", "dusk", "nauticalDawn", "nauticalDusk", "nightEnd", "night", "goldenHourEnd", "goldenHour"];
            
                if (typeof startTime === 'string') {
                    if (astroList.indexOf(startTime) !== -1) {
                        startTime = getAstroDate(startTime);
                        startTime = startTime.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit', hour12: false});
                        log(startTime);
                    }
                }
            
                if (endTime && typeof endTime === 'string') {
                    if (astroList.indexOf(endTime) !== -1) {
                        endTime = getAstroDate(endTime);
                        endTime = endTime.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit', hour12: false});
                        log(endTime);
                    }
                }
            
                return compareTime(startTime, endTime, operation, time);
            
            }
            
            

            Diese Funktion könnte man später einfach im JS-Adapter in der Funktion compareTime einbauen. Zur Zeit nutze ich es als globale Funktion. Ich habe mich auch an den Adapter orientiert, damit man ggf. es einfach einbauen kann. Ich schaue praktisch ob der String der kommt eine Astrozeit ist und wenn ja übersetze ich es in Stunden/Minuten und übergebe weiter an compareTime().

            Edit: Das einzige was hier "blöd" ist, ist die Tatsache, dass sich die Astrozeiten immer auf heute beziehen… ist aber bei so eine kleine Differenz wahrscheinlich zu verkraften. 😉

            Grüße,

            ldittmar

            1 Reply Last reply
            0
            • rantanplanR Offline
              rantanplanR Offline
              rantanplan
              wrote on last edited by
              #6

              @ldittmar:

              Hallo Leute,

              ich würde gerne bei einem Ereignis etwas ausführen, wenn es gerade zeitlich zwischen "dusk" und "dawn" ist, aber irgendwie klappt es nicht. Ich habe versucht Astrozeiten zu holen, die in String-Uhrzeit umzuwandel und dann mit "between" zu veegleichen, aber ohne erfolg. (bin gerade unterwegs und kann ggf später mein code posten).

              Grüße,

              ldittmar `

              Hallo ldttmar

              Schau mal hier http://forum.iobroker.net/viewtopic.php … 891#p48209

              Vielleicht kannst Du mit diesem Prinzip etwas anfangen.

              Grüße

              Rantanplan

              CCU3 / MS Server 2019(VM) / Scripten mit Blockly

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              127

              Online

              32.4k

              Users

              81.3k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe