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. [gelöst] ON wenn Stromwert unterschritten wird - Bessere Möglichkeit vorhanden?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] ON wenn Stromwert unterschritten wird - Bessere Möglichkeit vorhanden?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
16 Beiträge 5 Kommentatoren 2.0k Aufrufe
  • Ä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.
  • F Offline
    F Offline
    Fitti
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich möchte gerne wie auf der CCU beim Unterschreiten eines bestimmten Leistungswertes eine Aktion auslösen (Steckdose aus, Sprachansage usw.).

    Um aktiv zu werden, wenn der Wert unter 5 Watt fällt, müsste doch von der Logik her ein…:

    on({id: "hm-rpc.0.NEQ0123451.2.POWER", change: 'lt'}, function (data) {
    	if (data.val > 5) {  						/* wenn unter 5 Watt  */
    		...meine Anweisungen...
    	} 
    }
    

    funktionieren, oder? Geht das auch besser, indem ich den Eventtrigger gleich entsprechend setze? Also beim change: oder irgendwo da?

    So wird ja andauernd unnötigerweise bei jedem Leistungswechsel nach unten (change: 'lt') getriggert. Das halte ich für unsauber und Ressourcenverschwendung. Noch schlimmer wäre ja ein

    on('hm-rpc.0.NEQ0123451.2.POWER', function() {...usw.
    

    Danke im Voraus,

    Fitti

    "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
    Plural von Status ist auch Status!

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Du möchtest nur triggern, wenn der Wert von 5 erstmalig unterschritten wird ? Dann funktioniert es so:

      on({id: "hm-rpc.0.NEQ0123451.2.POWER", valLt: 5, oldValGe: 5}, function() {
            ...meine Anweisungen...
      });
      

      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
      • F Offline
        F Offline
        Fitti
        schrieb am zuletzt editiert von
        #3

        Exakt. Funktioniert einwandfrei. Jetzt verstehe ich endlich einige Parameter… :D

        Danke!

        "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
        Plural von Status ist auch Status!

        1 Antwort Letzte Antwort
        0
        • F Offline
          F Offline
          Fitti
          schrieb am zuletzt editiert von
          #4

          @paul53:

          Du möchtest nur triggern, wenn der Wert von 5 erstmalig unterschritten wird ? Dann funktioniert es so:

          on({id: "hm-rpc.0.NEQ0123451.2.POWER", valLt: 5, oldValGe: 5}, function() {
                ...meine Anweisungen...
          });
          ```` `  
          

          Die sparsamen Waschmachine macht doch einige Schwierigkeiten, da am Anfang zu sehr ein hoch und runter (in der Leistung) ist.

          Wie kann ich denn das Event ermöglichen, dass erst wenn der Wert über 100W - und dann irgendwann unter 5 Watt fällt, der on aktiviert wird? Geht das überhaupt?

          Hatte es so ausprobiert, aber da kommt gar nichts mehr.

          on({id: "hm-rpc.0.NEQ0123451.2.POWER", valLt: 5, oldValGe: 100}, function() {
                ...meine Anweisungen...
          });
          

          Oder muss ich zwei ons verwenden:

          Wenn irgendwann valGe: 100 , dann setzte Statusvariable.

          Wenn irgendwann valLt: 5, dann - wenn Statusvariable gesetzt ist, mache mein Skript und lösche zum Schluss Statusvariable.

          Danke im Voraus,

          Fitti

          "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
          Plural von Status ist auch Status!

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            @Fitti:

            Wie kann ich denn das Event ermöglichen, dass erst wenn der Wert über 100W - und dann irgendwann unter 5 Watt fällt, der on aktiviert wird? `
            Genau so:
            @Fitti:

            Wenn irgendwann valGe: 100 , dann setzte Statusvariable.

            Wenn irgendwann valLt: 5, dann - wenn Statusvariable gesetzt ist, mache mein Skript und lösche zum Schluss Statusvariable. `

            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
            • HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #6

              Hallo fitti,

              wenn es eine Strommess-Steckdose oder ein Strommess-Hutschieneaktor von HomeMatic ist, dann gibt es dort den so genannten Entscheidungswert.

              Da kannst du in der Konfiguration des Gerätes einstellen, wie Hoch die Leistung zuerst sein muss (Oberer Grenzwert), damit erst beim anschließenden Abfallen unter den unteren Grenzwert dieser Entscheidungswert wieder zurückgesetzt wird.

              Habe es allerdings mit neuen Steckdosen jetzt gerade selber 4 Wochen gebraucht es bei ioBroker ans Laufen zu bekommen, da dieser Entscheidungswert im Gerät erst dann sichtbar wird, wenn auf der CCU damit ein Programm angelegt ist.

              <url url="http://homematic-forum.de/forum/viewtopic.php?f=27&amp;t=32832#p309506">[http://homematic-forum.de/forum/viewtopic.php?f=27&t=32832#p309506 " target="_blank">](</s><LINK_TEXT text=)[<link_text text="http://homematic-forum.de/forum/viewtop … 2#p309506
              ">http://homematic-forum.de/forum/viewtopic.php?f=27&t=32832#p309506</link_text>](</s><LINK_TEXT text=)</url> Daraufhin habe ich ein Dummy-Programm erzeugt und schon klappt es.

              @Fitti:

              Die sparsamen Waschmachine macht doch einige Schwierigkeiten, `
              Yepp!

              Als unterer Grenzwert muss bei mir etwa 3W eingegeben werden.

              Gruß

              Rainer

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Antwort Letzte Antwort
              0
              • F Offline
                F Offline
                Fitti
                schrieb am zuletzt editiert von
                #7

                Rainer - du siehst mich wieder Baff erstaunt.

                Entscheidungswert - wattn ditte? Habe mir mal alle vier Seiten durchglesen (naja , manches auch überflogen).

                Dann Kanalaktion 1,1,80,starwars…. :shock:

                Was Du so alles machst. Dachte immer ich mache einiges - aber irgendwie machst Du deutlich mehr. Schön für mch, so kenne ich jemanden, den ich fragen kann. :mrgreen:

                Verstehe trotzdem noch ncht, wie Du es in der CCU hinbekommen hast. Läuft da ein Makro? Das macht doch nicht alles der Aktor, oder?

                Magst Du vielleicht noch ein Screendump vom Trockner und den CCU-Settings mir posten?

                Danke im Voraus,

                So long,

                Fiiti

                "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
                Plural von Status ist auch Status!

                1 Antwort Letzte Antwort
                0
                • HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #8

                  @Fitti:

                  Magst Du vielleicht noch ein Screendump vom Trockner und den CCU-Settings mir posten? `
                  Für dich tu ich doch fast ales:
                  144_hm_entscheidungswert_trockner.jpg

                  @Fitti:

                  Das macht doch nicht alles der Aktor, oder? `
                  Im Prinzip schon, nur er zeigt es dir nicht. (Funktioniert ebenso unsichtbar sogar mit Direktverknüpfungen)

                  @Fitti:

                  wie Du es in der CCU hinbekommen hast. `
                  Um jetzt diesen Wert (Sndars:200=scharfgeschaltet; 0= jetzt ist die Maschine fertig) aber in ioBroker sehen zu können, MUSS dieser Wert in einem Programm auf der CCU eingebunden zu sein. Klingt unglaublich, ist aber so!

                  Dazu habe ich dann das starwars ;-) Programm geschrieben mit allen möglichen Entscheidungswerten im Wenn und einer weiteren Bedingung, die nicht wahr werden soll (Außentemperatur >80°C) und gut ist.

                  Jetzt ist der Entscheidungswert auch in ioBroker sichtbar.

                  Der Datenpunkt existierte immer nur mit 0/NULL un änderte sich nicht. Das wir er aber ab sofort!

                  Frach mich nur!

                  Gruß

                  Rainer

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Antwort Letzte Antwort
                  0
                  • P Offline
                    P Offline
                    ple
                    schrieb am zuletzt editiert von
                    #9

                    Moin zusammen,

                    ich bin nicht der Javascript Typ, im Prinzip kopiere ich mir alles so zusammen, was ich so brauche in der Hoffnung das ich es auch mal verstehe :-)

                    Mit der Entscheidungsschwelle ist nicht ganz so die Lösung die ich suche.

                    Ich möchte gerne meinen Trockner fertigmelden, aber dafür müsste ich einen Timer haben, der 3 min abfragt, ob er unterhalb der Grenze liegt, da er am Ende ein paar mal auflockert und somit direkt fertig meldet.

                    Der Code sieht ja wie folgt aus.

                    on({id: "hm-rpc.0.NEQ1234567.2.POWER", valLt: 5, oldValGe: 5}, function() {
                    

                    gibt es für die Funktion eine Einschaltverzögerung? Kenne leider nur S7 :-(

                    Gruß und Danke

                    Intel Nuc + Proxmox

                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #10

                      @ple:

                      …gibt es für die Funktion eine Einschaltverzögerung? `
                      Ja, setTimeout()

                      var timer = null;
                      
                      function meineFunktion() {
                            ...meine Anweisungen...
                      }
                      
                      on({id: "hm-rpc.0.NEQ1234567.2.POWER", valLt: 5, oldValGe: 5}, function() {
                          timer = setTimeout(meineFunktion, 180000);  // 3 Minuten in ms
                      });
                      
                      on({id: "hm-rpc.0.NEQ1234567.2.POWER", valGe: 5, oldValLt: 5}, function() {
                          if(timer) clearTimeout(timer);
                      });
                      
                      

                      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
                      • P Offline
                        P Offline
                        ple
                        schrieb am zuletzt editiert von
                        #11

                        Vielen Dank für deine Unterstützung.

                        Kann ich den Code so jetzt stehen lassen?

                        var idSayIt = "sayit.0.tts.text";
                        var timer = null;
                        
                        // Einschaltverzögerung   
                        on({id: "hm-rpc.0.NEQ1234567.2.POWER", valLt: 1.1, oldValGe: 5}, function() {
                            timer = setTimeout(meldung, 180000);  // 3 Minuten in ms
                        });
                        // Timer löschen
                        on({id: "hm-rpc.0.NEQ1234567.2.POWER", valGe: 5, oldValLt: 1.1}, function() {
                            if(timer) clearTimeout(timer);
                        });
                        
                        // Anweisung
                        function meldung() {
                            log("Trockner fertig");     
                            //setState(idSayIt, "Waschmaschine ist fertig");
                            sendTo("pushover", "send", {
                             message: 'Trockner fertig',
                             sound: "",
                             title: '',
                             priority: 1
                            }); 
                        setState(idSayIt, "Waschmaschine ist fertig");
                        }
                        
                        

                        Wenn ja hätte ich da noch eine Frage.

                        "if(timer) clearTimeout(timer);"

                        Womit ist das if verknüpft? Ich verstehe bisher nur, dass der Wert unter 1.1 und dann über 5 geht die Funktion ausgelöst aber was macht das if? würde da auch nicht einfach clearTimeout(timer) reichen?

                        var timer = null;

                        Wird dort die Variabel timer einfach mit "null" beschrieben? Würde auch ein "0" gehen? oder muss es ein String sein.

                        Besten dank für die super Unterstützung!!!

                        Intel Nuc + Proxmox

                        1 Antwort Letzte Antwort
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #12

                          @ple:

                          Kann ich den Code so jetzt stehen lassen? `
                          Probier es aus !
                          @ple:

                          var timer = null;

                          Wird dort die Variabel timer einfach mit "null" beschrieben? Würde auch ein "0" gehen? oder muss es ein String sein. `
                          Timer-Variablen sind Objekte.
                          @ple:

                          …was macht das if? würde da auch nicht einfach clearTimeout(timer) reichen? `
                          Es würde vielleicht auch ohne if(timer) funktionieren. Da nach dem Skriptstart und erstem Waschmaschinenstart das on() für Timer löschen ausgeführt wird, ist es zumindest "sauberer" das clearTimeout(timer) dann nicht auszuführen, da die Timervariable noch nicht die richtige Objektstruktur hat (keine Ahnung, wie die aussieht :? ).

                          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
                          • AlCalzoneA Offline
                            AlCalzoneA Offline
                            AlCalzone
                            Developer
                            schrieb am zuletzt editiert von
                            #13

                            @paul53:

                            […]da die Timervariable noch nicht die richtige Objektstruktur hat (keine Ahnung, wie die aussieht :? ). `

                            Soweit ich weiß, sind Timervariablen einfach Zahlen. Die Runtime (node.js/Browser) hat dann irgendwo eine Tabelle der Timer, die zu den Zahlen gehören.

                            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                            1 Antwort Letzte Antwort
                            0
                            • paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #14

                              493_typ_timer.jpg

                              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
                              • AlCalzoneA Offline
                                AlCalzoneA Offline
                                AlCalzone
                                Developer
                                schrieb am zuletzt editiert von
                                #15

                                Hmm, dann scheinen Browser das anders zu handhaben als NodeJS
                                1097_unbenannt.png

                                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                1 Antwort Letzte Antwort
                                0
                                • P Offline
                                  P Offline
                                  ple
                                  schrieb am zuletzt editiert von
                                  #16

                                  Naja, ich versteh da gerade nicht viel von, aber es funktioniert :-)

                                  Danke

                                  Intel Nuc + Proxmox

                                  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

                                  712

                                  Online

                                  32.6k

                                  Benutzer

                                  82.2k

                                  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