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. [gelöst] From Dusk Till Dawn

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

[gelöst] From Dusk Till Dawn

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
6 Beiträge 4 Kommentatoren 1.1k 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.
  • ldittmarL Offline
    ldittmarL Offline
    ldittmar
    Developer
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • ldittmarL Offline
        ldittmarL Offline
        ldittmar
        Developer
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          pix
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • ldittmarL Offline
            ldittmarL Offline
            ldittmar
            Developer
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            0
            • rantanplanR Offline
              rantanplanR Offline
              rantanplan
              schrieb am zuletzt editiert von
              #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 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

              572

              Online

              32.4k

              Benutzer

              81.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