Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly, um nur nachts Werte zu aktualisieren

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    5
    1
    134

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    168

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    871

Blockly, um nur nachts Werte zu aktualisieren

Scheduled Pinned Locked Moved Skripten / Logik
5 Posts 2 Posters 401 Views 1 Watching
  • 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.
  • BertDerKleineB Offline
    BertDerKleineB Offline
    BertDerKleine
    wrote on last edited by BertDerKleine
    #1

    Hallo,

    ich möchte ein Blockly basteln, dass mir nachts alle 30 Sekunden alternierend einen Wert von 170,0 und 170,1 in einen Datenpunkt AAA schreibt.
    Irgendwie finde ich als Nichtentwickler da keinen Einstieg.
    Ich habe eine KI dazu befragt und die spuckt mir sowas hier aus:

    let nextValue = 170.0;
    let intervalId = null;
    
    // Funktion zum Starten/Stoppen des Intervals
    function checkNightMode() {
      const now = new Date();
      const sunrise = new Date(getState('astro.0.Sun.Rise').value);
      const sunset = new Date(getState('astro.0.Sun.Set').value);
      
      if (now > sunrise && now < sunset) { // Tag
        if (intervalId !== null) {
          clearInterval(intervalId);
          intervalId = null;
          log("Interval gestoppt (Tagmodus)");
        }
      } else { // Nacht
        if (intervalId === null) {
          intervalId = setInterval(() => {
            setState('AAA', nextValue);
            nextValue = nextValue === 170.0 ? 170.1 : 170.0;
          }, 30000); // 30 Sekunden
          log("Interval gestartet (Nachtmodus)");
        }
      }
    }
    
    // Initialisierung
    schedule('* */1 * * *', () => checkNightMode()); // Stündlicher Fallback
    on({ id: ['astro.0.Sun.Rise', 'astro.0.Sun.Set'], change: 'ne' }, checkNightMode);
    checkNightMode(); // Startprüfung
    

    Leider verstehe ich Javascript als solches nicht.
    Könnte jemand helfend skizzieren, wie ich derlei mit Blockly Bausteinen hinbekomme?

    Ich habe mal sowas hier versucht:
    b.png

    Dazu wird aber angemeckert:

    • while-Schleife blockiert den Thread: Die Endlosschleife blockiert die gesamte ioBroker-Instanz, da sie synchron läuft.
    • Intervalle häufen sich: Bei jedem Sonnenuntergang wird ein neues Intervall gestartet, ohne das vorherige zu stoppen.
    • Kein Stoppmechanismus: Es fehlt die Logik zum Beenden bei Sonnenaufgang.
    • Wartezeit unklar: wait(30000) im Intervall ist redundant, wenn bereits setInterval(60000) verwendet wird.

    Und nun weiss ich nicht weiter.

    paul53P 1 Reply Last reply
    0
    • BertDerKleineB BertDerKleine

      Hallo,

      ich möchte ein Blockly basteln, dass mir nachts alle 30 Sekunden alternierend einen Wert von 170,0 und 170,1 in einen Datenpunkt AAA schreibt.
      Irgendwie finde ich als Nichtentwickler da keinen Einstieg.
      Ich habe eine KI dazu befragt und die spuckt mir sowas hier aus:

      let nextValue = 170.0;
      let intervalId = null;
      
      // Funktion zum Starten/Stoppen des Intervals
      function checkNightMode() {
        const now = new Date();
        const sunrise = new Date(getState('astro.0.Sun.Rise').value);
        const sunset = new Date(getState('astro.0.Sun.Set').value);
        
        if (now > sunrise && now < sunset) { // Tag
          if (intervalId !== null) {
            clearInterval(intervalId);
            intervalId = null;
            log("Interval gestoppt (Tagmodus)");
          }
        } else { // Nacht
          if (intervalId === null) {
            intervalId = setInterval(() => {
              setState('AAA', nextValue);
              nextValue = nextValue === 170.0 ? 170.1 : 170.0;
            }, 30000); // 30 Sekunden
            log("Interval gestartet (Nachtmodus)");
          }
        }
      }
      
      // Initialisierung
      schedule('* */1 * * *', () => checkNightMode()); // Stündlicher Fallback
      on({ id: ['astro.0.Sun.Rise', 'astro.0.Sun.Set'], change: 'ne' }, checkNightMode);
      checkNightMode(); // Startprüfung
      

      Leider verstehe ich Javascript als solches nicht.
      Könnte jemand helfend skizzieren, wie ich derlei mit Blockly Bausteinen hinbekomme?

      Ich habe mal sowas hier versucht:
      b.png

      Dazu wird aber angemeckert:

      • while-Schleife blockiert den Thread: Die Endlosschleife blockiert die gesamte ioBroker-Instanz, da sie synchron läuft.
      • Intervalle häufen sich: Bei jedem Sonnenuntergang wird ein neues Intervall gestartet, ohne das vorherige zu stoppen.
      • Kein Stoppmechanismus: Es fehlt die Logik zum Beenden bei Sonnenaufgang.
      • Wartezeit unklar: wait(30000) im Intervall ist redundant, wenn bereits setInterval(60000) verwendet wird.

      Und nun weiss ich nicht weiter.

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #2

      @bertderkleine sagte: nachts alle 30 Sekunden alternierend einen Wert von 170,0 und 170,1 in einen Datenpunkt AAA schreibt.

      Blockly_temp.JPG

      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

      BertDerKleineB 1 Reply Last reply
      3
      • paul53P paul53

        @bertderkleine sagte: nachts alle 30 Sekunden alternierend einen Wert von 170,0 und 170,1 in einen Datenpunkt AAA schreibt.

        Blockly_temp.JPG

        BertDerKleineB Offline
        BertDerKleineB Offline
        BertDerKleine
        wrote on last edited by
        #3

        @paul53 sagte in Blockly, um nur nachts Werte zu aktualisieren:

        @bertderkleine sagte: nachts alle 30 Sekunden alternierend einen Wert von 170,0 und 170,1 in einen Datenpunkt AAA schreibt.

        Blockly_temp.JPG

        Vielen Dank! Solche Denkanstösse, wie man etwas umsetzen kann sind immer hilfreich!

        👍

        paul53P 1 Reply Last reply
        0
        • BertDerKleineB BertDerKleine

          @paul53 sagte in Blockly, um nur nachts Werte zu aktualisieren:

          @bertderkleine sagte: nachts alle 30 Sekunden alternierend einen Wert von 170,0 und 170,1 in einen Datenpunkt AAA schreibt.

          Blockly_temp.JPG

          Vielen Dank! Solche Denkanstösse, wie man etwas umsetzen kann sind immer hilfreich!

          👍

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #4

          @bertderkleine sagte: Denkanstösse, wie man etwas umsetzen kann

          Version mit weniger Mathematik:

          Blockly_temp.JPG

          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

          BertDerKleineB 1 Reply Last reply
          1
          • paul53P paul53

            @bertderkleine sagte: Denkanstösse, wie man etwas umsetzen kann

            Version mit weniger Mathematik:

            Blockly_temp.JPG

            BertDerKleineB Offline
            BertDerKleineB Offline
            BertDerKleine
            wrote on last edited by
            #5

            @paul53 sagte in Blockly, um nur nachts Werte zu aktualisieren:

            @bertderkleine sagte: Denkanstösse, wie man etwas umsetzen kann

            Version mit weniger Mathematik:

            Blockly_temp.JPG

            Nochmals danke! 👍

            1 Reply Last reply
            0

            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

            With your input, this post could be even better 💗

            Register Login
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            Support us

            ioBroker
            Community Adapters
            Donate

            325

            Online

            32.8k

            Users

            82.7k

            Topics

            1.3m

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

            • Don't have an account? Register

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