Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Gelöst] Alle X Min. einen Datenpunkt von false auf true

    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

    [Gelöst] Alle X Min. einen Datenpunkt von false auf true

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

      Hallo,

      ich habe einen Datenpunkt, den ich alle x Minuten von false wieder auf true setzen möchte.

      Wie kann ich das mit js anstellen? Irgendwie versteh ich mal wieder gar nix. Hat vielleicht jemand das Schnipsel für mich?

      ham.0.Micro.Switch.On false soll dann auf true gesetzt werden.

      O Vumer 2 Replies Last reply Reply Quote 0
      • O
        oFbEQnpoLKKl6mbY5e13 @hagst last edited by oFbEQnpoLKKl6mbY5e13

        @hagst

        schedule("*/3 * * * *", async function () {
          setState("ham.0.Micro.Switch.On"/*On*/, true);
        });
        
        H 2 Replies Last reply Reply Quote 0
        • Vumer
          Vumer @hagst last edited by

          @hagst
          9f015dae-f856-46d3-bfa1-c6fe277daeba-grafik.png

          1 Reply Last reply Reply Quote 0
          • H
            hagst @oFbEQnpoLKKl6mbY5e13 last edited by

            @ofbeqnpolkkl6mby5e13

            Vielen herzlichen Dank, genau das habe ich gebraucht.

            1 Reply Last reply Reply Quote 1
            • H
              hagst @oFbEQnpoLKKl6mbY5e13 last edited by hagst

              @ofbeqnpolkkl6mby5e13
              Eine Frage habe ich noch. Wenn der Datenpunkt auf true gesetzt wurde, und ein anderer Datenpunkt einen Wert von z.B. 500 oder mehr weniger anzeigt, dass dann der Datenpunkt welcher vorher auf true gesetzt worden ist, sofort wieder auf false gesetzt wird?

              Z.B.
              ham.0.Micro.Switch.On wird geändert auf true.
              30 Sekunden warten
              0_userdata.ANALOG_A0 gibt einen Wert von z.B. 500 oder weniger aus
              ham.0.Micro.Switch.On wird wieder auf false gesetzt, wenn der Wert 500 oder weniger anzeigt. Bei über 500 soll alles so bleiben wie es ist.

              Die 30 Sekunden Wartezeit sind nötig, weil mit ham.0.Micro.Switch.On ein Sensor / Wemos D1 Mini gestartet wird und bis der hochgefahren und im Netz ist, dauert es etwas.

              Geht sowas?

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

                @hagst sagte: auf false gesetzt, wenn der Wert 500 oder weniger anzeigt.

                const idSwitch = 'ham.0.Micro.Switch.On';
                const idAnalog = '0_userdata.ANALOG_A0';
                
                var anlauf = null;
                
                schedule('*/2 * * * *', function() { // alle 2 Minuten
                    if(!getState(idSwitch).val) {
                        setState(idSwitch, true);
                        anlauf = setTimeout(function() {
                            anlauf = null;
                        }, 30000); // 30 s
                    }
                });
                
                on(idAnalog, function(dp) {
                    if(!anlauf && dp.state.val <= 500) {
                         setState(idSwitch, false);
                    }
                });
                
                H 2 Replies Last reply Reply Quote 0
                • H
                  hagst @paul53 last edited by hagst

                  @paul53
                  Vielen Dank Paul!

                  Ich habe hier etwas an den Datenpunkten geändert und in Deinem Script angepasst:

                  const idSwitch = 'ham.0.Micro-.Switch.On';
                  const idAnalog = 'sonoff.0.Regensensor.ANALOG_A0';
                   
                  var anlauf = null;
                   
                  schedule('*/2 * * * *', function() { // alle 2 Minuten
                      if(!getState(idSwitch).val) {
                          setState(idSwitch, true);
                          anlauf = setTimeout(function() {
                              anlauf = null;
                          }, 30000); // 30 s
                      }
                  });
                   
                  on(idAnalog, function(dp) {
                      if(!anlauf && dp.state.val <= 100) {
                           setState(idSwitch, false);
                      }
                  });
                  

                  Ich habe das Script gestartet, der Wert von ham.0.Micro.Switch.On wird auf true gesetzt, aber sofort wieder auf false, obwohl der Wert in 0_userdata.ANALOG_A0 bei 185 liegt. ham.0.Micro.Switch.On sollte aber jetzt true bleiben.

                  ham1.png

                  ham2.png

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

                    @paul53

                    Den letzten Beitrag von mir kannst Du komplett vergessen. Auf der Hardware-Seite wurde der Sensor automatisch sofort wieder ausgeschaltet. Dein Script arbeitet so wie gewünscht! Vielen vielen Dank Paul!

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    846
                    Online

                    31.9k
                    Users

                    80.1k
                    Topics

                    1.3m
                    Posts

                    4
                    8
                    344
                    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