Ankündigung

Einklappen
Keine Ankündigung bisher.

Schneider Wiser for KNX / Merten Homelynk

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #61
    Robert86424, ich sage mal "Jein"! Das ist nämlich sehr merkwürdig gelöst. Wenn ich im im Bearbeitungsmodus auf die Schaltfläche "Skript aktivieren" drücke, dann geht es in den abgebildeten Zustand. Drücke ich auf "Skript deaktivieren" erscheint der grüne Pfeil. Hatte mir aber schon gedacht, das das nicht richtig sein kann und deshalb tatsächlich beide Varianten ausprobiert. Aber ohne Erfolg. Mit ist nicht wirklich klar, wie die ereignisbasierte Auslösung stattfindet? Und warum das Gerät dieses extra Skript nur für eins meiner geschriebenen Skripte generiert hat?

    Kommentar


      #62
      Hallo Flubber,
      es gibt ja zwei Wege welche brauchst du?

      Meine RGBW-Scripte sind bei mir funktionierend als Ereignisskript im Einsatz.

      Beim ersten wird das Ereignis ausgelöst, wenn auf die Adresse des 4byte RGBW Objekts ein Diagramm kommt. Es macht 4 Einzeladressen 1byte draus. Damit kann der Wiser dann was anfangen.
      -- Dieses Script teilt 1 x 4byte RGBW Objekt in 4 x 1byte Einzelobjekte
      -- Das Skript startet mit dem Ereignis aus dem 4byte RGBW Objekt

      ------------------- Configurable parameters -------------------------------

      roteGruppe = 'X/X/X'
      grueneGruppe = 'X/X/X'
      blaueGruppe = 'X/X/X'
      weisseGruppe = 'X/X/X'
      ---------------------------------------------------------------------------
      value = event.getvalue()

      R = bit.rshift(bit.band(value,0xff000000),24)
      G = bit.rshift(bit.band(value,0x00ff0000),16)
      B = bit.rshift(bit.band(value,0x0000ff00),8)
      W = bit.band(value,0x000000ff)

      grp.write(roteGruppe, R, dt.uint8)
      grp.write(grueneGruppe, G, dt.uint8)
      grp.write(blaueGruppe, B, dt.uint8)
      grp.write(weisseGruppe, W, dt.uint8)​
      Beim zweiten werden vier Einzeladressen (R,G,B,W) zu dem 4byte RGBW Objekt zusammengefasst. Hierzu aber bitte bei allen vier Objekten einen "Tags" im Wiser erstellen (z.B. RGBW_Umwandlung_ZimmerX) und das Ereignis auf diesen Tagnamen (als Gruppenadresse) ausführen lassen. D.h. wenn einer dieser 4 Objekte ein Telegramm erhält, dann geht das Script los.
      Das brauchst du dann, wenn dein Wiser 4 Befehle rausschickt deine LED auf das 4byte RGBW und dein (MDT) Taster z.B. auch auf Statusänderungen reagieren soll.


      ------------------- Konfigurierbare Parameter ------------------------------------

      roteGruppe = 'X/X/X'
      grueneGruppe = 'X/X/X'
      blaueGruppe = 'X/X/X'
      weisseGruppe = 'X/X/X'

      RGBWStatusGruppe = 'X/X/X'
      RGBW_Befehl = 'X/X/X'

      -------------------------------------------------------------------------------

      rot = grp.getvalue(roteGruppe)
      gruen = grp.getvalue(grueneGruppe)
      blau = grp.getvalue(blaueGruppe)
      weiss = grp.getvalue(weisseGruppe)

      RGBW = rot * 0x1000000 + gruen * 0x10000 + blau * 0x100 + weiss

      grp.update(RGBWStatusGruppe, RGBW)​
      Alle X/X/X entsprechend den einzelnen Gruppenadressen.
      Natürlich wie oben beschrieben die Skripte auch aktivieren = grüner Pfeil.
      Ich hoffe ich konnte weiterhelfen.

      Kommentar


        #63
        KNXSeb danke für deine Rückmeldung. Ich benötige tatsächlich beide Wege, die du beschrieben hast. Meine Skripte sehen ein bischen anders aus, aber ich sehe keinen funktionellen Unterschied. Habe sie von der​ Seite von Embedded Systems.

        4x 4byte -> 4x1byte
        red_group = '32/1/6'
        green_group = '32/1/7'
        blue_group = '32/1/8'
        white_group = '32/1/9'

        rgbw = event.getvalue()

        red = bit.band(rgbw / 0x1000000, 0xFF)
        green = bit.band(rgbw / 0x10000, 0xFF)
        blue = bit.band(rgbw / 0x100, 0xFF)
        white = bit.band(rgbw, 0xFF)

        grp.write(red_group, red, dt.uint8)
        grp.write(green_group, green, dt.uint8)
        grp.write(blue_group, blue, dt.uint8)
        grp.write(white_group, white, dt.uint8)​
        Nur der Mittelteil mit den Masken zum Auslesen der einzelnen Farbanteile ist anders. Was bewirkt der rshift Befehl? Und was meinst du mit "Das Skript startet mit dem Ereignis aus dem 4byte RGBW Objekt"? Ist das das zusätzliche Skript aus meinem vorherigen Screenshot, das der Wiser automatisch generiert hat? Das ist leer. Muss da etwas drinstehen? Für die Einzelobjekte zur Ansteuerung habe ich mir virtuelle Gruppenadressen im Wiser erstellt.

        4x 1byte -> 1x4 byte
        rgbw_group = '3/3/0'

        red_group = '31/1/2'
        green_group = '31/1/3'
        blue_group = '31/1/4'
        white_group = '31/1/5'

        red = grp.getvalue(red_group)
        green = grp.getvalue(green_group)
        blue = grp.getvalue(blue_group)
        white = grp.getvalue(white_group)

        rgbw = red * 0x1000000 + green * 0x10000 + blue * 0x100 + white
        grp.update(rgbw_group, rgbw)
        Hier fehlt bei mir lediglich die Gruppenadresse für den RGBW Befehl. Aber in deinem Skript scheint diese auch keine Verwendung zu haben. Was meinst du mit den Tags? Das ist mir nicht ganz klar. Für die Einzelobjekte zur Rückmeldung habe ich mir ebenfalls virtuelle Gruppenadressen im Wiser erstellt.

        Kommentar


          #64
          Hallo Flubber ,
          ich habe meine Skripte auch aus dem embedded Forum zusammengesetzt. Ich meine, dass das in irgendeinem Beitrag geschrieben stand. Der "bit.rshift(value, shift)" setzt das 4Byte aus den Einzelbytes von rechts nach links zusammen. Ob man das in der Form benötigt, kann ich nicht genauer sagen. Es funktioniert zumindest bei mir bisher zuverlässig.
          Zitat von Flubber Beitrag anzeigen
          Und was meinst du mit "Das Skript startet mit dem Ereignis aus dem 4byte RGBW Objekt"?
          Wenn man im Scripting Reiter auf das entsprechende Skript klickt, kann man dort als Ereignisstart die Gruppenadresse eintragen. Wenn nun auf dem Bus ein Telegramm mit dieser Adresse kommt startet das Ereignisskript (egal welcher Inhalt das Telegramm hat). Deshalb muss innerhalb des Skripts immer auch der Inhalt mit "getvalue" abgerufen werden, falls der Wert weiter verarbeitet wird.
          Bei dem Skript (4byte zu 4x1byte) genügt dann deine 4byte RGBW Gruppenadresse.

          Wenn du nun andersherum die einzelnen zusammensetzen willst, dann muss das Skript ja loslaufen auch wenn sich z.B. nur der Weißwert ändert (ohne RGB). Damit das funktioniert musst du im Objektefenster bei deinen 4 Einzelbytes ein "identisches" TAG (freie Namenswahl) setzen. Dieses TAG musst du dann im Skriptefenster wieder auswählen.
          Sobald sich nun eine der vier Adressen ändert, legt das Skript los. Man könnte auch sagen die TAGS überwachen die entsprechenden Objekte.
          Habe dir zwei Screenshots mit den TAGS gemacht. Du musst das halt nur für deine virtuellen Adressen machen.

          Zitat von Flubber Beitrag anzeigen
          Hier fehlt bei mir lediglich die Gruppenadresse für den RGBW Befehl. Aber in deinem Skript scheint diese auch keine Verwendung zu haben.
          Korrekt wird nicht benötigt. Vermutlich habe ich das nur wegen der Übersicht drin gelassen.
          Tags_2.pngTags_1.png


          Ich hoffe das sind die korrekten Antworten auf deine Fragen.

          Kommentar


            #65
            Hallo Flubber,

            also der DPT 251.600 ist ein 6 Byte Datentyp, wovon 4 Byte für die Farben Rot, Grün, Blau und Weiß verwendet werden.
            Man kann hier das ganze auch einfacher zerlegen und zusammenfügen, ohne mit den Bit Masken zu arbeiten.

            Eine Möglichkeit wäre folgende:

            Skript Kombinierter Farbwert (6 Byte) -> 4x 1 Byte: RGBW1
            Code:
            red = '33/1/2'
            green = '33/1/3'
            blue = '33/1/4'
            white = '33/1/5'
            
            value = event.getvalue()
            grp.write(red, value.red)
            grp.write(green, value.green)
            grp.write(blue, value.blue)
            grp.write(white, value.white)



            Skript 4x 1 Byte -> Kombinierter Farbwert (6 Byte): RGBW2
            Code:
            rgbw = '33/1/11'
            
            red = '33/1/7'
            green = '33/1/8'
            blue = '33/1/9'
            white = '33/1/10'
            
            grp.write(rgbw, {
                ["red"] = grp.getvalue(red),
                ["green"] = grp.getvalue(green),
                ["blue"] = grp.getvalue(blue),
                ["white"] = grp.getvalue(white)
            })



            rgbw.png
            Theoretisch könnte man das ganze noch wesentlich universeller mit nur einem Skript lösen, aber grundsätzlich funktioniert das ganze so wie beschrieben.

            VG Matthias
            Zuletzt geändert von forsterm; 01.07.2024, 13:08.

            Kommentar


              #66
              KNXSeb und forsterm, vielen Dank für Eure Hinweise. Nach etwas ausprobieren hat es jetzt geklappt. Die Erklärung zu den Tags war seht hilfreich und auch die vereinfachten Skripte funktionieren gut. Allerdings habe ich diese noch etwas geändert, da die GAs meines Erachtens oben genau verdreht sind. Ich muss für den Wiser ja den Status von 6byte in 4x1byte und den Schaltbefehl von 4x1byte in 6byte konvertieren. Noch eine letzte Frage. Welche Auswirkung hat der Ausführungsmodus? Ich habe beide Skripte auf "normal" und es funktioniert. Oben im Screenshot ist das RGBW2 auf "nur in letzter Instanz" gesetzt.

              Kommentar


                #67
                Der Ausführungsmodus lässt sich wie folgend erklären:


                Normal
                Hier wird bei jedem Eingang eines neuen Telegrams (entweder auf der einzelnen Gruppenadresse des Event-Scripts, oder auf einem der Objekte, welches mit dem Tag versehen ist), das Event-Skript ausgeführt, sprich es können und werden mehrere Skripte parallel ausgeführt (jeweils als eigene Prozess des Betriebssystem).


                Nur in der ersten Instanz
                Hier wird nach Eingang eines neuen Telegrams das entsprechende Event-Skript ausgeführt, sollte jetzt innerhalb der Zeit wo dieses Skript noch ausgeführt wird, erneut ein Telegramm empfangen werden, dann wird das Skript nicht nochmal ausgeführt, sondern erst wenn die erste Instanz des Skriptes beendet ist.


                Nur in der letzten Instanz
                Hier wird nach Eingang eines neuen Telegrams zuerst geschaut, ob dieses Event-Skript bereits läuft, falls ja, dann wird das bereits laufende Skript beendet und das Skript mit den zuletzt empfangen Telegramwerten ausgeführt.

                Kommentar


                  #68
                  Danke für die Erklärung. Dann macht die Einstellung natürlich Sinn, damit das Skript nicht mehrfach für die Telegramme der einzelnen Farbanteile durchgeführt wird.

                  Kommentar


                    #69
                    Ich habe nun die nächste Etage umgerüstet und damit eine zweite Linie in Betrieb genommen. Beide sind über IP Router über LAN Backbone verbunden. Nun habe ich das Problem, dass der Wiser nur die Telegramme aus der Linie lesen/schreiben kann, in der er hängt. Das ist ja erstmal nicht verwunderlich, da das Gerät in der ETS quasi nicht existiert sondern nur über das Webinterface projektiert wird. Damit erstellt die ETS keine Einträge in der Filtertabelle. Wie löse ich das Problem sinnvoll? Ich habe mehrfach gelesen, dass man einen Dummy in der ETS einrichten soll. Dem müsste ich dann irgendwie fast alle Gruppenadressen zuordnen, damit ich alles Visualisieren kann. Es gibt den Wiser auch nicht als Applikationsprogramm für die ETS.

                    Kommentar


                      #70
                      Der wiser kann auch Routing. Dann nimmst du dir die Gira Dummy Applikation dir kannst du auf den Backbone hängen und verbindest alle Gruppen Adressen damit.

                      Kommentar


                        #71
                        Zitat von Peterich Beitrag anzeigen
                        Der wiser kann auch Routing.
                        Meinst du, dass ich den Wiser anstelle eines Routers als Linienkoppler nehmen kann? Trotzdem bräuchte ich ja einen Dummy um die Telegramme aus den anderen Linien durch die jeweiligen Koppler zu bekommen.

                        Kommentar


                          #72
                          Zitat von Peterich Beitrag anzeigen
                          Dann nimmst du dir die Gira Dummy Applikation dir kannst du auf den Backbone hängen und verbindest alle Gruppen Adressen damit.
                          Ich habe jetzt den Dummy im Backbone konfiguriert und alle Gruppenadressen aus der Linie des OG verbunden. Der Wiser hängt aber mit TP-UART in der Linie des DG. Wie kommen denn die Telegramme in diese Linie rein? Muss ich den Dummy dann nicht in diese Linie setzen, damit der Koppler auch entsprechen durchlässt?

                          Kommentar


                            #73
                            Nur kurze Rückmeldung... Dummy hängt jetzt in der Linie des Dachgeschosses und alles funktioniert.

                            Kommentar


                              #74
                              Guten Morgen,
                              ich habe seit ein paar Tagen auch den LSS100100, gestern habe ich das Teil in Betrieb genommen um ihn mir mal im Detail anzuschauen. Da dies hier der Sammelthread ist, stelle ich mal meine Frage in dieser Runde.
                              Ich bin auf der Suche nach Doku oder sonstigem Info Material um in die Logik Programmierung einzusteigen. Ich habe mir den FBEditor angeschaut, war damit aber etwas überfordert :-) Wenns per programmierung einfacher ist, wäre ich daran auch interessiert.
                              Vielleicht hat ja jemand ein paar Tipps.
                              Danke

                              Kommentar


                                #75
                                Zitat von maki128 Beitrag anzeigen
                                ch will mir gerade wiser für knx kaufen
                                es gibt Anbieter für 562€ und für 1500€ (Neu)
                                gibt es da Gründe?
                                Hallo,

                                spreche das Thema noch einmal an.
                                Habe auch solche Angebote gesehen und frage mich wie das geht.
                                Liegen die Geräte über Jahre ungenutzt im Schrank, sind also alt oder sind die genutzt und haben kleine Macken?

                                Beschäftige mich halt Aktuell mit dem Wiser, evtl Anschaffung.
                                Klar ist natürlich bei solchen Angeboten, keine Garantie etc..
                                Was ich momentan bei dem Gerät schade finde, es gibt wohl keine Software wo man ohne Gerät mal ein Programm schreiben kann, sich also die Programmierung vorher mal ansehen kann.
                                Verstehe das so, Programmierung geht nur in Verbindung mit dem Wiser.
                                Was mir im Moment auch nicht klar ist. es gibt Wiser Geräte wie z.B. Rauchmelder und Schalter. Können diese direkt mit dem Wiser für KNX verbunden werden, oder wird noch zusätzlich eine Schnittstelle benötigt?
                                Zuletzt geändert von waldecker01; 05.09.2025, 07:34.

                                Kommentar

                                Lädt...
                                X