Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Schedule jede Stunde

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Schedule jede Stunde

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      michihorn last edited by

      Hallo ich habe folgendes Vorhaben: Im Ferienhaus steht ein Iobroker der mir über Telegram Temperatur Werte in die Heimat übermitteln soll.
      Ich habe 7 Zigbee Geräte die einmal pro Stunde im Versatz von 1 Minute Daten übermitteln sollen. Mein Ansatz sieht wie folgt aus:

      /*****Giethoorn sendet Temperaturen an Castrop *****************
      **    März 2021
      **    
      **    
      **    erstellt: 10.03.21
      **    geä: 
      ***********************************************************************/
      const id_TA = "zigbee.0.00158d000444cb23.temperature"; //1
      const id_TK = "zigbee.0.00158d0001e09c1a.temperature"; //2
      const id_TN = "zigbee.0.00158d0001e0821b.temperature"; //3
      const id_TS = "zigbee.0.00158d0001e13db7.temperature"; //4
      const id_TW = "zigbee.0.00158d0001e09bc7.temperature"; //5
      
      const id_OS = "zigbee.0.00158d000423bfd0.illuminance"; //6
      const id_IS = "zigbee.0.00158d000253e897.illuminance"; //7
      
      //schedule("0 */1 * * *", function () {
      //1
      schedule("1 * * * *", function () {
          sendTo('telegram.0', 'send', {
              text: ("TA " + getState(id_TA).val)
          });
          log("TA " + getState(id_TK).val);
          //2
          schedule("2 * * * *", function () {
              sendTo('telegram.0', 'send', {
                  text: ("TK " + getState(id_TK).val)
              });
              log("TK " + getState(id_TN).val);
              //3
              schedule("3 * * * *", function () {
                  sendTo('telegram.0', 'send', {
                      text: ("TN " + getState(id_TN).val)
                  });
                  log("TN " + getState(id_TS).val);
                  //4
                  schedule("4 * * * *", function () {
                      sendTo('telegram.0', 'send', {
                          text: ("TS " + getState(id_TS).val)
                      });
                      log("TS " + getState(id_TS).val);
                      //5
                      schedule("5 * * * *", function () {
                          sendTo('telegram.0', 'send', {
                              text: ("TW " + getState(id_TW).val)
                          });
                          log("TW " + getState(id_TW).val);
                          //6
                          schedule("6 * * * *", function () {
                              sendTo('telegram.0', 'send', {
                                  text: ("OS " + getState(id_OS).val)
                              });
                              log("OS " + getState(id_OS).val);
                              //7   
                              schedule("7 * * * *", function () {
                                  sendTo('telegram.0', 'send', {
                                      text: ("IS " + getState(id_IS).val)
                                  });
                                  log("IS " + getState(id_IS).val);
                              });
                          });
                      });
                  });
              });
          });
      });
      //});
      

      In der Heimat empfängt der Iobroker die Daten nach diesem Script:

      /*****Castrop empfängt Daten aus Giethoorn *****************
      **    März 2021
      **    Telegram-Adapter, 
      **    
      **    
      **    geändert:09.03.21
      ************************************************************/
      const id_req = "telegram.0.communicate.request";
      
      on({ id: id_req, change: "any" }, function (obj) {
          var value = getState(id_req).val;
          var raum = value.substr(11, 2);
          var wert = value.substring(value.length - 5)
           log("Telegraminhalt "+value);
          log("Messwert "+wert);
          if ((raum == "IS") || (raum == "OS")) {
              wert=value.substr(13,4);
              log("LUX " +wert);
          }
          log("Gerät " +raum);
      
          if (raum === "TA") {
              setState("javascript.3.Giethoorn.Temp.TA", wert);
          }
          if (raum === "TW") {
              setState("javascript.3.Giethoorn.Temp.TW", wert);
          }
          if (raum === "TK") {
              setState("javascript.3.Giethoorn.Temp.TK", wert);
          }
          if (raum === "TS") {
              setState("javascript.3.Giethoorn.Temp.TS", wert);
          }
          if (raum === "TN") {
              setState("javascript.3.Giethoorn.Temp.TN", wert);
          }
           if (raum === "OS") {
              setState("javascript.3.Giethoorn.Daten.OSLux", wert);
          }
               if (raum === "IS") {
              setState("javascript.3.Giethoorn.Daten.ISLux", wert);
          }
      });
      

      Wie würdet ihr das Vorhaben lösen?
      Gruß
      Michael

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @michihorn last edited by

        @michihorn sagte: einmal pro Stunde im Versatz von 1 Minute Daten übermitteln sollen.

        Die Schedules darf man nicht ineinander verschachteln. Ordne sie einfach untereinander an.

        M 1 Reply Last reply Reply Quote 0
        • M
          michihorn @paul53 last edited by michihorn

          @paul53 Hab ich gemacht:

          /*****Giethoorn sendet Temperaturen an Castrop *****************
          **    März 2021
          **    
          **    
          **    erstellt: 10.03.21
          **    geä: 11.03.21
          ***********************************************************************/
          //Temperatur Sensoren--------------------------------------------
          const id_TA = "zigbee.0.00158d000444cb23.temperature"; //1
          const id_TK = "zigbee.0.00158d0001e09c1a.temperature"; //2
          const id_TN = "zigbee.0.00158d0001e0821b.temperature"; //3
          const id_TS = "zigbee.0.00158d0001e13db7.temperature"; //4
          const id_TW = "zigbee.0.00158d0001e09bc7.temperature"; //5
          //PIR--------------------------------------------------------------
          const id_OS = "zigbee.0.00158d000423bfd0.illuminance"; //6
          const id_IS = "zigbee.0.00158d000253e897.illuminance"; //7
          
          //1 
          schedule("1 * * * *", function () {
              sendTo('telegram.0', 'send', {
                  text: ("TA " + getState(id_TA).val)
              });
              log("TA " + getState(id_TA).val);
              //2
          });
          schedule("2 * * * *", function () {
              sendTo('telegram.0', 'send', {
                  text: ("TK " + getState(id_TK).val)
              });
              log("TK " + getState(id_TK).val);
          });
          //3
          schedule("3 * * * *", function () {
              sendTo('telegram.0', 'send', {
                  text: ("TN " + getState(id_TN).val)
              });
              log("TN " + getState(id_TN).val);
          });
          //4
          schedule("4 * * * *", function () {
              sendTo('telegram.0', 'send', {
                  text: ("TS " + getState(id_TS).val)
              });
              log("TS " + getState(id_TS).val);
          });
          //5
          schedule("5 * * * *", function () {
              sendTo('telegram.0', 'send', {
                  text: ("TW " + getState(id_TW).val)
              });
              log("TW " + getState(id_TW).val);
          });
          //6
          schedule("6 * * * *", function () {
              sendTo('telegram.0', 'send', {
                  text: ("OS " + getState(id_OS).val)
              });
              log("OS " + getState(id_OS).val);
          });
          //7   
          schedule("7 * * * *", function () {
              sendTo('telegram.0', 'send', {
                  text: ("IS " + getState(id_IS).val)
              });
              log("IS " + getState(id_IS).val);
          });
          
          

          nur jetzt werden mir jede Menge Telegrame von jedem Gerät geschickt. Was mache ich noch falsch? Der Plan war ja, 7 Telegrame zu jeder Stunde, habe gerade 454 Telegramme bekommen.

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @michihorn last edited by

            @michihorn sagte: habe gerade 454 Telegramme bekommen.

            Die waren wohl noch im Puffer aus der Verschachtelung.

            @michihorn sagte in Schedule jede Stunde:

            Der Plan war ja, 7 Telegrame zu jeder Stunde,

            Das sollte jetzt so erfolgen.

            M 1 Reply Last reply Reply Quote 0
            • M
              michihorn @paul53 last edited by

              @paul53 Leider nein, es sind erst 3 Minuten rum und ich habe bereits 155 Telgrams

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @michihorn last edited by

                @michihorn sagte: ich habe bereits 155 Telgrams

                Auch so viele Log-Einträge aus dem Skript?

                M 1 Reply Last reply Reply Quote 0
                • M
                  michihorn @paul53 last edited by

                  @paul53 Jede Menge, aktuell steht folgendes:
                  (8008) Cannot send message [chatId - 702589553]: Error: ETELEGRAM: 429 Too Many Requests: retry after 3

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @michihorn last edited by

                    @michihorn
                    Starte mal ioBroker neu.

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      michihorn @paul53 last edited by

                      @paul53 Jap, das war es.
                      Das Script läuft wie es soll.
                      Danke

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      827
                      Online

                      31.9k
                      Users

                      80.1k
                      Topics

                      1.3m
                      Posts

                      javascript
                      2
                      9
                      224
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo