Ankündigung

Einklappen
Keine Ankündigung bisher.

MDT Logikcontroller: Byte-Werte mappen

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

    MDT Logikcontroller: Byte-Werte mappen

    Szenario: Ich möchte den MDT Taster Smart benutzen, um zwischen vier verschiedenen Szenen umzuschalten:
    • 1: Licht aus
    • 2: Dimmen minimal
    • 3: HCL aktivieren
    • 4: Dimmen maximal
    Der Präsenzmelder wird nur die Szenen 1 und 3 senden.

    Jetzt kann der Smart-Taster jedoch bei Szenen kein Feedback im Display geben, welche Szene gerade aktiv ist. Außerdem gibt es für Szenen aus irgendeinem Grund die Option "Berücksichtigt Statusobjekt" nicht. Deswegen will ich statt dessen Dezimalwerte zwischen 0 und 255 verwenden, so dass ich zumindest dessen drei Feedback-Objekte (Wert 0, Wert 1-230, Wert 230-255) nutzen kann. Benötigt wird also ein bidirektionales Mapping:
    • Szene 1 = Dezimalwert 0
    • Szene 2 = Dezimalwert 2 (oder anderer Wert zwischen 1 und 230)
    • Szene 3 = Dezimalwert 3 (oder anderer Wert zwischen 1 und 230)
    • Szene 4 = Dezimalwert 255 (oder anderer Wert zwischen 230 und 255)
    Zur Verfügung steht das MDT Logikmodul SCN-LOG1.02.

    Ein direktes bidirektionales Mapping mit der Universallogik würde 8 Logikfunktionen beleen, das wäre ziemliche Verschwendung.

    Eine Alternative wäre, die Dezimalzahl bzw. die Szenennummer mit dem Formatwandler auf 8 Einzelbits umzusetzen und diese dann mit der Steuertabelle wieder auf die entsprechende Szenennummer / Dezimalzahl zu wandeln. Dafür würden dann 4 Logikfunktionen reichen, dafür würde der Bus mit 16 zusätzlichen Hilfsobjekten geflutet.

    Eine weitere Option wäre, jeweils zwei Universalrechner zu benutzen mit der Formel (Szene - 1) * 80 bzw. (Dezimalzahl / 80) + 1. Dann würden die Szenen auf die Dezimalzahlen 0, 80, 160 und 240 gemappt, es wären ebenfalls vier Logikfunktionen erforderlicht, aber nur zwei Hilfs-GAs für die Zwischenergebnisse.

    Weiß jemand noch einen eleganteren Lösungsvorschlag?

    Edit: Danke für das Verschieben, hab versehentlich das falsche Forum angeklickt.
    Zuletzt geändert von Cybso; 10.02.2020, 12:52.

    #2
    Hi, wieso brauchst Du bidirektionales mapping? Du willst die Werte doch nur anzeigen?

    Wenn es wirklich die Szenen 1-4 sind, dann einfach mit der Formel Szene * 80 nehmen, auf dem Bus ist die Szene schon um 1 vermindert.

    Gruß, Waldemar

    ​​​
    OpenKNX www.openknx.de

    Kommentar


      #3
      Zitat von mumpf Beitrag anzeigen
      Hi, wieso brauchst Du bidirektionales mapping? Du willst die Werte doch nur anzeigen?​​​
      Weil die Szene nicht nur durch den Taster, sondern auch durch den Präsenzmelder und einem zweiten Taster im Flur geändert werden kann. Dafür braucht der MDT ein Statusobjekt (Dezimal) als Rückmeldung, schon alleine damit er weiß, welcher Wert als nächstes gesendet werden muss.

      Zitat von mumpf Beitrag anzeigen
      Wenn es wirklich die Szenen 1-4 sind, dann einfach mit der Formel Szene * 80 nehmen, auf dem Bus ist die Szene schon um 1 vermindert.
      Das ist ein guter Hinweis, dann reichen tatsächlich zwei Universalrechner, und ein Hilfsobjekt ist auch nicht erforderlich . Vorausgesetzt natürlich, dass das KO die Szene als 1-Byte-Wert akzeptiert.
      Zuletzt geändert von Cybso; 10.02.2020, 13:48.

      Kommentar


        #4
        Hi,

        ich denke, Du brauchst wirklich nur einen Universalrechner. Beide Taster und PM reden über die 1-4 (technisch 0-3) miteinander, der Universalrechner wandelt auf 0, 80, 160 und 240. Wofür dann der 2. Universalrechner? Oder ich hab irgendwas nicht verstanden...

        Gruß, Waldemar
        OpenKNX www.openknx.de

        Kommentar


          #5
          Wenn ich mit dem Taster direkt die Szenen 1-4 sende, dann kann ich sie optisch nicht an der Anzeige unterscheiden, weil MDT dafür keine Funktion eingebaut hat. Es gibt nur fest vorgegebene Wertebereiche:

          2020-02-10_17-18.png

          Deswegen sendet und empfängt(!) der Taster nun die Dezimalwerte 0, 80, 160 und 240, so dass ich zumindest drei Wertebereiche (aus, gedimmt, 100%) optisch darstellen kann. Da Szenen nur bis 64 (technisch 63) gehen, muss hier ein Mapping stattfinden. Und da die Szene aber auch durch den Präsenzmelder gesendet werden kann, ist es notwendig, die Szenennummer wieder zurück auf den Dezimalwert zu mappen, damit der Taster weiß, welcher Schritt aktuell ausgewählt ist.

          Aber du hast recht: Ich brauche tatsächlich nur eine Universalrechner-Logik, da jeder Rechner bis zu drei voneinander unabhängige Operationen durchführen kann. Ich konnte also beide Umwandlungen in der selben Logik umsetzen.

          2020-02-10_17-25.png
          2020-02-10_17-24.png
          Zuletzt geändert von Cybso; 10.02.2020, 17:27.

          Kommentar


            #6
            Hi,

            jetzt hab ich es verstanden, der Taster soll/kann nicht die Werte 0-3 sondern 0, 80, 160 und 240 senden. Dann brauchst Du natürlich eine bijektive Abbildung.

            Halt! Ich hab die Lösung für Dich gefunden...
            Mach erstmal die Einstellungen fürs Durchschalten mit DPT5.005 und direkt den Szenenwerten (den technischen, also immer -1):
            GT2-Szenen-durchschalten-1.PNG

            Und dann verbindest Du jeden Umschaltwert mit einem Symbol:
            GT2-Szenen-durchschalten-2.PNG

            So bekommst Du 4 Symbole und keinen Konverter.

            Gruß, Waldemar

            P.S.: Wäre an Feedback interessiert, ob das funktioniert hat...
            OpenKNX www.openknx.de

            Kommentar


              #7
              Huch, wieso habe ich die Einstellung denn vorher nicht gesehen?!

              Kommentar


                #8
                Leider tritt das Problem auf, dass ich in #1 schon befürchtet habe: es gibt für den Datentyp Szene kein Status-KO, so dass die Anzeige auf dem Display nicht mitbekommt, wenn jemand anderes die Szene geändert hat. Also doch der Workaround über den Dezimalwert.

                Kommentar


                  #9
                  Deswegen steht in meinem Screenshot auch der DPT 5.005 und die Werte sind 0-3

                  Gruß, Waldemar
                  OpenKNX www.openknx.de

                  Kommentar


                    #10
                    Ah, über die Sondersymbole! Ja, das funktioniert, vielen Dank! Damit wird die Logikfunktion komplett unnötig.

                    Kommentar


                      #11
                      Genau, geht dann ganz ohne Logik. Ich kannte die Funktion auch nicht, ist aber gut zu wissen, dass es die gibt.

                      Noch viel Spaß damit,
                      Gruß, Waldemar
                      OpenKNX www.openknx.de

                      Kommentar

                      Lädt...
                      X