Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Automatisierung
  5. Steckdose über vis Steuerelemente automatisieren

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    643

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

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

Steckdose über vis Steuerelemente automatisieren

Scheduled Pinned Locked Moved Automatisierung
25 Posts 3 Posters 2.9k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ChendaC Chenda

    @paul53 ich dachte von der Logik her ist es wahrscheinlich, dass der Stromüberschuss reicht, wenn der Bedampfer gefüllt wird. Daher trigger so rum. Macht das denn einen Unterschied? geht doch beides, oder irre ich mich?

    paul53P Offline
    paul53P Offline
    paul53
    wrote on last edited by paul53
    #12

    @chenda sagte: Macht das denn einen Unterschied?

    Wenn zum Zeitpunkt des Wechsels in Bereitschaft der Überschuss nicht ausreicht, bleibt die Steckdose aus, wenn nicht auf den Überschuss getriggert wird.

    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 Reply Last reply
    1
    • paul53P paul53

      @chenda sagte: Logik gerne in js

      Versuche es mal so:

      const idUeber = 'alias.0.Erzeugung.Ueberschuss';
      const idPlug  = 'hs100.0.192_168_178_29.state';
      const idVis   = '0_userdata.0.Heubedampfer.Bereit'; // boolean
      var delayOn = null;
      
      on(idUeber, function(dp) {
          if(dp.state.val < 2000) { // Grenzwert anpassen!
              clearTimeout(delayOn);
              delayOn = null;
          } else if(!delayOn && getState(idVis).val) {
              delayOn = setTimeout(function() {
                  setState(idPlug, true);
                  setState(idVis, false, true);
                  setTimeout(function() {
                      setState(idPlug, false);
                      delayOn = null;
                  }, 3600000); // 60 Minuten
              }, 300000); // 5 Minuten
          }
      });
      
      ChendaC Offline
      ChendaC Offline
      Chenda
      wrote on last edited by
      #13

      @paul53 Danke dir.
      Ich habe das etwas angepasst. Was hälst du davon?

      const idUeber = "alias.0.Erzeugung.Ueberschuss"; // Stromüberschuss
      const idPlug  = "hs100.0.192_168_178_29.state"; // Steckdose
      const idStatus = "javascript.0.Heubedampfer.Status"; // Heubedampfer-Zustand
      const idVerbrauch = "alias.0.Verbrauch.Bedampfer"; // Verbrauchswert
      var delayOn = null;
      
      // Überprüfung bei jeder Änderung des Stromüberschusses
      on({id: idUeber, change: "ne"}, function(dp) {
          let überschuss = dp.state.val;
          let status = getState(idStatus)?.val || "Leer";
      
          if (status === "Bereit" && überschuss >= 2000 && !delayOn) {
              log("Genug Überschuss vorhanden! Startet in 5 Minuten...");
              
              // Verzögerung von 5 Minuten, um sicherzustellen, dass der Überschuss stabil bleibt
              delayOn = setTimeout(function() {
                  log("Starte Heubedampfer für 60 Minuten!");
                  setState(idPlug, true);
                  setState(idStatus, "Arbeitet", true);
                  setState(idVerbrauch, 2000); // Verbrauch direkt setzen
      
                  // Nach exakt 60 Minuten abschalten
                  setTimeout(function() {
                      log("60 Minuten sind um. Heubedampfer stoppt.");
                      setState(idPlug, false);
                      setState(idStatus, "Fertig", true);
                      setState(idVerbrauch, 0); // Verbrauch wieder auf 0 setzen
                      delayOn = null;
                  }, 3600000); // 60 Minuten
              }, 300000); // 5 Minuten Verzögerung
          }
      });
      
      // Aktualisierung des Verbrauchswerts, wenn sich der Steckdosenstatus ändert
      on({id: idPlug, change: "ne"}, function (obj) {
          let status = obj.state.val; // Zustand der Steckdose
          let verbrauch = status ? 2000 : 0; // Wenn an -> 2000W, wenn aus -> 0W
          setState(idVerbrauch, verbrauch);
      });
      
      
      ChendaC 1 Reply Last reply
      0
      • ChendaC Chenda

        @paul53 Danke dir.
        Ich habe das etwas angepasst. Was hälst du davon?

        const idUeber = "alias.0.Erzeugung.Ueberschuss"; // Stromüberschuss
        const idPlug  = "hs100.0.192_168_178_29.state"; // Steckdose
        const idStatus = "javascript.0.Heubedampfer.Status"; // Heubedampfer-Zustand
        const idVerbrauch = "alias.0.Verbrauch.Bedampfer"; // Verbrauchswert
        var delayOn = null;
        
        // Überprüfung bei jeder Änderung des Stromüberschusses
        on({id: idUeber, change: "ne"}, function(dp) {
            let überschuss = dp.state.val;
            let status = getState(idStatus)?.val || "Leer";
        
            if (status === "Bereit" && überschuss >= 2000 && !delayOn) {
                log("Genug Überschuss vorhanden! Startet in 5 Minuten...");
                
                // Verzögerung von 5 Minuten, um sicherzustellen, dass der Überschuss stabil bleibt
                delayOn = setTimeout(function() {
                    log("Starte Heubedampfer für 60 Minuten!");
                    setState(idPlug, true);
                    setState(idStatus, "Arbeitet", true);
                    setState(idVerbrauch, 2000); // Verbrauch direkt setzen
        
                    // Nach exakt 60 Minuten abschalten
                    setTimeout(function() {
                        log("60 Minuten sind um. Heubedampfer stoppt.");
                        setState(idPlug, false);
                        setState(idStatus, "Fertig", true);
                        setState(idVerbrauch, 0); // Verbrauch wieder auf 0 setzen
                        delayOn = null;
                    }, 3600000); // 60 Minuten
                }, 300000); // 5 Minuten Verzögerung
            }
        });
        
        // Aktualisierung des Verbrauchswerts, wenn sich der Steckdosenstatus ändert
        on({id: idPlug, change: "ne"}, function (obj) {
            let status = obj.state.val; // Zustand der Steckdose
            let verbrauch = status ? 2000 : 0; // Wenn an -> 2000W, wenn aus -> 0W
            setState(idVerbrauch, verbrauch);
        });
        
        
        ChendaC Offline
        ChendaC Offline
        Chenda
        wrote on last edited by
        #14

        Das Script funktioniert erstmal und tat, was es soll.
        Nun wollte ich mir noch die Restzeiten anzeigen lassen. Dafür habe ich mir in VIS-2 ein html widget eingebunden,
        84a314a7-0b0a-477e-8a57-538edffe31bd-image.png

        im Feld Allgemein "html" habe ich folgenden Code eingebaut:

        <div id="countdown" style="font-size: 28px; font-weight: bold; text-align: center;"></div>
        
        <script>
            const countdownElement = document.getElementById("countdown");
            const wartezeitDP = "javascript.0.Logik.Heubedampfer.Wartezeit";
            const arbeitszeitDP = "javascript.0.Logik.Heubedampfer.Restzeit";
        
            function updateCountdown() {
                let wartezeit = getState(wartezeitDP)?.val || 0;
                let arbeitszeit = getState(arbeitszeitDP)?.val || 0;
        
                if (wartezeit > 0) {
                    let minutes = Math.floor(wartezeit / 60);
                    let seconds = wartezeit % 60;
                    countdownElement.innerHTML = `Wartezeit: ${minutes}:${seconds.toString().padStart(2, '0')} min`;
                    countdownElement.style.color = "#FFA500"; // Orange für Wartezeit
                } else if (arbeitszeit > 0) {
                    let minutes = Math.floor(arbeitszeit / 60);
                    let seconds = arbeitszeit % 60;
                    countdownElement.innerHTML = `Heubedampfer läuft: ${minutes}:${seconds.toString().padStart(2, '0')} min`;
                    countdownElement.style.color = "#00FF00"; // Grün für aktive Betriebszeit
                } else {
                    countdownElement.innerHTML = "Kein aktiver Timer";
                    countdownElement.style.color = "#FF0000"; // Rot für keine Aktivität
                }
            }
        
            // Aktualisierung alle 1 Sekunde
            setInterval(updateCountdown, 1000);
            updateCountdown();
        </script>
        

        In den Variablen javascript.0.Logik.Heubedampfer.Wartezeit und javascript.0.Logik.Heubedampfer.Restzeit wird durch mein JS skript regelmäßig die Restzeit (in s) aktualisiert. Dennoch wird in der VIS-2 nichts angezeigt.
        Was habe ich falsch gemacht?

        HomoranH 1 Reply Last reply
        0
        • ChendaC Chenda

          Das Script funktioniert erstmal und tat, was es soll.
          Nun wollte ich mir noch die Restzeiten anzeigen lassen. Dafür habe ich mir in VIS-2 ein html widget eingebunden,
          84a314a7-0b0a-477e-8a57-538edffe31bd-image.png

          im Feld Allgemein "html" habe ich folgenden Code eingebaut:

          <div id="countdown" style="font-size: 28px; font-weight: bold; text-align: center;"></div>
          
          <script>
              const countdownElement = document.getElementById("countdown");
              const wartezeitDP = "javascript.0.Logik.Heubedampfer.Wartezeit";
              const arbeitszeitDP = "javascript.0.Logik.Heubedampfer.Restzeit";
          
              function updateCountdown() {
                  let wartezeit = getState(wartezeitDP)?.val || 0;
                  let arbeitszeit = getState(arbeitszeitDP)?.val || 0;
          
                  if (wartezeit > 0) {
                      let minutes = Math.floor(wartezeit / 60);
                      let seconds = wartezeit % 60;
                      countdownElement.innerHTML = `Wartezeit: ${minutes}:${seconds.toString().padStart(2, '0')} min`;
                      countdownElement.style.color = "#FFA500"; // Orange für Wartezeit
                  } else if (arbeitszeit > 0) {
                      let minutes = Math.floor(arbeitszeit / 60);
                      let seconds = arbeitszeit % 60;
                      countdownElement.innerHTML = `Heubedampfer läuft: ${minutes}:${seconds.toString().padStart(2, '0')} min`;
                      countdownElement.style.color = "#00FF00"; // Grün für aktive Betriebszeit
                  } else {
                      countdownElement.innerHTML = "Kein aktiver Timer";
                      countdownElement.style.color = "#FF0000"; // Rot für keine Aktivität
                  }
              }
          
              // Aktualisierung alle 1 Sekunde
              setInterval(updateCountdown, 1000);
              updateCountdown();
          </script>
          

          In den Variablen javascript.0.Logik.Heubedampfer.Wartezeit und javascript.0.Logik.Heubedampfer.Restzeit wird durch mein JS skript regelmäßig die Restzeit (in s) aktualisiert. Dennoch wird in der VIS-2 nichts angezeigt.
          Was habe ich falsch gemacht?

          HomoranH Do not disturb
          HomoranH Do not disturb
          Homoran
          Global Moderator Administrators
          wrote on last edited by Homoran
          #15

          @chenda warum um alles in der Welt lässt du das in der vis laufen?
          Das läuft dann im (wahrscheinlich deutlich leistungsschwächeren) Frontend ab und nich auf dem Server.

          Lass es ganz normal im js-Adapter laufen und lass dir nur denn Wert der Datenpunkte in der Vis anzeigen.
          Das Tablet oder was auch immer hat schon genug mit der grafischen Aufarbeitung zu tun.

          kein Support per PN! - Fragen im Forum stellen -
          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          ChendaC 1 Reply Last reply
          0
          • HomoranH Homoran

            @chenda warum um alles in der Welt lässt du das in der vis laufen?
            Das läuft dann im (wahrscheinlich deutlich leistungsschwächeren) Frontend ab und nich auf dem Server.

            Lass es ganz normal im js-Adapter laufen und lass dir nur denn Wert der Datenpunkte in der Vis anzeigen.
            Das Tablet oder was auch immer hat schon genug mit der grafischen Aufarbeitung zu tun.

            ChendaC Offline
            ChendaC Offline
            Chenda
            wrote on last edited by
            #16

            @homoran okay, ich kann das javascript natürlich verschieben. Aber ich bekomme dennoch keinerlei Werte in der VIS angezeigt.

            HomoranH 1 Reply Last reply
            0
            • ChendaC Chenda

              @homoran okay, ich kann das javascript natürlich verschieben. Aber ich bekomme dennoch keinerlei Werte in der VIS angezeigt.

              HomoranH Do not disturb
              HomoranH Do not disturb
              Homoran
              Global Moderator Administrators
              wrote on last edited by
              #17

              @chenda sagte in Steckdose über vis Steuerelemente automatisieren:

              Aber ich bekomme dennoch keinerlei Werte in der VIS angezeigt.

              dann reicht ja ein Number-Widget das die Werte des Countdown Datenpunkts anzeigt.
              mache ich schon lange so (mit vis! nicht mit vis-2! aber das sollte nicht der Grund sein)

              kein Support per PN! - Fragen im Forum stellen -
              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
              Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              ChendaC 1 Reply Last reply
              0
              • HomoranH Homoran

                @chenda sagte in Steckdose über vis Steuerelemente automatisieren:

                Aber ich bekomme dennoch keinerlei Werte in der VIS angezeigt.

                dann reicht ja ein Number-Widget das die Werte des Countdown Datenpunkts anzeigt.
                mache ich schon lange so (mit vis! nicht mit vis-2! aber das sollte nicht der Grund sein)

                ChendaC Offline
                ChendaC Offline
                Chenda
                wrote on last edited by
                #18

                @homoran ja da hast du eigentlich recht, aber mir wird dennoch nix angezeigt:
                6e8cbe53-4d50-42ef-ba1f-18224f5028fb-image.png
                7be3902e-68e5-4435-931a-302a73d8ed91-image.png
                6d4b94cf-2b91-4c4c-8952-1ebd76b00239-image.png
                19080b75-8a12-4d17-ac4a-215ef6d23171-image.png

                HomoranH 1 Reply Last reply
                0
                • ChendaC Chenda

                  @homoran ja da hast du eigentlich recht, aber mir wird dennoch nix angezeigt:
                  6e8cbe53-4d50-42ef-ba1f-18224f5028fb-image.png
                  7be3902e-68e5-4435-931a-302a73d8ed91-image.png
                  6d4b94cf-2b91-4c4c-8952-1ebd76b00239-image.png
                  19080b75-8a12-4d17-ac4a-215ef6d23171-image.png

                  HomoranH Do not disturb
                  HomoranH Do not disturb
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by Homoran
                  #19

                  @chenda wie gesagt kenne ich vis-2 nicht

                  aber NaN heisst Not a Number.
                  du hast da Text in dem Feld

                  der müsste nach meinem Verständnis darunter in "voranstellen..."

                  kein Support per PN! - Fragen im Forum stellen -
                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                  Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  ChendaC 1 Reply Last reply
                  0
                  • HomoranH Homoran

                    @chenda wie gesagt kenne ich vis-2 nicht

                    aber NaN heisst Not a Number.
                    du hast da Text in dem Feld

                    der müsste nach meinem Verständnis darunter in "voranstellen..."

                    ChendaC Offline
                    ChendaC Offline
                    Chenda
                    wrote on last edited by Chenda
                    #20

                    @homoran ja stimmt, aber das ändert nix, wenn ich das weglasse:
                    fa6b0503-dd28-496e-9a3b-dcc474d6aa70-image.png
                    oder ein String Widget benutze:
                    7498c130-e108-44a6-8ad9-091e23f23a1f-image.png
                    ich verstehe einfach nicht was da nicht stimmt :-/

                    In "voranstellen" braucht das glaub nicht, denn im Objekt Auswahldialog steht und es heißt ja auch voranstellen html
                    04ee6d13-6359-4db9-b0c7-74bf7388ca8d-image.png

                    HomoranH 1 Reply Last reply
                    0
                    • ChendaC Chenda

                      @homoran ja stimmt, aber das ändert nix, wenn ich das weglasse:
                      fa6b0503-dd28-496e-9a3b-dcc474d6aa70-image.png
                      oder ein String Widget benutze:
                      7498c130-e108-44a6-8ad9-091e23f23a1f-image.png
                      ich verstehe einfach nicht was da nicht stimmt :-/

                      In "voranstellen" braucht das glaub nicht, denn im Objekt Auswahldialog steht und es heißt ja auch voranstellen html
                      04ee6d13-6359-4db9-b0c7-74bf7388ca8d-image.png

                      HomoranH Do not disturb
                      HomoranH Do not disturb
                      Homoran
                      Global Moderator Administrators
                      wrote on last edited by Homoran
                      #21

                      @chenda zeig mal die Objektdaten des Datenpunkts
                      was ist w00008 ?

                      kein Support per PN! - Fragen im Forum stellen -
                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      ChendaC 1 Reply Last reply
                      0
                      • HomoranH Homoran

                        @chenda zeig mal die Objektdaten des Datenpunkts
                        was ist w00008 ?

                        ChendaC Offline
                        ChendaC Offline
                        Chenda
                        wrote on last edited by
                        #22

                        @homoran du hattest doch recht. Und zusätzlich musste ich noch die geschweiften Klammern entfernen, die bei der Objektauswahl automatisch um die Variable herumgelegt wurden.
                        5abfec5f-c44a-4666-a416-7ed5bc1b3bf0-image.png
                        Mein JS stellt auch noch eine Farbvariable und einen Text ein:
                        0a868ebf-115a-4c40-9b7b-a9e67cb1a3d3-image.png
                        Kann ich die Farbe irgendwie dem Text zuordnen?

                        HomoranH 1 Reply Last reply
                        0
                        • ChendaC Chenda

                          @homoran du hattest doch recht. Und zusätzlich musste ich noch die geschweiften Klammern entfernen, die bei der Objektauswahl automatisch um die Variable herumgelegt wurden.
                          5abfec5f-c44a-4666-a416-7ed5bc1b3bf0-image.png
                          Mein JS stellt auch noch eine Farbvariable und einen Text ein:
                          0a868ebf-115a-4c40-9b7b-a9e67cb1a3d3-image.png
                          Kann ich die Farbe irgendwie dem Text zuordnen?

                          HomoranH Do not disturb
                          HomoranH Do not disturb
                          Homoran
                          Global Moderator Administrators
                          wrote on last edited by
                          #23

                          @chenda sagte in Steckdose über vis Steuerelemente automatisieren:

                          Kann ich die Farbe irgendwie dem Text zuordnen?

                          in den Eigenschaften von Schrift als Binding nehme ich an

                          kein Support per PN! - Fragen im Forum stellen -
                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          ChendaC 1 Reply Last reply
                          0
                          • HomoranH Homoran

                            @chenda sagte in Steckdose über vis Steuerelemente automatisieren:

                            Kann ich die Farbe irgendwie dem Text zuordnen?

                            in den Eigenschaften von Schrift als Binding nehme ich an

                            ChendaC Offline
                            ChendaC Offline
                            Chenda
                            wrote on last edited by
                            #24

                            @homoran Danke - gefunden.
                            Da wiederum braucht es die geschweiften Klammern:
                            35d7aec7-b8b8-4e52-9933-6c187ff5f96e-image.png

                            HomoranH 1 Reply Last reply
                            0
                            • ChendaC Chenda

                              @homoran Danke - gefunden.
                              Da wiederum braucht es die geschweiften Klammern:
                              35d7aec7-b8b8-4e52-9933-6c187ff5f96e-image.png

                              HomoranH Do not disturb
                              HomoranH Do not disturb
                              Homoran
                              Global Moderator Administrators
                              wrote on last edited by
                              #25

                              @chenda sagte in Steckdose über vis Steuerelemente automatisieren:

                              Da wiederum braucht es die geschweiften Klammern:

                              sonst wäre es kein Binding

                              kein Support per PN! - Fragen im Forum stellen -
                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                              Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              1 Reply Last reply
                              0

                              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                              With your input, this post could be even better 💗

                              Register Login
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              218

                              Online

                              32.7k

                              Users

                              82.6k

                              Topics

                              1.3m

                              Posts
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Home
                              • Recent
                              • Tags
                              • Unread 0
                              • Categories
                              • Unreplied
                              • Popular
                              • GitHub
                              • Docu
                              • Hilfe