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. Script für Mondphase

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Script für Mondphase

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
3 Beiträge 2 Kommentatoren 286 Aufrufe 3 Watching
  • Ä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.
  • Berges01B Online
    Berges01B Online
    Berges01
    schrieb am zuletzt editiert von
    #1

    @paul53
    Du hast mal ein Script erstellt für die Mondphase.

    
    const suncalc = require('suncalc');
    const idVis = 'Vis.Mondphase';  // Für Vis
     
    createState(idVis, 0, {
       type: 'number',
       min: 0,
       max: 7,
       role: 'level',
       states: {
          0: 'Neumond',
          1: 'Viertelmond zu',
          2: 'Halbmond zu',
          3: 'Dreiviertelmond zu',
          4: 'Vollmond',
          5: 'Dreiviertelmond ab',
          6: 'Halbmond ab',
          7: 'Viertelmond ab'
       }   
    });
     
    function mpVis() {
       var mond = suncalc.getMoonIllumination(new Date());
       var mp = mond.phase;
       var state = 0; 
       if(mp > 0.05) state = 1;
       if(mp > 0.2) state = 2;
       if(mp > 0.3) state = 3;
       if(mp > 0.45) state = 4;
       if(mp > 0.55) state = 5;
       if(mp > 0.7) state = 6;
       if(mp > 0.8) state = 7;
       if(mp > 0.95) state = 0;
       setState(idVis, state, true);
    }
     
    mpVis(); // Skriptstart
     
    schedule("*/10 * * * *", mpVis);  // alle 10 Minuten
    
    

    So weit ich erkennen kann, ist das fast das was ich benötige.
    Leider habe ich keine Erfahrung in Java.
    Kann man das so umschrieben, das 2 Datenpunkte Mond_State und Mond_Text bei den Anderen Astrodaten beschrieben werden?

    F.B.

    paul53P 1 Antwort Letzte Antwort
    0
    • Berges01B Berges01

      @paul53
      Du hast mal ein Script erstellt für die Mondphase.

      
      const suncalc = require('suncalc');
      const idVis = 'Vis.Mondphase';  // Für Vis
       
      createState(idVis, 0, {
         type: 'number',
         min: 0,
         max: 7,
         role: 'level',
         states: {
            0: 'Neumond',
            1: 'Viertelmond zu',
            2: 'Halbmond zu',
            3: 'Dreiviertelmond zu',
            4: 'Vollmond',
            5: 'Dreiviertelmond ab',
            6: 'Halbmond ab',
            7: 'Viertelmond ab'
         }   
      });
       
      function mpVis() {
         var mond = suncalc.getMoonIllumination(new Date());
         var mp = mond.phase;
         var state = 0; 
         if(mp > 0.05) state = 1;
         if(mp > 0.2) state = 2;
         if(mp > 0.3) state = 3;
         if(mp > 0.45) state = 4;
         if(mp > 0.55) state = 5;
         if(mp > 0.7) state = 6;
         if(mp > 0.8) state = 7;
         if(mp > 0.95) state = 0;
         setState(idVis, state, true);
      }
       
      mpVis(); // Skriptstart
       
      schedule("*/10 * * * *", mpVis);  // alle 10 Minuten
      
      

      So weit ich erkennen kann, ist das fast das was ich benötige.
      Leider habe ich keine Erfahrung in Java.
      Kann man das so umschrieben, das 2 Datenpunkte Mond_State und Mond_Text bei den Anderen Astrodaten beschrieben werden?

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @berges01 sagte: 2 Datenpunkte Mond_State und Mond_Text bei den Anderen Astrodaten

      const suncalc = require('suncalc');
      const idState = 'variables.astro.moonState';  // Für Vis
      const idText  = 'variables.astro.moonText';
      const states = {
          0: 'Neumond',
          1: 'Viertelmond zu',
          2: 'Halbmond zu',
          3: 'Dreiviertelmond zu',
          4: 'Vollmond',
          5: 'Dreiviertelmond ab',
          6: 'Halbmond ab',
          7: 'Viertelmond ab'
      };
       
      createState(idState, 0, {
         name: 'Mond Status', 
         type: 'number',
         min: 0,
         max: 7,
         role: 'value',
         read: true,
         write: false,
         states: states  
      });
      createState(idText, '', {
          name: 'Mond Text',
          type: 'string',
          role: 'text', 
          read: true,
          write: false
      });
       
      function mpVis() {
         const mond = suncalc.getMoonIllumination(new Date());
         const mp = mond.phase;
         let state = 0; 
         if(mp > 0.05) state = 1;
         if(mp > 0.2) state = 2;
         if(mp > 0.3) state = 3;
         if(mp > 0.45) state = 4;
         if(mp > 0.55) state = 5;
         if(mp > 0.7) state = 6;
         if(mp > 0.8) state = 7;
         if(mp > 0.95) state = 0;
         setState(idState, state, true);
         setState(idText, states[state], true);
      }
       
      setTimeout(mpVis, 200); // Skriptstart
       
      schedule("*/10 * * * *", mpVis);  // alle 10 Minuten
      

      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

      Berges01B 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @berges01 sagte: 2 Datenpunkte Mond_State und Mond_Text bei den Anderen Astrodaten

        const suncalc = require('suncalc');
        const idState = 'variables.astro.moonState';  // Für Vis
        const idText  = 'variables.astro.moonText';
        const states = {
            0: 'Neumond',
            1: 'Viertelmond zu',
            2: 'Halbmond zu',
            3: 'Dreiviertelmond zu',
            4: 'Vollmond',
            5: 'Dreiviertelmond ab',
            6: 'Halbmond ab',
            7: 'Viertelmond ab'
        };
         
        createState(idState, 0, {
           name: 'Mond Status', 
           type: 'number',
           min: 0,
           max: 7,
           role: 'value',
           read: true,
           write: false,
           states: states  
        });
        createState(idText, '', {
            name: 'Mond Text',
            type: 'string',
            role: 'text', 
            read: true,
            write: false
        });
         
        function mpVis() {
           const mond = suncalc.getMoonIllumination(new Date());
           const mp = mond.phase;
           let state = 0; 
           if(mp > 0.05) state = 1;
           if(mp > 0.2) state = 2;
           if(mp > 0.3) state = 3;
           if(mp > 0.45) state = 4;
           if(mp > 0.55) state = 5;
           if(mp > 0.7) state = 6;
           if(mp > 0.8) state = 7;
           if(mp > 0.95) state = 0;
           setState(idState, state, true);
           setState(idText, states[state], true);
        }
         
        setTimeout(mpVis, 200); // Skriptstart
         
        schedule("*/10 * * * *", mpVis);  // alle 10 Minuten
        
        Berges01B Online
        Berges01B Online
        Berges01
        schrieb am zuletzt editiert von
        #3

        @paul53
        Besten Dank !
        Das funktioniert Gut, jetzt kann ich weiter machen und habe eine Vorlage.

        F.B.

        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

        499

        Online

        32.6k

        Benutzer

        82.1k

        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