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. JavaScript
  5. innerhalb eines Zeitplans Status abfragen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    509

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

innerhalb eines Zeitplans Status abfragen

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
9 Beiträge 3 Kommentatoren 875 Aufrufe 1 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.
  • L Offline
    L Offline
    Luebke69
    schrieb am zuletzt editiert von
    #1

    Hallo,
    wie kann ich innerhalb eines Zeitplanes (Bewässerung zu bestimmten Zeiten) die Umweltdaten (Regen, Wind) regelmäßig abfragen, um das Programm zu beenden oder gar nicht erst zu starten?
    Danke, liebe Community!
    Bisher habe ich das so gelöst (ist Blockly, soll aber Javascript werden, weil da mehr fetzt...)

    // Terrasse vorn
    schedule("30 23 * * 0-1,3,5", function () {
      if (getState("hm-rega.0.11439").val <= 4 && getState("hm-rega.0.11440").val <= 4 && getState("hm-rpc.0.NEQ1100316.1.WIND_SPEED").val <= 30 && getState("hm-rpc.0.QEQ2009796.1.STATE").val == 0) {
        setState("hm-rpc.0.NEQ0102532.3.STATE"/*Bewässerung Terrasse vorn.STATE*/, true);
        setStateDelayed("hm-rpc.0.NEQ0102532.3.STATE"/*Bewässerung Terrasse vorn.STATE*/, false, 1800000, false);
      } else {
        setState("hm-rpc.0.NEQ0102532.3.STATE"/*Bewässerung Terrasse vorn.STATE*/, false);
      }
    });
    
    L 1 Antwort Letzte Antwort
    0
    • L Luebke69

      Hallo,
      wie kann ich innerhalb eines Zeitplanes (Bewässerung zu bestimmten Zeiten) die Umweltdaten (Regen, Wind) regelmäßig abfragen, um das Programm zu beenden oder gar nicht erst zu starten?
      Danke, liebe Community!
      Bisher habe ich das so gelöst (ist Blockly, soll aber Javascript werden, weil da mehr fetzt...)

      // Terrasse vorn
      schedule("30 23 * * 0-1,3,5", function () {
        if (getState("hm-rega.0.11439").val <= 4 && getState("hm-rega.0.11440").val <= 4 && getState("hm-rpc.0.NEQ1100316.1.WIND_SPEED").val <= 30 && getState("hm-rpc.0.QEQ2009796.1.STATE").val == 0) {
          setState("hm-rpc.0.NEQ0102532.3.STATE"/*Bewässerung Terrasse vorn.STATE*/, true);
          setStateDelayed("hm-rpc.0.NEQ0102532.3.STATE"/*Bewässerung Terrasse vorn.STATE*/, false, 1800000, false);
        } else {
          setState("hm-rpc.0.NEQ0102532.3.STATE"/*Bewässerung Terrasse vorn.STATE*/, false);
        }
      });
      
      L Offline
      L Offline
      Luebke69
      schrieb am zuletzt editiert von
      #2

      Also in dem Sinne als Unterpunkt der Schedule...
      (ist mein erstes Script, dass ich allein gemacht habe und ich lerne es jetzt erst)

      // Regnet es?
      var nass = (getState('hm-rpc.0.QEQ2009796.1.STATE'/*Garten - Regensensor 1 STATE*/).val == 1)
      var trocken = (getState('hm-rpc.0.QEQ2009796.1.STATE'/*Garten - Regensensor 1 STATE*/).val == 0)
      schedule("*/10 * * * *", function () {
        if  (nass) {
          console.log("Es regnet.")
        }
        if  (trocken) {
            console.log("Es regnet nicht.")
        }
      });
      
      paul53P 1 Antwort Letzte Antwort
      0
      • L Luebke69

        Also in dem Sinne als Unterpunkt der Schedule...
        (ist mein erstes Script, dass ich allein gemacht habe und ich lerne es jetzt erst)

        // Regnet es?
        var nass = (getState('hm-rpc.0.QEQ2009796.1.STATE'/*Garten - Regensensor 1 STATE*/).val == 1)
        var trocken = (getState('hm-rpc.0.QEQ2009796.1.STATE'/*Garten - Regensensor 1 STATE*/).val == 0)
        schedule("*/10 * * * *", function () {
          if  (nass) {
            console.log("Es regnet.")
          }
          if  (trocken) {
              console.log("Es regnet nicht.")
          }
        });
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

        @luebke69 sagte: ist mein erstes Script, dass ich allein gemacht habe

        Das sieht man, denn es kann nicht funktionieren: Man muss den Datenpunkt-Wert innerhalb eines Triggers (schedule) auslesen.

        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

        L 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @luebke69 sagte: ist mein erstes Script, dass ich allein gemacht habe

          Das sieht man, denn es kann nicht funktionieren: Man muss den Datenpunkt-Wert innerhalb eines Triggers (schedule) auslesen.

          L Offline
          L Offline
          Luebke69
          schrieb am zuletzt editiert von
          #4

          @paul53 Das untere Script macht, was es soll. Kannst du mir helfen?

          paul53P 1 Antwort Letzte Antwort
          0
          • L Luebke69

            @paul53 Das untere Script macht, was es soll. Kannst du mir helfen?

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

            @luebke69 sagte: Das untere Script macht, was es soll. Kannst du mir helfen?

            Das täuscht, denn die Variablen nass, trocken werden nur bei Skript-Start mit den Werten befüllt, ändern sich danach aber nicht mehr: Im Log wird immer der gleiche Text ausgegeben, auch wenn es anfängt oder aufhört zu regnen.
            Normalerweise macht man keine zyklische Abfrage, sondern triggert auf Wertänderung:

            // Regnet es?
            on('hm-rpc.0.QEQ2009796.1.STATE'/*Garten - Regensensor 1 STATE*/, function(dp) {
              if(dp.state.val) {
                log("Es regnet.");
              } else {
                log("Es regnet nicht.");
              }
            });
            

            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
            • L Offline
              L Offline
              Luebke69
              schrieb am zuletzt editiert von Luebke69
              #6

              Cool. Vielen Dank!
              Fragt er jetzt auch regelmäßig ab? Er macht ein log doch jetzt nur bei Änderung, oder, weil das on() auf Änderungen regiert...

              Aber wie frage ich mein obiges Script so ab, dass in der Bewässerungszeit prüft, ob es regnet oder windig ist - dann Sprenger aus?
              Darf ich fragen, ob meine Annahme richtig ist, dass dann "dp.state.val" dem Grunde nach true ist?
              Ich lerne gerade JavaScript über einen Online-Kurs und muss feststellen, dass sich IoBroker davon doch etwas unterscheidet...

              paul53P 1 Antwort Letzte Antwort
              0
              • L Luebke69

                Cool. Vielen Dank!
                Fragt er jetzt auch regelmäßig ab? Er macht ein log doch jetzt nur bei Änderung, oder, weil das on() auf Änderungen regiert...

                Aber wie frage ich mein obiges Script so ab, dass in der Bewässerungszeit prüft, ob es regnet oder windig ist - dann Sprenger aus?
                Darf ich fragen, ob meine Annahme richtig ist, dass dann "dp.state.val" dem Grunde nach true ist?
                Ich lerne gerade JavaScript über einen Online-Kurs und muss feststellen, dass sich IoBroker davon doch etwas unterscheidet...

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

                @luebke69 sagte: Er macht ein log doch jetzt nur bei Änderung

                Ja, braucht man öfter ein Log ? Es würde keine neue Information enthalten.

                @luebke69 sagte in innerhalb eines Zeitplans Status abfragen:

                "dp.state.val" dem Grunde nach true ist?

                dp.state.val ist der Wert des Trigger-Datenpunktes, der bei Regen true ist.

                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

                L 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @luebke69 sagte: Er macht ein log doch jetzt nur bei Änderung

                  Ja, braucht man öfter ein Log ? Es würde keine neue Information enthalten.

                  @luebke69 sagte in innerhalb eines Zeitplans Status abfragen:

                  "dp.state.val" dem Grunde nach true ist?

                  dp.state.val ist der Wert des Trigger-Datenpunktes, der bei Regen true ist.

                  L Offline
                  L Offline
                  Luebke69
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 Danke für dein Mitdenken!
                  Mir geht es ja dem Grunde nach nicht um das Log, das für mich ja nur Spielerei ist, um einen Erfolg - oder eben nicht - meiner Programmierung darzustellen. Mir geht es wie gesagt, um das Prüfen innerhalb einer Schedule, den Rasensprenger auszuschalten, wenn es regent oder stürmt. Das macht das Programm oben an sich aber eben nur einmal. Wenn es dann nach der Prüfung im Zeitraum regnet, macht er einfach weiter...

                  htreckslerH 1 Antwort Letzte Antwort
                  0
                  • L Luebke69

                    @paul53 Danke für dein Mitdenken!
                    Mir geht es ja dem Grunde nach nicht um das Log, das für mich ja nur Spielerei ist, um einen Erfolg - oder eben nicht - meiner Programmierung darzustellen. Mir geht es wie gesagt, um das Prüfen innerhalb einer Schedule, den Rasensprenger auszuschalten, wenn es regent oder stürmt. Das macht das Programm oben an sich aber eben nur einmal. Wenn es dann nach der Prüfung im Zeitraum regnet, macht er einfach weiter...

                    htreckslerH Offline
                    htreckslerH Offline
                    htrecksler
                    Forum Testing
                    schrieb am zuletzt editiert von htrecksler
                    #9

                    @luebke69 sagte in innerhalb eines Zeitplans Status abfragen:

                    macht er einfach weiter...

                    was spricht dagegen einfach zusätzlich auf "Regenbeginn" (welcher DP das auch immer ist) zu triggern?
                    ...zu früh abgeschickt...

                    so hatte Paul es ja auch vorgeschlagen.
                    Der schedule startet die Begegnung --> Beregnung = true und wenn dann der richtige Regen einsetzt wird durch den Trigger Beregnung = false.

                    Gruss Hermann

                    ioBroker auf Proxmox (Debian) auf IntelNuc als Produktivsystem

                    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

                    585

                    Online

                    32.5k

                    Benutzer

                    81.8k

                    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