Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin ComfoAir (KWL Wohnraumlüftung Zehnder, Paul, Wernig)

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

    Hallo Markus,

    das Problem ist vermutlich, dass der port versehentlich in eine Gleitkommazahl umgewandelt wird.
    Versuch mal in der Datei plugins/comfoair/plugin.yaml den Typ vom Port von "num" in "int" zu ändern, also:

    plugin.yaml:

    Code:
    ....
    
    parameters:
        ....
        port:
            type: int
    Gruß
    Franz

    Kommentar


      Hallo Franz.

      Volltreffer!!! Das war's.
      Vielen Dank für die Unterstützung.

      Gruß,
      Markus

      Kommentar


        Guten Abend zusammen,

        ich versuche gerade das Plugin etwas zu erweitern um ein paar zusätzliche Informationen aus meiner Comfoair herauszuholen. Konkret stehe ich vor folgendem Problem: Fehlermeldungen, Ich verstehe nicht wie ich die Fehlermeldungen in Items übertragen kann.
        Die commands.py habe ich um folgenden Teil erweitert
        Code:
                'ReadErrorGroupAlow':           { 'Command': 0x00D900, 'CommandBytes': 3, 'Type': 'Read', 'ResponsePosition': 1, 'ValueBytes': 1 },
                'ReadErrorGroupAhigh':          { 'Command': 0x00D900, 'CommandBytes': 3, 'Type': 'Read', 'ResponsePosition': 14, 'ValueBytes': 1 },
                'ReadErrorGroupEA':             { 'Command': 0x00D900, 'CommandBytes': 3, 'Type': 'Read', 'ResponsePosition': 10, 'ValueBytes': 1 },
                'ReadErrorGroupFilter':         { 'Command': 0x00D900, 'CommandBytes': 3, 'Type': 'Read', 'ResponsePosition': 9, 'ValueBytes': 1 },
                'ReadErrorGroupElast':          { 'Command': 0x00D900, 'CommandBytes': 3, 'Type': 'Read', 'ResponsePosition': 4, 'ValueBytes': 1 },
                'ReadErrorGroupE':              { 'Command': 0x00D900, 'CommandBytes': 3, 'Type': 'Read', 'ResponsePosition': 2, 'ValueBytes': 1 }
        Laut Schnittstellenbeschreibung soll die Antwort folgendermassen aussehen:

        Kommando 0x00 0xD9

        Code:
        [B]Antwort: [/B]0x00 0xDA
        [B]Daten: [/B]Byte[1]                 Aktueller Fehler A:
                                                 0x01 = A1
                                                    :
                                                 0x80 = A8
                    Byte[2]                  Aktueller Fehler E:
                                                 0x01 = E1
        meine items.yaml sieht folgendermassen aus:
        Code:
        ventilation:
            rs232:
                error:
                    Alow:
                        name: Fehlermeldungen A1-A8
                        type: bool
                        comfoair_read: ReadErrorGroupAlow
                        comfoair_read_cycle: 60          #Sekunden
                        comfoair_init: 'true'
                        sqlite: 'yes'
                    Ahigh:
                        name: Fehlermeldungen A9-A15 + A0
                        type: bool
                        comfoair_read: ReadErrorGroupAhigh
                        comfoair_read_cycle: 60          #Sekunden
                        comfoair_init: 'true'
                        sqlite: 'yes'
        leider werden die items nicht befüllt.
        Leider kann ich das Problem nicht eingrenzen, da ich nicht weiss wo ich die direkte Antwort der KWL abfragen könnte.
        Kurz noch zu meinem Setup: Bei mir werkelt eine ComfoAir 550 vor sich hin, die ich über eine MOXA in mein LAN gebracht habe. Das Protokoll der 350 scheint aber zu passen, da die normalen Einstellungen funktionieren.

        vielen Dank!

        Alfons

        Kommentar


          Hallo zusammen,
          ich habe meine ComfoAir350 jetzt via RS232 am Raspberry dran und habe das Plugin zum laufen bekommen. Hat schonmal jemand versucht die Drehzahlen der Ventilatoren zu setzen? Ich hatte gedacht ich könnte die commands.py aufbohren, komme aber dort nicht weiter.


          Der Sendestring müsste lauten: 00CF090F + HEX(Abluftdrehzahl) + 460F + HEX(Zuluftdrehzahl) + 0F46460F

          Jetzt sehe ich nur keine Chance das ich in der commands.py zusammengesetzte Strings übergeben kann oder ist etwas derartiges dort drin vorgesehen?

          Hintergrund ist, das ich meine Steuerung bisher über ein Wiregate mit einem PL-Script vorgenommen habe und meine Logiken wie z.B. Stoßlüftung nur den Abluftventilator reguliert da ich meine WC's an die Abluft angeschlossen habe. Dann regele ich noch die Lüftung über die innere Luftfeuchte gleitend über die Drehzahl der Ventilatoren. : - )

          Danke für die Hilfe!

          Grüße
          Carsten
          Zuletzt geändert von Netsrac80; 05.05.2021, 20:30.

          Kommentar


            Moin zusammen,

            da es zur Einbindung meiner ComfoAir 350 (ohne Q) auf dem Markt nichts (mehr) gibt, überlege ich mir es selbst mit diesen Anleitungen zu versuchen.
            Da ich aber totaler Anfänger bin, habe ich da nun noch ein paar Verständnisfragen, wo ich hoffe Euer Wissen zu nutzen....

            Meine Config:

            ComfoAir 350
            Gira X1
            USB GIRA interface

            Fragen zum Setup:
            Ich würde mir ein Seriel RS232 interface zulegen (Moxa 5110 oder DE311 sollte da egal sein) - oder?
            Soweit ich aber verstanden habe kann der Moxa aber nicht an den Gira X1 direkt angeschlossen werden, da kein IP interface - korrect?
            Daher brauche ich noch ein IP interface - richtig?
            Oder lieber dann direkt RS zu USB interface nehmen - dann läuft diese Anleitung und Codes aber nicht mehr?

            VG



            Kommentar


              Alternativ habe ich das hier gefunden - über die ComfoAir Beschreibung mit allen Befehlen sollte das doch auch sehr gut und einfach gehen - oder?
              https://www.voltus.de/hausautomation...e-reg-6te.html

              Kommentar


                Da bin ich mir nicht so ganz sicher. Das Comfoair-Protokoll setzt voraus, dass man beim Senden von Befehlen einen Kontrollwert berechnet* und mitsendet. Ich weiß nicht, ob so ein Gateway das kann.

                Gleiches gilt für die Lösung mit dem x1. Out of the box wird das nichts.

                *
                Nicht ganz trivial:

                Die Checksumme ergibt sich durch Addition aller Bytes (exklusive Start und Ende) plus 173. Tauch
                der Wert 0x07 doppelt im Datenbereich auf, so wird nur eine 0x07 für die Checksummenberechnung
                benutzt.

                Wenn die Checksumme größer als ein Byte ist, wird das niederwertigste Byte verwendet.

                Beispiel:
                Kommando: 0x00 0x69
                Anzahl: 0x00

                Summe = 0 + 105 + 0 + 173 = 278
                278 = 0x0116

                Checksumme = 0x16
                Zuletzt geändert von MatthiasS; 20.10.2021, 13:40.
                Gruß Matthias
                EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
                Meine Homepage - PN nur für PERSÖNLICHES!

                Kommentar


                  Hi physman,

                  Matthias hat recht. Das wird so einfach nicht funktionieren. Falls du wirklich nur eine Übersetzung von KNX auf RS232 benötigst würde ich dir empfehlen das mit einem RasPi zu lösen.
                  KNXD als verbindung Raspi zu KNX. RS232 Pins zur Kommunikation mit der Comfo. smarthomeng als "Übersetzer".



                  Kommentar


                    Moin,

                    habe nun am letzten Wochenende den Zennio SKX Open mit Advanced Applikation angeschlossen.
                    Mit der Doku aus
                    http://see-solutions.de/sonstiges/Pr...g_ComfoAir.pdf
                    und dem
                    https://www.haustechnikdialog.de/For...eber-PC?page=3
                    habe ich es geschafft auf einem Taster die Lüftungsstufen zu ändern in dem ich:
                    1) die Kopf und Fusszeilen als feste Frames sende "07 F0" bzw "07 0F"
                    2) den Ack mit "07 F3" bei Ack Frame und Ack (Antwort) setzte
                    3) die CheckSum immer fest mit sende
                    4) die Ventialationsstufen als einen Frame "00 99 01 03 4A" als 1-Bit Object für Stufe 2 sende

                    Soweit schon mal das Wichtigste...

                    ABER: was gar nicht klappen will ist es z.B. die Temperaturen zu senden z.B. "00 0F 00 BC"
                    Ich glaube da habe ich noch einen Datentyp Fehler. Oder ich bekomme das mit den GAs nicht hin....

                    Hat da jemand eine Idee?

                    Die Doku zum Zennio: https://www.zennio-deutschland.de/do...skx_advance_en

                    Kommentar


                      Wenn du variable Werte senden willst, musst jeweils die die Checksumme berechnen. Das kann der Zennio nicht. Du musst dir also eine Tabelle mit allen möglichen Werten (und dem passenden Cheksummen-Byte) anlegen und das als festen String senden.
                      Gruß Matthias
                      EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
                      Meine Homepage - PN nur für PERSÖNLICHES!

                      Kommentar


                        Ok, das würde für die Komforttemp setzten ja noch überschaubar sein bei ein paar diskreten werten.

                        Aber was zzt nicht klappt ist etwas zu empfangen - zum Beispiel die 4 Temperaturen.

                        Dazu muss ich "00 0F 00 BC" senden [feste Checksum] - Datentyp sollte 9.001 sein.

                        Oder doch gar mit "00 D1 00 7E" senden - datentyp 9.001 - hiermit bekommt man aber wesentlich mehr Daten um die Ohren gehauen.

                        BTW: die ganzen Start / End / Ack Befehle sendet man beim Zennio mit als seperate Frames. Nur die Checksum kann er auch berechnen , nur eben nicht passend wegen der "+173" und nur "die letzten beiden Zeichen"....


                        Kommentar

                        Lädt...
                        X