Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Frage grundsätzlich zu Skipten - hoffe auf Hilfe AN / AUS

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Frage grundsätzlich zu Skipten - hoffe auf Hilfe AN / AUS

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      my-knx-shop last edited by

      Ich habe eine Gruppenadresse knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus aus dem KNX Bereich.

      Bei Aktivierung wird hier eine 1 oder entsprechend eine 0 gesendet.

      Jetzt habe ich einen Code, der wenn die Gruppenadresse eine 1 sendet, das 'samsung2016.0.tvOn', true aktivieren soll

      Wenn aber eine 0 kommt, dann soll das samsung2016.0.tvOn', false aktiviert werden.

      Wie bestimme ich jetzt bzw. weise ich das entsprechend zu dass bei 1 = samsung2016.0.tvOn', true und bei 0 = samsung2016.0.tvOn', false ausgeführt wird ?

      Danke euch für die Hilfe das mit den Scipten zu verstehen.

      on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus'}, function (obj) {

      console.log("Switch off Samsung TV");

      setState ('samsung2016.0.tvOn', false);

      });

      on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus'}, function (obj) {

      console.log("Switch on Samsung TV");

      setState ('samsung2016.0.tvOn', true);

      });

      1 Reply Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators last edited by

        @my-knx-shop:

        Ich habe eine Gruppenadresse knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus aus dem KNX Bereich.

        Bei Aktivierung wird hier eine 1 oder entsprechend eine 0 gesendet.

        Jetzt habe ich einen Code, der wenn die Gruppenadresse eine 1 sendet, das 'samsung2016.0.tvOn', true aktivieren soll

        Wenn aber eine 0 kommt, dann soll das samsung2016.0.tvOn', false aktiviert werden.

        Wie bestimme ich jetzt bzw. weise ich das entsprechend zu dass bei 1 = samsung2016.0.tvOn', true und bei 0 = samsung2016.0.tvOn', false ausgeführt wird ?

        Danke euch für die Hilfe das mit den Scipten zu verstehen.

        on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus'}, function (obj) {

        console.log("Switch off Samsung TV");

        setState ('samsung2016.0.tvOn', false);

        });

        on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus'}, function (obj) {

        console.log("Switch on Samsung TV");

        setState ('samsung2016.0.tvOn', true);

        }); `

        Ok deine beiden ons triggern immer wen was passiert das ergibt mir keinen sin. So wie es jetzt steht wird bei jedem trigger true und false geschaltet

        es gibt 2 moeglichkeiten:

        1. du baust die abfrage von 0/1 in deinten subscripe ein, beispiel:
        
        on({id: "Object ID", val: true}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          console.log('test');
        });
        
        

        wie du siehst pruefe ich hier noch ob der val true ist, ich bin mir jetzt nicht sicher ob das auch mit 0/1 geht (glaube nein) dan sollte es halt die IF abfrage sein.

        1. einen subscripe auf dem kanal und mit if/else if/else action bestimmen
        on({id: "Object ID", change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          if (getState("select ID").val == '1') {
            console.log('schaltung bei 1');
          } else if (getState("select ID").val == '0') {
            console.log('schaltung bei 0');
          }
        });
        
        

        ~Dutch

        1 Reply Last reply Reply Quote 0
        • M
          my-knx-shop last edited by

          Vielen Dank schon mal.

          Das ist genau das was ich meine. Egal ob ich nun eine 0 oder eine 1 sende, der TV schaltet.

          Mit deiner vorababfrage wäre genau das realisiert was ich will. Nämlich nur schalten "true" wenn eine 1 kommt und nur schalten "false" wenn eine 0 kommt.

          Wie müsste jetzt das zusammen gesetzte Script mit meinen Werten komplett aussehen ?

          Der ideale Fall wäre nun noch zusatzlich, wenn ich eine Chance hätte, zu erkennen ob das Gerät bereits eingeschaltet wurde und an ist. Zum Beispiel wenn es über eine Fernbedienung eingeschaltet wurde. Da bekomme ich nämlich keine Rückmeldung. Gibt es etwas an Scripten oder ähnliches das man ggf. per Ping abfragen kann ob dieser TV eingeschaltet ist oder aus ist und könnte das ebenfalls in das Script integrieren um auch eine Rückmeldung zu setzen auf eine weitere Gruppenadresse wie zum Beispiel: "id": "knx.0.Multimedia.WHZ_Samsung.Ein/_Aus_Status",

          1 Reply Last reply Reply Quote 0
          • Dutchman
            Dutchman Developer Most Active Administrators last edited by

            @my-knx-shop:

            Vielen Dank schon mal.

            Das ist genau das was ich meine. Egal ob ich nun eine 0 oder eine 1 sende, der TV schaltet.

            Mit deiner vorababfrage wäre genau das realisiert was ich will. Nämlich nur schalten "true" wenn eine 1 kommt und nur schalten "false" wenn eine 0 kommt.

            Wie müsste jetzt das zusammen gesetzte Script mit meinen Werten komplett aussehen ?

            Der ideale Fall wäre nun noch zusatzlich, wenn ich eine Chance hätte, zu erkennen ob das Gerät bereits eingeschaltet wurde und an ist. Zum Beispiel wenn es über eine Fernbedienung eingeschaltet wurde. Da bekomme ich nämlich keine Rückmeldung. Gibt es etwas an Scripten oder ähnliches das man ggf. per Ping abfragen kann ob dieser TV eingeschaltet ist oder aus ist und könnte das ebenfalls in das Script integrieren um auch eine Rückmeldung zu setzen auf eine weitere Gruppenadresse wie zum Beispiel: "id": "knx.0.Multimedia.WHZ_Samsung.Ein/_Aus_Status", `

            ehm ok warte jetzt mal schritt fuer schritt sons verlieren wir die story 🙂

            also 1)

            Du moechtest wissen wir das fertige script aussehen sollte mit abfrage richting (ich mach die gleich mal das beispiel muss aber erst hund laufen sorry :))

            due moechtest noch eine abfrage op de TV an ist, diese variable bekommst du aber nirgendwo von hab ich das richtig verstanden ?

            Ich benutze z.b. fuer solche sachen harmony damit habe ich das problem nicht, ich wurde gerne erst begreifen ob wir den wert irgendwo abfragen koennen. Mein idee:

            A) wir bekommen den wert irgendwo her und bauen noch eine 2te abfrage rein

            B) wir bauen eine function die per ping oder etwas in der art den status ermittelt.

            So gassie gehen, sag bitte bescheit ob ich es richtig verstanden habe dan geb ich dir noch nen stoss in die (hoffentlich :ugeek:) richtige richtung

            ~Dutch

            1 Reply Last reply Reply Quote 0
            • P
              pix last edited by

              Vielleicht so?

              on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', val: 0}, function (obj) {
              console.log("Switch off Samsung TV");
              setState ('samsung2016.0.tvOn', false);
              });
              on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', val: 1}, function (obj) {
              console.log("Switch on Samsung TV");
              setState ('samsung2016.0.tvOn', true);
              });
              
              

              Gruß

              Pix

              EDIT: DIe Abfrage, ob TV schon an, kann dann später eingebaut werden. Muss auch erstmal Gassi gehen.

              1 Reply Last reply Reply Quote 0
              • M
                my-knx-shop last edited by

                Gassi musss ich heute nicht mehr, aber die Katze kam gerade nach Hause. Die wollte auch noch was 😉

                Also scheinbar hab ich ganz gut erklärt, denn du scheinst genau verstanden zu haben was ich meine 😉

                Fall 1. ist halt nur erstmal je nach Wert auch dem TV den richtigen wert geben.

                Fall 2. könnte komplizierter werden, da ich die Rückmeldung brauche und dazu keinen Wert vom TV bekomme.

                Also genau wie du es erfasst hast.

                1 Reply Last reply Reply Quote 0
                • M
                  my-knx-shop last edited by

                  @pix:

                  Vielleicht so?

                  on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', val: 0}, function (obj) {
                  console.log("Switch off Samsung TV");
                  setState ('samsung2016.0.tvOn', false);
                  });
                  on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', val: 1}, function (obj) {
                  console.log("Switch on Samsung TV");
                  setState ('samsung2016.0.tvOn', true);
                  });
                  
                  ```` `  
                  

                  Ja, dass könnte passen.

                  Das erschliesst sich mir auch da hier erst über das entschieden wird was an Werten kommt Val 0 oder Val 1, welcher der folgenden Werte gesendet werden soll.

                  Das muss ich ausprobieren.

                  1 Reply Last reply Reply Quote 0
                  • M
                    my-knx-shop last edited by

                    on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', val: false}, function (obj) {
                    console.log("Switch off Samsung TV");
                    setState ('samsung2016.0.tvOn', false);
                    });
                    on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', val: true}, function (obj) {
                    console.log("Switch on Samsung TV");
                    setState ('samsung2016.0.tvOn', true);
                    });
                    

                    So klappt es hervorragend.

                    Angenommen ich will nun noch etwas weiteres hinzufügen wie zum Beispiel, dass ich noch eine weitere Gruppenadresse mit einer Medlun belegen will. Kann ich dann einfach ein weiteres setState hinzufügen ?

                    Also so ungefähr:

                    on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', val: true}, function (obj) {

                    console.log("Switch on Samsung TV");

                    setState ('samsung2016.0.tvOn', true);

                    setState ('knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus_Status', true);

                    Das wäre dann für eine kleine Rückmeldung gedacht. Schöner wäre natürlich wenn ich auch eine Rückmldung habe wenn ich es nur mit der TV Fernbedienung mache und der Status des TVs auch auf dem Taster wär also knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus_Status

                    1 Reply Last reply Reply Quote 0
                    • Dutchman
                      Dutchman Developer Most Active Administrators last edited by

                      @my-knx-shop:

                      on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', val: false}, function (obj) {
                      console.log("Switch off Samsung TV");
                      setState ('samsung2016.0.tvOn', false);
                      });
                      on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', val: true}, function (obj) {
                      console.log("Switch on Samsung TV");
                      setState ('samsung2016.0.tvOn', true);
                      });
                      

                      So klappt es hervorragend.

                      Angenommen ich will nun noch etwas weiteres hinzufügen wie zum Beispiel, dass ich noch eine weitere Gruppenadresse mit einer Medlun belegen will. Kann ich dann einfach ein weiteres setState hinzufügen ?

                      Also so ungefähr:

                      on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', val: true}, function (obj) {

                      console.log("Switch on Samsung TV");

                      setState ('samsung2016.0.tvOn', true);

                      setState ('knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus_Status', true); `

                      😄

                      @my-knx-shop:

                      Das wäre dann für eine kleine Rückmeldung gedacht. Schöner wäre natürlich wenn ich auch eine Rückmldung habe wenn ich es nur mit der TV Fernbedienung mache und der Status des TVs auch auf dem Taster wär also knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus_Status `

                      wie in deinem beispiel kannst du x beliebige set states hinzufuegen, zb:

                      on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', val: true}, function (obj) {
                      console.log("Switch on Samsung TV");
                      setState ('samsung2016.0.tvOn', true);
                      setState ('device_1.0.tvOn', true);
                      setState ('device_2.0.tvOn', true);
                      setState ('device_3.0.tvOn', true);
                      setState ('device_4.0.tvOn', true);
                      });
                      

                      pass aber auf, in deinem beispiel setzt du den wert der triggert auch auf set state:
                      @my-knx-shop:

                      setState ('knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus_Status', true); `

                      dadurch ensteht eine nicht endende loop, da muss noch

                      change: "ne"
                      

                      zwischen damit das script nur bei variablen aenderung startet:

                      on({id: 'knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus', change: "ne", val: true}, function (obj) {
                      

                      aber warum die gleiche variable updaten mit dem selben wert als das die schaltung verursacht hat ?

                      @my-knx-shop:

                      Das wäre dann für eine kleine Rückmeldung gedacht. `

                      eventuell mittels log ?````
                      log("TV eingeschlaltet")

                      
                      ~Dutch
                      1 Reply Last reply Reply Quote 0
                      • M
                        my-knx-shop last edited by

                        Wieso die gleiche Variable ?

                        das eine ist doch der Status und das andere nur die Gruppenadresse.

                        knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus

                        knx.0.Multimedia.WHZ_Samsung.Ein_/_Aus_Status

                        Danke für die Info mit den setState. Dann mache ich das mal noch und habe schon mal eine kleine Rückmeldung.

                        Für die richtige müsste man vielleicht was anderes realisieren. Vielleicht über einen Stromerkennungsaktor in der Steckdose in der der TV steckt.

                        Oder hat jemand noch eine Idee ?

                        1 Reply Last reply Reply Quote 0
                        • Dutchman
                          Dutchman Developer Most Active Administrators last edited by

                          Ups Sorry _status übersehen.

                          Mir fällt dazu:

                          • stroomerkennung

                          • Ping/api wen Smart TV

                          • Sensor setzen der Strom aus tv als actor sieht (zB auf scart, Usb, HDMI Anschluss… Tv aus stroomerkennung weck)

                          • Infrarot Signal abfangen

                          • TV auf immer an Modus und per Strom Zufuhr ein/aus schalten

                          ~Dutch


                          Send from mobile device

                          1 Reply Last reply Reply Quote 0
                          • M
                            my-knx-shop last edited by

                            Das mit dem Ping würde ich gerne mal testen. Weißt du wie das gehen könnte ?

                            1 Reply Last reply Reply Quote 0
                            • arteck
                              arteck Developer Most Active last edited by

                              mit nem Ping adapter

                              1 Reply Last reply Reply Quote 0
                              • M
                                my-knx-shop last edited by

                                Und wie mache ich das dann in dem Script ?

                                1 Reply Last reply Reply Quote 0
                                • M
                                  my-knx-shop last edited by

                                  ok … habe ein wenig rumgespielt und es mit dem Ping soweit hinbekommen.

                                  Danke euch.

                                  Gib es sowas wie den Ping Adapter auch für Mac Adressen ?

                                  Also, wenn sich in der Fritzbox die MAC Adresse xy ins Wlan einbindet true und wenn diese nicht erreichbar ist false ?

                                  Danke vielmals für eure Hilfe

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    dwm last edited by

                                    Gibt es, mit dem tr064 Adapter.

                                    https://github.com/soef/iobroker.tr-064

                                    Du kannst da devices definieren, und in einem Datenpunkt wird dargestellt, ob die Fritzbox die als Aktiv oder Inaktiv sieht.

                                    1 Reply Last reply Reply Quote 0
                                    • R
                                      RappiRN Most Active last edited by

                                      Beim Ping gibts noch zu beachten, dass sich ein Fernseher auch mal nachts selbstständig in Netz einloggt um auf Updates zu prüfen. Das passiert natürlich nicht, wenn er per Steckdose abgeschaltet ist. Beobachtet bei meinem Samsung UE46ES6300, der ist bei mir immer ab drei Uhr an (online).

                                      Enrico

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        my-knx-shop last edited by

                                        @dwm:

                                        Gibt es, mit dem tr064 Adapter.

                                        https://github.com/soef/iobroker.tr-064

                                        Du kannst da devices definieren, und in einem Datenpunkt wird dargestellt, ob die Fritzbox die als Aktiv oder Inaktiv sieht. `
                                        Es geht nicht darum ob die Fritzbox aktiv ist. Es geht darum aus der Fritzbox auszulesen ob eine bestimmte Mac Adresse im WLAN angemeldet ist oder nicht. Geht das damit auch ?

                                        1 Reply Last reply Reply Quote 0
                                        • R
                                          RappiRN Most Active last edited by

                                          Ja.

                                          2216_tr064.jpg

                                          Enrico

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            my-knx-shop last edited by

                                            @RappiRN:

                                            Ja.

                                            Enrico `
                                            Danke …. probiere ich heute Abend mal aus. [emoji106]

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            869
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            21
                                            2771
                                            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