Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Button der nur betätigt werden kann wenn Object ID= 0 oder 1

    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

    Button der nur betätigt werden kann wenn Object ID= 0 oder 1

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @SebasDi last edited by paul53

      @sebasdi sagte: wechselt der Button in der Visu (Vis2) von seiner Farbe "true" auf "false" obwohl die ObjectID immernoch 1 ist.

      Wenn Kommando und Status getrennt sind, führe sie mit Lese- und Schreibkonvertierung in einem Alias vom Typ "Logikwert", Rolle "switch" zusammen, um beliebige Schalter-Widgets verwenden zu können.
      Der Netzwerkeingang 1 (Taster) toggelt den Merker 1? Dann Schreibkonvertierung:

      val ? 1 : 1
      

      Lesekonvertierung:

      !!val
      
      1 Reply Last reply Reply Quote 0
      • SebasDi
        SebasDi @SebasDi last edited by

        @sebasdi Verstehe ich das richtig, dass das Skript dann weiß, dass NI1 und NI2 den M1 ein- bzw. ausschalten?

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

          @sebasdi sagte: NI2 den M1 ein- bzw. ausschalten?

          Was ist NI2?

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

            @paul53 Abkürzung für Netzwerkeingang an der SPS (sorry)

            paul53 1 Reply Last reply Reply Quote 0
            • O
              oFbEQnpoLKKl6mbY5e13 @SebasDi last edited by oFbEQnpoLKKl6mbY5e13

              @sebasdi sagte in Button der nur betätigt werden kann wenn Object ID= 0 oder 1:

              ... Zudem hängt die Visu oft und man muss den versteckten Button zuerst kurz antippen, damit die Signale rausgehen. Warum auch immer.

              Muss an VIS2 liegen. Mit VIS1 gibt es das Problem bei mir nicht. Wundert mich allerdings bei VIS2 auch nicht...

              Edit:
              Was ich damit sagen will: Ich habe keine Ahnung von VIS2, kann also dbzgl. nicht helfen.

              SebasDi 2 Replies Last reply Reply Quote 0
              • SebasDi
                SebasDi @oFbEQnpoLKKl6mbY5e13 last edited by

                @ofbeqnpolkkl6mby5e13

                hmmm....

                Ich dachte halt, dass ich über manuelles "Widget-Einfügen" einfach jedes mal den richtigen Code einfüge und dann nur die ObjectID und SteuerID's ändern muss.

                Aber irgendwie klappt das nicht. Hab auch schon das hier versucht:

                [
                {
                "tpl": "tplJquiToogle",
                "data": {
                "bindings": [],
                "type": "button",
                "g_common": true,
                "oid": "nothing_selected",
                "text_false": "Aus",
                "g_text": true,
                "text_true": "An",
                "color_true": "#93ff93",
                "padding": 5,
                "g_style": true,
                "variant": "contained",
                "orientation": "horizontal",
                "icon_false": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMyAzaC0ydjEwaDJWM3ptNC44MyAyLjE3bC0xLjQyIDEuNDJBNi45MiA2LjkyIDAgMCAxIDE5IDEyYzAgMy44Ny0zLjEzIDctNyA3QTYuOTk1IDYuOTk1IDAgMCAxIDcuNTggNi41OEw2LjE3IDUuMTdBOC45MzIgOC45MzIgMCAwIDAgMyAxMmE5IDkgMCAwIDAgMTggMGMwLTIuNzQtMS4yMy01LjE4LTMuMTctNi44M3oiLz48L3N2Zz4=",
                "g_icon_false": true,
                "onchange": "if (this.value) { sendCommand('s7.1.DBs.DB1.NI33'); } else { sendCommand('s7.1.DBs.DB1.NI33'); }"
                },
                "style": {
                "bindings": [],
                "left": "728.203125px",
                "top": "785px",
                "width": 92,
                "height": 36
                },
                "widgetSet": "jqui",
                "_id": "i000001"
                }
                ]

                1 Reply Last reply Reply Quote 0
                • SebasDi
                  SebasDi @oFbEQnpoLKKl6mbY5e13 last edited by

                  @ofbeqnpolkkl6mby5e13 trotzdem Danke 😉

                  O 1 Reply Last reply Reply Quote 0
                  • O
                    oFbEQnpoLKKl6mbY5e13 @SebasDi last edited by

                    @sebasdi

                    Ich kann dir allerdings bzgl. "manuelles "Widget-Einfügen"" nicht folgen.

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

                      @sebasdi sagte: Abkürzung für Netzwerkeingang

                      Das dachte ich mir. Weshalb erwähnst du jetzt einen NI2? Was soll er bewirken?

                      SebasDi 1 Reply Last reply Reply Quote 0
                      • SebasDi
                        SebasDi @oFbEQnpoLKKl6mbY5e13 last edited by

                        @ofbeqnpolkkl6mby5e13 in Vis2 kann man auf einer Seite die rechte Maustaste klciken, dann auf "Widget einfügen" und einen Java Code einfügen. Das meinte ich.

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

                          @sebasdi sagte: Checkbox, die mir beim Aktivieren in der Visu einen separaten Netzwerkeingang schaltet und beim Deaktivieren einen anderen Netzwerkeingang schaltet. Abhängig vom Status der ObjectID.

                          Also zwei Taster - einer für Set, der andere für Reset? Das geht wohl nur mit Skript.

                          const idM1 = 'S7...';
                          const idNI1 = 'S7...'; // Set
                          const idNI2 = 'S7...'; // Reset
                          
                          on({id: idM1, change: 'ne', ack: false}, function(dp) {
                              if(dp.state.val) setState(idNI1, 1);
                              else setState(idNI2, 1);
                          });
                          
                          SebasDi 2 Replies Last reply Reply Quote 1
                          • SebasDi
                            SebasDi @paul53 last edited by SebasDi

                            @paul53

                            Also diese Funktion benötige ich zum Beispiel um Merker der Steuerung zu setzen oder zurückzusetzen.

                            Die Netzwerkeingänge werden beim Klick auf den Button nur kurz angesteuert und werden nicht gehalten. Daher benötige ich, um diverse Programmabschnitte in der Steuerung ein- oder auszublenden, einige Merker.

                            1ef65c0f-b3ad-4270-8341-ecfc527255ce-image.png

                            Die Poolsteuerung ist universell und beinhaltet wirklich alles was es gibt. Daher gibt es in der Visu eine Anlagenkonfiguration für viele Funktionen. Je nachdem was ausgewählt / nicht ausgewählt wird, passt sich das Programm in der Steuerung an.

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

                              @paul53

                              Würde das mit dem Ding hier funktionieren?

                              [
                              {
                              "tpl": "tplJquiToogle",
                              "data": {
                              "bindings": [],
                              "type": "button",
                              "g_common": true,
                              "oid": "nothing_selected",
                              "text_false": "Aus",
                              "g_text": true,
                              "text_true": "An",
                              "color_true": "#93ff93",
                              "padding": 5,
                              "g_style": true,
                              "variant": "contained",
                              "orientation": "horizontal",
                              "icon_false": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0xMyAzaC0ydjEwaDJWM3ptNC44MyAyLjE3bC0xLjQyIDEuNDJBNi45MiA2LjkyIDAgMCAxIDE5IDEyYzAgMy44Ny0zLjEzIDctNyA3QTYuOTk1IDYuOTk1IDAgMCAxIDcuNTggNi41OEw2LjE3IDUuMTdBOC45MzIgOC45MzIgMCAwIDAgMyAxMmE5IDkgMCAwIDAgMTggMGMwLTIuNzQtMS4yMy01LjE4LTMuMTctNi44M3oiLz48L3N2Zz4=",
                              "g_icon_false": true,
                              "onchange": "if (this.value) { sendCommand('s7.1.DBs.DB1.NI33'); } else { sendCommand('s7.1.DBs.DB1.NI33'); }"
                              },
                              "style": {
                              "bindings": [],
                              "left": "728.203125px",
                              "top": "785px",
                              "width": 92,
                              "height": 36
                              },
                              "widgetSet": "jqui",
                              "_id": "i000001"
                              }
                              ]

                              Falls ja, was muss man da anpassen? Wie lauten die "commands" die ich an meinen S7 Adapter senden muss?

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

                                @sebasdi sagte: Würde das mit dem Ding hier funktionieren?

                                Keine Ahnung: Damit kann ich nichts anfangen.

                                EDIT: Versuche es mal mit Javascript:

                                const idM32 = 'S7.1...M32'; // Anpassen!
                                const idNI32 = 's7.1.DBs.DB1.NI32'; // Set
                                const idNI33 = 's7.1.DBs.DB1.NI33'; // Reset
                                
                                on({id: idM32, change: 'ne', ack: false}, function(dp) {
                                    if(dp.state.val) setState(idNI32, 1);
                                    else setState(idNI33, 1);
                                });
                                
                                1 Reply Last reply Reply Quote 0
                                • SebasDi
                                  SebasDi @paul53 last edited by

                                  @paul53 said in Button der nur betätigt werden kann wenn Object ID= 0 oder 1:

                                  const idM1 = 'S7...'; const idNI1 = 'S7...'; // Set const idNI2 = 'S7...'; // Reset on({id: idM1, change: 'ne', ack: false}, function(dp) { if(dp.state.val) setState(idNI1, 1); else setState(idNI2, 1); });

                                  Okay. Schade. ABer sicherlich mit bisschen Aufwand lösbar für alle Funktionen.
                                  Dein Skript habe ich mal erstellt und es läuft.
                                  Wie verknüpfe ich jetzt einen Button aus der Vis2 mit dem Skript?

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

                                    @sebasdi sagte: Wie verknüpfe ich jetzt einen Button aus der Vis2 mit dem Skript?

                                    Die Verknüpfung muss ein Schalter mit M32 sein.

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

                                      @paul53

                                      Habe einen neuen Schalter erstellt und die ObjektID mit dem M32 verknüpft.
                                      Der SteuerID ist dann die angelegte Skriptdatei?

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

                                        @sebasdi sagte: Der SteuerID ist dann die angelegte Skriptdatei?

                                        Ist sie getrennt? Sie muss dann auch die M32-ID sein.

                                        In Vis(1) kann man z.B. das Widget "Radiobuttons ValueList" mit diesen Einstellungen verwenden:

                                        Vis_SPS_MANU_AUTO.JPG

                                        SebasDi 1 Reply Last reply Reply Quote 1
                                        • SebasDi
                                          SebasDi @paul53 last edited by

                                          @paul53

                                          es läuft!! 🙂

                                          Oh mein Gott. Endlich!

                                          Tausend Dank für deine Zeit & kompetente Hilfe!!! 👍 🤛 💪

                                          Werde dann mal ein paar Skripte schreiben müssen und alles verknüpfen. Aber die Arbeit wird sich lohnen!

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          901
                                          Online

                                          31.9k
                                          Users

                                          80.2k
                                          Topics

                                          1.3m
                                          Posts

                                          3
                                          22
                                          484
                                          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