Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]-DutyCycle - Telegram Meldung

    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]-DutyCycle - Telegram Meldung

    This topic has been deleted. Only users with topic management privileges can see it.
    • dslraser
      dslraser Forum Testing Most Active last edited by

      Da ich gerade mit einem MP3-Funk Gong rumgespielt habe dachte ich das der nicht richtig funktioniert, dabei war nur "DutyCycle" erreicht.

      Ich möchte mich in Zukunft über Telegram informieren lassen wenn z. B. der DutyCycle Wert über 60% steigt. (welcher Wert da sinnvoll ist weiss ich noch nicht ? )

      Dazu habe ich mir folgendes Script erstellt:

      ! createState("DutyCycle.DutyCycle", {
      ! name: 'DutyCycle',
      ! role: 'switch',
      ! type: 'boolean',
      ! desc: 'DutyCycle über 60%',
      ! read: true,
      ! write: true,
      ! def: false,
      ! });
      ! on({id: 'hm-rega.0.6172', change: "ne"}, function (obj) {
      ! var value = obj.state.val;
      ! var oldValue = obj.oldState.val;
      ! if (getState("hm-rega.0.6172").val >= 60) {
      ! setState("javascript.0.DutyCycle.DutyCycle"/DutyCycle/, true);
      ! } else if (getState("hm-rega.0.6172").val < 60) {
      ! setState("javascript.0.DutyCycle.DutyCycle"/DutyCycle/, false);
      ! }
      ! });
      ! on({id: 'javascript.0.DutyCycle.DutyCycle', val: true}, function (obj) {
      ! var value = obj.state.val;
      ! var oldValue = obj.oldState.val;
      ! sendTo("telegram", "send", {
      ! text: (['Achtung: ','DutyCycle ist: ',getState("hm-rega.0.6172").val,'%'].join(''))
      ! });
      ! });
      ! on({id: 'javascript.0.DutyCycle.DutyCycle', val: false}, function (obj) {
      ! var value = obj.state.val;
      ! var oldValue = obj.oldState.val;
      ! sendTo("telegram", "send", {
      ! text: (['DutyCycle ','ist wieder unter 60%, ','aktuell sind es: ',getState("hm-rega.0.6172").val,'%'].join(''))
      ! });
      ! });

      Jetzt bekomme ich aber nicht nur beim überschreiten der 60% eine Meldung, sondern immer wenn der Wert von der CCU geändert wird. Eigentlich habe ich mir dafür den Datenpunkt mit true und false angelegt. Wenn der Wert >= 60% ist wird auf true eingestellt und anders herum. Nur dann möchte ich eine Meldung haben, was ist in meinem Script falsch ?

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

        @dslraser:

        was ist in meinem Script falsch ? `
        Es wird auf change: "any" getriggert, also bei jeder Aktualisierung des Zeitstempels und nicht nur bei Wertänderung.

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

          Besser so:

          on({id: 'javascript.0.DutyCycle.DutyCycle', change: 'ne'}, function (obj) {
             var value = obj.state.val;
             var oldValue = obj.oldState.val;
             if(value) {
                sendTo("telegram", "send", {
                   text: (['Achtung: ','DutyCycle ist: ',getState("hm-rega.0.6172").val,'%'].join(''))
                });
             } else {
                sendTo("telegram", "send", {
                   text: (['DutyCycle ','ist wieder unter 60%, ','aktuell sind es: ',getState("hm-rega.0.6172").val,'%'].join(''))
                });
             }
          });
          
          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators last edited by

            Ich habe ja wirklich fast keine Ahnung, aber
            @paul53:

            Es wird auf change: "any" getriggert `
            Da traue ich mich sogar Paul zu widersprechen.

            Da steht bei dsl-raser nämlich:
            @dslraser:

            on({id: 'hm-rega.0.6172', change: "ne"}, function (obj) { `
            und selbst für mich als js-Legastheniker heisst das not equal

            sind das vielleicht die Hochkommas schuld

            Gruß

            rainer

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

              Die Aussage betrifft das Triggern auf den Datenpunkt 'javascript.0.DutyCycle.DutyCycle'.

              1 Reply Last reply Reply Quote 0
              • dslraser
                dslraser Forum Testing Most Active last edited by

                Danke, ich habe es jetzt so, scheint zu funktionieren. (verstanden habe ich es aber leider nicht :shock: )

                ! ````
                createState("DutyCycle.DutyCycle", {
                name: 'DutyCycle',
                role: 'switch',
                type: 'boolean',
                desc: 'DutyCycle über 60%',
                read: true,
                write: true,
                def: false,
                ! });
                ! on({id: 'hm-rega.0.6172', change: "ne"}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                if (getState("hm-rega.0.6172").val >= 60) {
                setState("javascript.0.DutyCycle.DutyCycle"/DutyCycle/, true);
                } else if (getState("hm-rega.0.6172").val < 60) {
                setState("javascript.0.DutyCycle.DutyCycle"/DutyCycle/, false);
                }
                });
                on({id: 'javascript.0.DutyCycle.DutyCycle', change: 'ne'}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                if(value) {
                sendTo("telegram", "send", {
                text: (['Achtung: ','DutyCycle ist: ',getState("hm-rega.0.6172").val,'%'].join(''))
                });
                } else {
                sendTo("telegram", "send", {
                text: (['DutyCycle ','ist wieder unter 60%, ','aktuell sind es: ',getState("hm-rega.0.6172").val,'%'].join(''))
                });
                }
                });

                1 Reply Last reply Reply Quote 0
                • ruhr70
                  ruhr70 last edited by

                  @paul53:

                  @dslraser:

                  was ist in meinem Script falsch ? Es wird auf change: "any" getriggert, also bei jeder Aktualisierung des Zeitstempels und nicht nur bei Wertänderung.

                  Change nicht angegeben oder übersehe ich das?

                  Wenn nicht definiert ist default "ne"

                  > not equal) New value must be not equal to the old one (state.val != oldState.val) If pattern is id-string this value is used by default

                  1 Reply Last reply Reply Quote 0
                  • ruhr70
                    ruhr70 last edited by

                    Aber eine andere Frage…

                    Nutzt ihr alle hm oder tcl Skripte für den Duty Cycle?

                    (hm-rega.0.6172 al Variable für ein Skript?).

                    Mittlerweile kann man doch DC über hm-rega direkt synchronisieren.

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

                      @dslraser:

                      verstanden habe ich es aber leider nicht `
                      Die https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#on–-subscribe-on-changes-or-updates-of-some-state kennst Du ?

                      1 Reply Last reply Reply Quote 0
                      • dslraser
                        dslraser Forum Testing Most Active last edited by

                        @paul53:

                        @dslraser:

                        verstanden habe ich es aber leider nicht Die [https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#on–-subscribe-on-changes-or-updates-of-some-state](https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#on–-subscribe-on-changes-or-updates-of-some-state) kennst Du ? jetzt ja.[emoji3]

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

                          @ruhr70:

                          Change nicht angegeben oder übersehe ich das?

                          Wenn nicht definiert ist default "ne" `
                          @Doku:

                          Please note, that by default "change" is equal to "any", except when only id as string is set (like on("id", function (){});). In last case change will be set to "ne". `

                          const idXy = '...';
                          on(idXy, callback); // Triggert bei Wertänderung
                          on({id: idXy}, callback); // Triggert bei Aktualisierung des Zeitstempels
                          
                          
                          1 Reply Last reply Reply Quote 0
                          • ruhr70
                            ruhr70 last edited by

                            @paul53:

                            @ruhr70:

                            Change nicht angegeben oder übersehe ich das?

                            Wenn nicht definiert ist default "ne" `
                            @Doku:

                            Please note, that by default "change" is equal to "any", except when only id as string is set (like on("id", function (){});). In last case change will be set to "ne". `

                            const idXy = '...';
                            on(idXy, callback); // Triggert bei Wertänderung
                            on({id: idXy}, callback); // Triggert bei Aktualisierung des Zeitstempels
                            
                            ```` `  
                            

                            OK. Stimmt 🙂

                            Böse Falle. 🙂

                            1 Reply Last reply Reply Quote 0
                            • Mic
                              Mic Developer last edited by

                              Ich bin noch ein Newbie hier aber hab einige Jahre auf dem Buckel mit anderen Skriptsprachen etc. auch in der Entwicklung in Teams.

                              Nichtsdestotrotz praktiziere hier noch ein "Trial & Error", macht einfach mega Spaß mit ioBroker und Heim-Automatisierung. 😄

                              Aus Gründen der Lesbarkeit des Quellcodes empfehle ich aber im Zweifel immer, Default-Werte entweder im Quelltext-Kommentar zu erwähnen oder dennoch mit an die Prozedur zu übergeben. Natürlich macht man das nicht bei Alltags-Funktionen und ich halte mich selbst leider auch nicht immer dran…

                              1 Reply Last reply Reply Quote 0
                              • S
                                Solear last edited by

                                Wie kriege ich denn den DutyCycle in hm-rega.0.6172 angezeigt?

                                Also der Datenpunkt existiert bei mir nicht…

                                edit: hat sich erledigt, in den Adaptereinstellungen aktivieren :lol:

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                574
                                Online

                                31.9k
                                Users

                                80.2k
                                Topics

                                1.3m
                                Posts

                                6
                                14
                                1074
                                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