Ankündigung

Einklappen
Keine Ankündigung bisher.

8 Byte Objekte

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

    8 Byte Objekte

    Hallo zusammen,
    hoffentlich ist meine Frage nicht zu blöd und ich habe kein Verständnisproblem.
    Nutze einen Berker Raumtemperaturregler den ich gerne via SmarthomeNG in Smartvisu einbinden würde. Leider bekomme ich für den Sollwert immer eine "Wrong payload '0708070806a402bc' for ga '24/5/39' with dpt XYZ" - Fehlermeldung. Habe schon alle knx-dpt typen durchprobiert. Laut Applikationsbeschreibung stehen hierzu 8 byte Objekte zur Verfügung:

    5.3.3 Senden der Solltemperatur
    Die durch den aktiven Betriebsmodi vorgegebenen oder nachträglich verstellten Sollwerte für
    das Heizen und Kühlen können über den Bus übertragen werden. Dazu stehen die 8 Byte
    Objekte
    79 „Status Sollwerte Heizung“ und 84 „Status Sollwerte Kühlung“ zur Verfügung“.
    Diese enthalten die Sollwerte für alle vier Betriebsmodi Komfort, Standby, Nacht und Frost-/
    Hitzeschutz. Jeweils für das Heizen und Kühlen.
    8 Byte Datentypen gibt's aber anscheinend nicht: http://smarthomeng.de/user/plugins/k...hlight=knx_dpt

    Hat jemand eine Idee was ich tun kann?
    Danke für die Hilfe und viele Grüße,
    Thomas

    #2
    Der ist halt noch nicht implementiert. Die Frage ist: Was sollte man mit den Daten oben machen? In dem Monsterobjekt sind ja mehrere Sachen komprimiert drin...

    Kommentar


      #3
      bmx er könnte den übertragenen 8byte block bei wertänderung parsen und auf mehrere items verteilen? oder denkst du, dass man an die klartextdaten nicht rankommt? wobei es vermutlich auch GADs für die einzelwert gibt?!

      Kommentar


        #4
        Hi zusammen und danke für eure Antworten.
        Tatsächlich besteht das 8byte Objekt aus 4x2 byte mit den jeweiligen Einzelwerten, theoretisch. Praktisch ist das eine Hager Easy Installation und die 2 byte Objekte scheinen nicht adressiert zu sein. Zumindest finde ich nichts. GAD's suche ich mir immer über das Auslösen der Funktion in Domovea und schau dann was auf dem Bus los ist. Hier wird dann leider nur das 8byte Objekt verarbeitet. Umständlich, ich weiß. Bitte keine Diskussion zu Hager Easy vs. ETS. ;-)
        Da ich ohnehin an meinen Python Skills arbeiten muss, werde ich mal versuchen das 8byte Objekt zu zerlegen, wie psilo vorgeschlagen hat. Es sei denn es hat noch jemand eine andere fixe Idee...(?)

        Danke und Grüße,
        Thomas

        Kommentar


          #5
          Also ist auch der Rat mal in der ETS zu schauen, wie das eingestellt ist ziemlich zwecklos für Dich. Es gilt also zunächst das knx Plugin um dieses 8 Octets Kommunikationsabjekt zu erweitern und geeignet im Item zu speichern. Als Bytearray vermutlich.
          Und dann einem weiteren Item das Eingangsitem als triggerquelle setzen.

          Kommentar


            #6
            Hallo zusammen,

            ist hier schon jemand weiter gekommen, ich arbeite mit dem HAGER TXM646R. Ich will hier den Sollwert auslesen, leider kann ich eben die genannten 4x2byte nicht separat auslesen.

            Kommentar


              #7
              Gib mal ein paar Testdaten aus der ETS rüber mit den tatsächlichen angezeigten Werten. Wenn ich das einbaue, will ich auch wissen, ob es geht...

              Kommentar


                #8
                habe bei mir nachgesehen, liegt an der Programmierung der geräte (ETS) dort unter dem Opjekt zu tmp rtr sind je nach amplikationsprogramm ca 11 items , dort Eigenschaften und das passende dpt wählen. Speichern Programm aufspielen und fertig

                mfg

                Kommentar


                  #9
                  Zu bmx:
                  Ich hab hier z.B. 07 D0 07 08 05 DC 02 BC
                  Das heißt:
                  07 D0 Solltemperatur Komfort->11111010000->20,00 Grad
                  07 08 Solltemperatur Standby->11100001000->18,00 Grad
                  05 DC Solltemperatur Nachtabsenkung->10111011100 ->15,00 Grad
                  02 BC Frostschutz -> 1010111100 ->7,00 Grad

                  pino konnte ich leider nicht folgen, kannst du das bitte nochmal erklären?

                  Kommentar


                    #10
                    Ich schau mir das morgen Mal an.

                    Kommentar


                      #11
                      So, ist im develop branch implementiert. Der Datenpunkt wird durch eine Liste mit exakt 4 Werten implementiert. Ein Zugriff auf einen einzelnen Wert geht dann über sh.mein.item()[index] wobei index 0...3 ist. Am Besten machst Du Dir Hilfsitems die Du mit eval aus dem knx-item füllst und dem eval trigger auf das knx-item auslöst.

                      Wir hatten hier gerade einen ähnlichen Thread.

                      Deine lokale dpts.py solltest Du umbenennen und die Datei dpts.py in develop müßtest Du reinkopieren, wenn Du auf Master unterwegs bist. Ich habe es aber nicht ausprobiert master und develop zu mischen. Solltest Du Dir nicht sicher sein, warte einfach auf die 1.6.

                      Kommentar


                        #12
                        Hallo, also ganz einfach, wenn du in der ETS dein Objekt aufrufst sind auf der Rechten Seite die ganzen Optionen die man den einzelnen KNX adressen- zuordnen kann. bei dir ist es ja ein Berker raumtmp Regler m ich habe zum b. busch jager 6134 als bedienteil und das ist ja unterteilt in einzelne -funktionen die die FW zur Verfügung stellt. wie heizen oder Sollwert, ist-wert und so weiter, dort je auf Eigenschaften und du hast eine Auswahl von dpt's z.b. Sollwert 2 Byte dpt 9001 tmp die einfach richtig zuordnen und das Ding geht.

                        Kommentar


                          #13
                          Erst mal vielen Dank für die schnelle Hilfe.

                          Ich habs mal auf direktem Wege versucht, geht aber leider nicht. Den Datenpunkttyp musste ich in der dpts.py umbenennen, da sonst die letzten Nullen abgeschnitten wurden und SH ihn nicht mehr bzw. als 275.1 erkannt hat.

                          In meiner Anzeige erscheint jetzt nun NaN

                          Code:
                          temperature:
                                      name: Temperatur
                                      type: num
                                      visu_acl : rw
                                      sqlite : yes
                                      knx_dpt : 9
                                      knx_listen : 2/7/21
                                      knx_init : 2/7/21
                                      sv_widget: 
                                      - "{{ device.rtr('item', 'item.name', 'item', 'item.soll()[0]', 'item.mode', 'item.night', 'item.frost', 'item.state', '', 0.2, 'item.sollwertverschiebung') }}"
                                      - "{{ plot.period('item-plot', 'item', 'avg','12h') }}"
                          
                                      soll:
                                          type: list
                                          visu_acl: rw
                                          knx_dpt : 275.001
                                          knx_send : 2/7/26
                                          knx_listen : 2/7/22
                          
                                      sollwertverschiebung:
                                          type : num
                                          visu_acl : rw
                                          knx_dpt : 9
                                          knx_init : 2/7/25
                                          knx_listen : 2/7/25
                                          knx_send : 2/7/23
                          mode:
                                          type: num
                                          visu_acl: rw
                          
                                      night:
                                          type: num
                                          visu_acl: rw
                          
                                      frost:
                                          type: num
                                          visu_acl: rw
                          
                                      state:
                                          type: num
                                          visu_acl: rw
                          Wieso der Umweg über ein Hilfsitem, und wie sähe das in meinem Fall aus?
                          Angehängte Dateien

                          Kommentar


                            #14
                            Du brauchst den in der dpts.py nicht umbenennen, der yaml-reader macht aber ohne '275.100' einen numerischen Wert draus.

                            Sowas kann vielleicht funktionieren: (Ich habe es nicht ausprobiert)
                            Code:
                            soll:
                                type: list
                                visu_acl: rw
                                knx_dpt : '275.001'
                                knx_send : 2/7/26
                                knx_listen : 2/7/22
                                comfort:
                                    visu_acl: yes
                                    eval_trigger: ..
                                    eval: value[0]
                                standby:
                                    visu_acl: yes
                                    eval_trigger: ..
                                    eval: value[1]
                                reduced:
                                    visu_acl: yes
                                    eval_trigger: ..
                                    eval: value[2]
                                frost:
                                    visu_acl: yes
                                    eval_trigger: ..
                                    eval: value[3]
                            Zuletzt geändert von bmx; 10.04.2019, 12:18.

                            Kommentar


                              #15
                              Habs so versucht, bekomme aber leider :
                              Item bath.temperature.soll.comfort: problem evaluating sh.bath.temperature.soll()[0]: list index out of range

                              Habs bisschen abgespeckt und die original dpts.py verwendet:

                              Code:
                              sv_widget:
                                          - "{{ device.rtr('item', 'item.name', 'item', 'item.soll.comfort', 'item.mode', 'item.night', 'item.frost', 'item.state', '', 0.2, 'item.sollwertverschiebung') }}"
                                          - "{{ plot.period('item-plot', 'item', 'avg','12h') }}"
                              
                                          soll:
                                              type: list
                                              visu_acl: rw
                                              knx_dpt : '275.100'
                                              knx_init : 2/7/22
                                              knx_send : 2/7/26
                                              knx_listen : 2/7/22
                                              comfort:
                                                    visu_acl: rw
                                                    eval_trigger: bath.temperature.soll
                                                    eval: sh.bath.temperature.soll()[0]
                              In der ETS sehe ich aber, dass der Sollwert angefordert wurde.
                              Zuletzt geändert von djskydriver; 10.04.2019, 14:21.

                              Kommentar

                              Lädt...
                              X