Ankündigung

Einklappen
Keine Ankündigung bisher.

falsche Szene wird gesendet

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

    falsche Szene wird gesendet

    Ist das ein Fehler von SmarthomeNG oder mache ich was falsch? Ich sende die Szenennummer auf die Gruppenadresse für die Szene und im Gruppenmonitor kommt dann die falsche Nummer an. Zum Beispiel:

    Ich sende Szene Nummer 5 im Gruppenmonitor steht dann am Ende "$05 | 6". Im Aktor habe funktioniert das aber nur, wenn ich dort die Szenennummer 6 eingestellt habe. Was ist also diese $05 ? Oder sind die Szenen Nullbezogen, dass heißt Szene 1 ist eine 0 usw.? Im Aktor kann ich ja nur zwischen 1 und 64 auswählen und nicht zwischen 0 und 63.

    #2
    Ja, du vermutest richtig, Szenen sind 0 basiert. Eine Szene 6 wird auf dem Bus als 5 gesendet.

    Ich weiß nicht, ob shNG einen Szenen - DPT hat. Wenn ja, dann sollte ein item mit diesem DPT selber dafür sorgen, dass eine Szene 6(als item Wert) korrekt gesendet wird. Wenn du den DPT 5 verwendest, musst du selbst die 1 abziehen.

    Gruß Waldemar


    ​​
    OpenKNX www.openknx.de

    Kommentar


      #3
      SmartHomeNG kennt den DPT (17) Szene. Hat vom Grunde her auch sehr umfangreiche Szenen-Funktionen, die ich aber gar nicht nutze. Dennoch muss ich die Szene von 0-63 senden, laut Datentyp. Ich kann also nur, damit ich nicht durcheinander komme einfach bei meinem "Szene senden - Item" -1 abziehen und dann sollte es passen. :-) War mir aber so nicht bewusst vorher.

      Danke für die Info.

      Kommentar


        #4
        Irgendwie klappt das nicht mit dem abziehen.

        Code:
            SendSzene:
                type: num
                knx_dpt: 17
                knx_send: 10/3/0
                eval: value -1 if value > 0 else value
                enforce_updates: yes
        Variante 2 auch nicht.

        Code:
            SendSzene:
                type: num
                knx_dpt: 17
                knx_send: 10/3/0
                eval: value -1
                enforce_updates: yes
        Nichts wird hier subtrahiert. Wieso?

        Der Aufruf erfolgt so:

        Code:
                schalten:
                    type: bool
                    knx_dpt: 1
                    knx_send: 10/4/4
                    knx_cache: 10/4/4
                    visu_acl: rw
                    enforce_updates: yes
                    on_change: Zentral.SendSzene = 6 if value else None

        Kommentar


          #5
          Hi,

          ich hab mal geschaut. Wenn man mit der ETS was mit DPT 17 sendet, wird 1:1 gesendet, also 5 wird mit 5 gesendet. Wenn man aber mit DPT 17.001 sendet, wird bei Szene 6 mit 5 gesendet.

          Das scheint was ähnliches wie DPT 5 und DPT 5.001 zu sein. Und da in shNG nur die Haupttypen (und wenige Untertypen wie 5.001) implementiert, verhält es sich bei 17 richtig. Du könntest natürlich auch den DPT 17.001 implementieren, dann klappt es. Das kann man in knx-plugin machen, Datei dpts.py:

          Code:
          def en17001(value):
              return [0, (int(value) & 0x3f) - 1]
          
          def de17001(payload):
              if len(payload) != 1:
                  return None
              return (struct.unpack('>B', payload)[0] & 0x3f) + 1
          Weiter unten müssen dann noch die DPT deklariert werden, da steht irgendwo:
          Code:
          decode = {
              ...
             '17001': de17001,
             '17.001': de17001, 
              ...
          }
          
          encode = {
              ...
              '17001': en17001,
              '17.001': en17001,
              ...
          }
          Das hab ich allerdings nicht getestet, da mein shNG-Rechner derzeit rumspinnt.

          Gruß, Waldemar
          OpenKNX www.openknx.de

          Kommentar


            #6
            Zitat von Cannon Beitrag anzeigen
            Nichts wird hier subtrahiert. Wieso?
            Schau mal ins Log, ich vermute, dass da so was wie eval: int(value)-1 stehen muss. Ist aber nur eine Vermutung.

            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              #7
              Zitat von mumpf Beitrag anzeigen
              Das scheint was ähnliches wie DPT 5 und DPT 5.001 zu sein. Und da in shNG nur die Haupttypen (und wenige Untertypen wie 5.001) implementiert, verhält es sich bei 17 richtig. Du könntest natürlich auch den DPT 17.001 implementieren, dann klappt es. Das kann man in knx-plugin machen, Datei dpts.py:
              Ich habe gerade mal geschaut und einen Thread aus 2017 gefunden, wo es schon um den Typen DT 17.001 ging. Kann man das nicht mal grundsätzlich implementieren? Dann fällt das ganze Thema auch weg.:-) Und man vergisst auch nicht jedes Mal die richtige Nummer zu senden.

              Zitat von mumpf Beitrag anzeigen
              Schau mal ins Log, ich vermute, dass da so was wie eval: int(value)-1 stehen muss. Ist aber nur eine Vermutung.
              Da ist leider nichts nur das:

              2018-12-20 09:29:01 INFO Main Item Zentral.Anwesenheit.schalten: 'on_change' evaluating Zentral.SendSzene = 5 if value else None
              2018-12-20 09:29:02 INFO Main Item Zentral.Anwesenheit.Langdruck: 'on_change' evaluating Zentral.SendSzene = 7 if not value else None

              Kommentar


                #8
                Ich nehme den dpt 17.001 für das nächste Release mal mit auf.
                Viele Grüße
                Martin

                There is no cloud. It's only someone else's computer.

                Kommentar


                  #9
                  Hi,

                  Zitat von Cannon Beitrag anzeigen
                  2018-12-20 09:29:01 INFO Main Item Zentral.Anwesenheit.schalten: 'on_change' evaluating Zentral.SendSzene = 5 if value else None
                  kann es sein, dass Dein Log nicht auf "DEBUG" steht? Dann würdest Du nach dieser Zeile wahrscheinlich sehen, dass das Item Zentral.SendSzene wirklich eine 5 oder eben eine 4 zugewiesen bekommt. Ich hab meine Logs immer auf DEBUG gestellt, nur dann sieht man wirklich alles, was passiert.

                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    #10
                    Zitat von Msinn Beitrag anzeigen
                    Ich nehme den dpt 17.001 für das nächste Release mal mit auf.
                    Danke!
                    OpenKNX www.openknx.de

                    Kommentar


                      #11
                      Ist im Develop schon gepusht
                      Viele Grüße
                      Martin

                      There is no cloud. It's only someone else's computer.

                      Kommentar

                      Lädt...
                      X