Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Schedule per Tastendruck starten und stoppen

    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 per Tastendruck starten und stoppen

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

      Ich verzweifel grad an meiner Wallboxsteuereung...

      Ich habe ein Script geschrieben mit der ich die Wallbox steuern kann, hierzu muss alle X-Sekunden eine Funktion ausgelöst werden. Über Schedule() funktioniert das auch, aber dann müsste ich das komplette Script immer starten und stoppen da auch das Lader des Autos per Wallbox jederzeit mit voller Leistung möglich sein soll.

      Ziel soll sein, über einen Taster (auch virtuell) die Funktion zu starte zu starten und alle 10 Sekunden auszuführen. Wenn der Taster ein weiteres mal gedrückt wird, soll die Funktion gestoppt werden, wie krieg ich das am Besten hin? Wichtig ist, das die Funktion auch wieder angehalten werden kann.

      // Startet das Skript alle 10 Sekunden neu
       schedule("*/10 * * * * *", function() {
          starteLaden();
       });
      
      // Startet das Skript einmalig auf Tastendruck
      on({id: 'javascript.0.Taster_1', change: "ne"}, function (obj) {
          starteLaden()
      });
      
      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @funcarv3r last edited by paul53

        @funcarv3r sagte:

        über einen Taster (auch virtuell) die Funktion zu starte zu starten und alle 10 Sekunden auszuführen. Wenn der Taster ein weiteres mal gedrückt wird, soll die Funktion gestoppt werden

        Vorschlag:

        var freigabe = false;
        
        schedule("*/10 * * * * *", function() {
            if(freigabe) starteLaden();
        });
        
        on({id: 'javascript.0.Taster_1'}, function () {
            freigabe = !freigabe;
        });
        
        F 2 Replies Last reply Reply Quote 1
        • F
          funcarv3r @paul53 last edited by

          @paul53
          Klasse, danke Dir, funktioniert ...

          Wo bekommt man solche Infos her? Ich habe mir die Einführung in Javascript für den IOBroker und hab sowas nicht gefunden. Auch google hat mir keine brauchbaren Ergebnisse angezeigt...

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

            @paul53
            ich hab hier jetzt doch noch eine Frage:

            Das script funktioniert soweit aber wie kann ich im VIS sehen ob die Funktion gerade läuft oder nicht? Des Weiteren müsste beim deaktivieren noch ein weiterer Befehl abgesetzt werden.

                setState('mqtt.0.go-eCharger.000000.cmd.req', "alw=0");
            

            Durch die Funktion wird überprüft wieviel Strom gerade produziert wird und dementsprechend wird die Wallbox ein/ausgeschaltet und der Ladestrom eingestellt. Wenn die Funktion angehalten wird während der Ladevorgang noch läuft wird dieser nicht angehalten.

            Ich wollte mir hier einen Schalter machen mit dem ich die Funktion dan ein und ausschalten kann, es muss aber sichtbar sein was gerade der Zustand ist.

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

              @funcarv3r sagte :

              Ich wollte mir hier einen Schalter machen mit dem ich die Funktion dan ein und ausschalten kann, es muss aber sichtbar sein was gerade der Zustand ist.
              ... Des Weiteren müsste beim deaktivieren noch ein weiterer Befehl abgesetzt werden.

              Mit einem Schalter anstelle eines Tasters kann man es so machen:

              const idSchalter = 'javascript.0.Schalter_1'; // Anpassen !
              
              var freigabe = getState(idSchalter).val;
               
              schedule("*/10 * * * * *", function() {
                  if(freigabe) starteLaden();
              });
               
              on(idSchalter, function (dp) {
                  freigabe = dp.state.val;
                  if(!freigabe) setState('mqtt.0.go-eCharger.000000.cmd.req', "alw=0");
              });
              
              F 1 Reply Last reply Reply Quote 1
              • F
                funcarv3r @paul53 last edited by

                @paul53
                Super, danke dir, funktioniert. Ich hab die Befehle noch etwas erweitert, er setzt mir beim Starten jetzt auch noch eine nVariable auf true, beim Beenden auf False, so kann ich alles besser überwachen ...

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

                Support us

                ioBroker
                Community Adapters
                Donate

                887
                Online

                31.9k
                Users

                80.2k
                Topics

                1.3m
                Posts

                2
                6
                456
                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