Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. [Projekt] Comfoair CA350 - Adapter

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    9
    1
    98

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

[Projekt] Comfoair CA350 - Adapter

Scheduled Pinned Locked Moved ioBroker Allgemein
153 Posts 25 Posters 23.6k Views 24 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Snowboarder2611S Offline
    Snowboarder2611S Offline
    Snowboarder2611
    wrote on last edited by
    #119

    Danke für die schnelle Antwort.
    Ich habe die Version 1.1.3 schon installiert.
    Der Fehler ist in dieser Version vorhanden.

    F 1 Reply Last reply
    0
    • Snowboarder2611S Snowboarder2611

      Danke für die schnelle Antwort.
      Ich habe die Version 1.1.3 schon installiert.
      Der Fehler ist in dieser Version vorhanden.

      F Offline
      F Offline
      forelleblau
      wrote on last edited by
      #120

      @snowboarder2611 Ja, das hab ich fast befürchtet. Andere und ich auch haben diesen Effekt auch schon beobachtet. In der Version 1.1.3 habe ich einen möglichen Lösungsansatz versucht. Das Problem steckt in der Umrechnung der Werte aus mehreren Hex-Bytes (von der comfoair) in eine ganze Zahl, die manchmal funktioniert wie sie soll und manchmal nicht. Ich werde mir wohl mal ein Log-basteln müssen, dass mir die Input- und Outputwerte rausschreibt und ich dann so vergleichen kann, wann es funktioniert und wann nicht. Du siehst, die Lösung wird wohl einen Moment dauern.
      Tauchen die falschen Werte bei allen Stundenzahlen auf (Filter, Stufen etc.) oder nur bei bestimmten?
      Wenn ab und zu die richtige kommt, könnte es sein, dass das 'besondere' Werte sind? Runde 10er? immer der erste nach einem Neustart? ??
      Falls jemand einen Ansatz sieht, der weiterhelfen könnte, nehme ich den gerne entgegen.

      1 Reply Last reply
      0
      • Snowboarder2611S Offline
        Snowboarder2611S Offline
        Snowboarder2611
        wrote on last edited by Snowboarder2611
        #121

        Hi,
        Ich habe mal einen Ausschnitt meiner Historie als Bilder. Die Namen der Datenobjekte stehen jeweils oben. Das sind die, bei denen der Fehler bei mir auftritt. Einige Werte haben sich nicht erhöht, da die Lüftung nicht in dieser Betriebsart gelaufen ist.
        AA53230B-2D36-4A5B-86C6-68DAB5880A90.jpeg 1C7E3C72-3E0E-4B99-B25D-E1F49D58CDC3.jpeg D7D031D2-E70A-450F-ACFF-E27550540D49.jpeg F68BD1A4-893C-4C64-9522-A2E5AF457DE5.jpeg CF99BF80-042B-456B-9C01-135FFF4C43A6.jpeg

        1 Reply Last reply
        0
        • F Offline
          F Offline
          forelleblau
          wrote on last edited by
          #122

          Danke vielmal! Es wird also der selbe Wert einmal so und einmal so dargestellt. Eine Erhöhung um 1 ist auf beiden Levels eine Erhöhung um 1.
          Aber ansonsten ist es zufällig, wann welcher Wert kommt.

          C 1 Reply Last reply
          0
          • F forelleblau

            Danke vielmal! Es wird also der selbe Wert einmal so und einmal so dargestellt. Eine Erhöhung um 1 ist auf beiden Levels eine Erhöhung um 1.
            Aber ansonsten ist es zufällig, wann welcher Wert kommt.

            C Offline
            C Offline
            claus
            wrote on last edited by
            #123

            Bei den PIN Belegungen lese ich immer 2, 3 und 5 was ja dem seriellen Standard entspricht. Die 12V Versorgung gibt es vermutlich nur auf dem RJ45? Wenn ich direkt auf den 9-poligen seriellen Anschluss gehe, dann liegen da auf Pin 1 auch 12V an?

            F 1 Reply Last reply
            0
            • C claus

              Bei den PIN Belegungen lese ich immer 2, 3 und 5 was ja dem seriellen Standard entspricht. Die 12V Versorgung gibt es vermutlich nur auf dem RJ45? Wenn ich direkt auf den 9-poligen seriellen Anschluss gehe, dann liegen da auf Pin 1 auch 12V an?

              F Offline
              F Offline
              forelleblau
              wrote on last edited by
              #124

              @claus hallo claus. Kann ich dir so nicht sagen, das müsstest du messen. Ich greife 12v direkt auf der Klemmleiste der comfair ab. Gruss Forelleblau

              C 1 Reply Last reply
              0
              • F forelleblau

                @claus hallo claus. Kann ich dir so nicht sagen, das müsstest du messen. Ich greife 12v direkt auf der Klemmleiste der comfair ab. Gruss Forelleblau

                C Offline
                C Offline
                claus
                wrote on last edited by
                #125

                @forelleblau
                Funktioniert super, auf Anhieb. Das Einzige, was ich nicht finden konnte, ist Bypassbetrieb ja oder nein.

                Außerdem zeigt der Enthalpie Sensor -20°C an, was sicher nicht stimmt. Die restlichen Werte sehen recht gut und auch korrekt aus.

                1 Reply Last reply
                0
                • F Offline
                  F Offline
                  forelleblau
                  wrote on last edited by
                  #126

                  @claus Hallo claus. Den Bypassbetrieb gibt es nicht, der Bypass kann nicht direkt angesteuert werden - hab jedenfalls noch nicht rausgefunden wie. Den müsstest du über ein extremes Setzen der Komforttemperatur übersteuern.
                  Hast du denn überhaupt einen Enthalpie-Tauscher? Wenn die anderen Werte 0 sind, dann wohl keinen ;-)
                  Danke für die Rückmeldung.
                  Grüsse
                  Forelleblau

                  C 2 Replies Last reply
                  0
                  • F forelleblau

                    @claus Hallo claus. Den Bypassbetrieb gibt es nicht, der Bypass kann nicht direkt angesteuert werden - hab jedenfalls noch nicht rausgefunden wie. Den müsstest du über ein extremes Setzen der Komforttemperatur übersteuern.
                    Hast du denn überhaupt einen Enthalpie-Tauscher? Wenn die anderen Werte 0 sind, dann wohl keinen ;-)
                    Danke für die Rückmeldung.
                    Grüsse
                    Forelleblau

                    C Offline
                    C Offline
                    claus
                    wrote on last edited by claus
                    #127

                    @forelleblau
                    Ich hätte den Bypass nur gerne ausgelesen, im Log finde ich folgende Meldung ...

                    State "comfoair.0.status.bypass" has no existing object, this might lead to an error in future versions
                    

                    Einen Enthalpietauscher habe ich zumindest gekauft :)
                    Warum da nun keine Werte rauskommen, weiß ich auch nicht genau.

                    Ergänzung, der bypass ist jetzt da und auch viele andere Objekte, das dauerte wohl nur etwas. Ich warte jetzt mal etwas ab und schau was so weiter passiert.

                    1 Reply Last reply
                    0
                    • F forelleblau

                      @claus Hallo claus. Den Bypassbetrieb gibt es nicht, der Bypass kann nicht direkt angesteuert werden - hab jedenfalls noch nicht rausgefunden wie. Den müsstest du über ein extremes Setzen der Komforttemperatur übersteuern.
                      Hast du denn überhaupt einen Enthalpie-Tauscher? Wenn die anderen Werte 0 sind, dann wohl keinen ;-)
                      Danke für die Rückmeldung.
                      Grüsse
                      Forelleblau

                      C Offline
                      C Offline
                      claus
                      wrote on last edited by
                      #128

                      Ich habe es mir jetzt nochmal im PC Tool angesehen. Es gibt ja einen Parameter "P97 - Enthalpietauscher aktiv?" , der kann drei Werte enthalten.

                      Anwesend
                      Abwesend
                      Ohne Fühler

                      Bei mir war "Ohne Fühler" eingestellt. Ob man die nachrüsten kann, muss ich mal bei Zehnder anfragen. Sonst scheint nun alles zu funktionieren, super Adapter, danke dafür!

                      F 1 Reply Last reply
                      0
                      • C claus

                        Ich habe es mir jetzt nochmal im PC Tool angesehen. Es gibt ja einen Parameter "P97 - Enthalpietauscher aktiv?" , der kann drei Werte enthalten.

                        Anwesend
                        Abwesend
                        Ohne Fühler

                        Bei mir war "Ohne Fühler" eingestellt. Ob man die nachrüsten kann, muss ich mal bei Zehnder anfragen. Sonst scheint nun alles zu funktionieren, super Adapter, danke dafür!

                        F Offline
                        F Offline
                        forelleblau
                        wrote on last edited by
                        #129

                        @claus Danke für die Info, freut mich, wenn der Adapter dient.

                        C 1 Reply Last reply
                        0
                        • F forelleblau

                          @claus Danke für die Info, freut mich, wenn der Adapter dient.

                          C Offline
                          C Offline
                          claus
                          wrote on last edited by
                          #130

                          @forelleblau

                          Eine Sache habe ich beim Testen gefunden. Wenn man Stosslüftung aktiviert, dann läuft diese auch korrekt an, beendet sich auch nach der eingestellten Zeit wieder. Allerdings setzt sich nach Ablauf der Zeit "comfoair.0.control.boost" nicht mehr auf false zurück.

                          F 1 Reply Last reply
                          0
                          • C claus

                            @forelleblau

                            Eine Sache habe ich beim Testen gefunden. Wenn man Stosslüftung aktiviert, dann läuft diese auch korrekt an, beendet sich auch nach der eingestellten Zeit wieder. Allerdings setzt sich nach Ablauf der Zeit "comfoair.0.control.boost" nicht mehr auf false zurück.

                            F Offline
                            F Offline
                            forelleblau
                            wrote on last edited by
                            #131

                            @claus Danke für den umfangreichen Test. Ich schau das der boost-Trigger mit der nächsten Version zurückgestellt wird.

                            Grüsse forelleblau

                            C 2 Replies Last reply
                            0
                            • F forelleblau

                              @claus Danke für den umfangreichen Test. Ich schau das der boost-Trigger mit der nächsten Version zurückgestellt wird.

                              Grüsse forelleblau

                              C Offline
                              C Offline
                              claus
                              wrote on last edited by
                              #132

                              @forelleblau

                              Ich hatte noch folgende Meldungen im Log.

                              State value to set for "comfoair.0.status.filterw" has to be type "number" but received type "string"
                              

                              Es scheint so, als fehlte da ein parseInt.

                              --- main.js.orig        2022-08-09 11:49:50.658543470 +0200
                              +++ main.js     2022-09-18 14:05:38.868928589 +0200
                              @@ -912,7 +916,8 @@
                                     case 202:
                                       //polling
                                       verzoegerungen = buffarr;
                              -        adapter.setState("status.filterw", buffarr[11], true);
                              +        adapter.setState("status.filterw", parseInt(buffarr[11]), true);
                                       break;
                              
                              1 Reply Last reply
                              0
                              • F forelleblau

                                @claus Danke für den umfangreichen Test. Ich schau das der boost-Trigger mit der nächsten Version zurückgestellt wird.

                                Grüsse forelleblau

                                C Offline
                                C Offline
                                claus
                                wrote on last edited by
                                #133

                                @forelleblau

                                Erster Versuch, sei umsichtig, das sind meine ersten Codeänderungen bei ioBroker :)
                                Manchmal führt er bei Aktivierung von Boost aber das Kommando

                                callcomfoair(setfanstate[3]);
                                

                                nicht aus. Ich vermute, es gibt da Kollisionen im Parallelmodus.

                                --- main.js.orig        2022-08-09 11:49:50.658543470 +0200
                                +++ main.js     2022-09-18 15:41:51.458462775 +0200
                                @@ -92,7 +92,7 @@
                                       clearInterval(polling);
                                       clearTimeout(polling);
                                       clearTimeout(pcmaster);
                                -      clearTimeout(boostrun);
                                +      clearBoostTimeout();
                                       client.destroy();
                                       adapter.log.info('[END] Stopping comfoair adapter...');
                                       adapter.setState('info.connection', false, true);
                                @@ -440,7 +440,7 @@
                                       case "control.stufe":
                                         adapter.log.debug("Setzte Stufe: " + state);
                                         callcomfoair(setfanstate[state]);
                                -        clearTimeout(boostrun);
                                +        clearBoostTimeout()
                                         break;
                                
                                       case "control.comforttemp":
                                @@ -510,8 +510,12 @@
                                         break;
                                
                                       case "control.boost":
                                -        adapter.log.debug("Starte boost");
                                -        boost();
                                +        if (state == true) {
                                +          adapter.log.debug("Starte boost");
                                +          boost();
                                +        } else {
                                +          clearBoostTimeout();
                                +        }
                                         break;
                                
                                @@ -1593,7 +1597,7 @@
                                       adapter.getState('control.boosttime', function(err, state) {
                                         if (state) {
                                           adapter.log.debug("Starte Boostmodus für " + state.val + " Minuten, kehre danach auf Stufe " + boostlevelold + " zurück");
                                -          callcomfoair(setfanstate[3]);;
                                +          callcomfoair(setfanstate[3]);
                                           boostrun = setTimeout(function() {
                                             adapter.log.debug("Boost Ende");
                                             adapter.setState('control.stufe', boostlevelold, false);
                                @@ -1607,6 +1611,16 @@
                                
                                 } //end function boost
                                
                                +function clearBoostTimeout() {
                                +  adapter.log.debug("boostrun Timeout zurückgesetzt")
                                +  clearTimeout(boostrun);
                                +  adapter.getState('control.boost', function (err, state) {
                                +    if (state.val == true) {
                                +      adapter.setState('control.boost', false, false);
                                +    }
                                +  });
                                +} //end function clearBoostTimeout
                                +
                                 function restartAdapter() {
                                   adapter.getForeignObject('system.adapter.' + adapter.namespace, (err, obj) => {
                                     if (obj) adapter.setForeignObject('system.adapter.' + adapter.namespace, obj);
                                
                                F 1 Reply Last reply
                                0
                                • C claus

                                  @forelleblau

                                  Erster Versuch, sei umsichtig, das sind meine ersten Codeänderungen bei ioBroker :)
                                  Manchmal führt er bei Aktivierung von Boost aber das Kommando

                                  callcomfoair(setfanstate[3]);
                                  

                                  nicht aus. Ich vermute, es gibt da Kollisionen im Parallelmodus.

                                  --- main.js.orig        2022-08-09 11:49:50.658543470 +0200
                                  +++ main.js     2022-09-18 15:41:51.458462775 +0200
                                  @@ -92,7 +92,7 @@
                                         clearInterval(polling);
                                         clearTimeout(polling);
                                         clearTimeout(pcmaster);
                                  -      clearTimeout(boostrun);
                                  +      clearBoostTimeout();
                                         client.destroy();
                                         adapter.log.info('[END] Stopping comfoair adapter...');
                                         adapter.setState('info.connection', false, true);
                                  @@ -440,7 +440,7 @@
                                         case "control.stufe":
                                           adapter.log.debug("Setzte Stufe: " + state);
                                           callcomfoair(setfanstate[state]);
                                  -        clearTimeout(boostrun);
                                  +        clearBoostTimeout()
                                           break;
                                  
                                         case "control.comforttemp":
                                  @@ -510,8 +510,12 @@
                                           break;
                                  
                                         case "control.boost":
                                  -        adapter.log.debug("Starte boost");
                                  -        boost();
                                  +        if (state == true) {
                                  +          adapter.log.debug("Starte boost");
                                  +          boost();
                                  +        } else {
                                  +          clearBoostTimeout();
                                  +        }
                                           break;
                                  
                                  @@ -1593,7 +1597,7 @@
                                         adapter.getState('control.boosttime', function(err, state) {
                                           if (state) {
                                             adapter.log.debug("Starte Boostmodus für " + state.val + " Minuten, kehre danach auf Stufe " + boostlevelold + " zurück");
                                  -          callcomfoair(setfanstate[3]);;
                                  +          callcomfoair(setfanstate[3]);
                                             boostrun = setTimeout(function() {
                                               adapter.log.debug("Boost Ende");
                                               adapter.setState('control.stufe', boostlevelold, false);
                                  @@ -1607,6 +1611,16 @@
                                  
                                   } //end function boost
                                  
                                  +function clearBoostTimeout() {
                                  +  adapter.log.debug("boostrun Timeout zurückgesetzt")
                                  +  clearTimeout(boostrun);
                                  +  adapter.getState('control.boost', function (err, state) {
                                  +    if (state.val == true) {
                                  +      adapter.setState('control.boost', false, false);
                                  +    }
                                  +  });
                                  +} //end function clearBoostTimeout
                                  +
                                   function restartAdapter() {
                                     adapter.getForeignObject('system.adapter.' + adapter.namespace, (err, obj) => {
                                       if (obj) adapter.setForeignObject('system.adapter.' + adapter.namespace, obj);
                                  
                                  F Offline
                                  F Offline
                                  forelleblau
                                  wrote on last edited by
                                  #134

                                  @claus Danke für den Vorschlag, claus.
                                  Die Risiken des Parallelmodus hab ich beschrieben....das überlasse ich dir.

                                  Deinen Lösungsvorschlag könnte das ganze stabiler machen. Könntest du mir den als PR auf Github senden?

                                  Danke u herzliche Grüsse

                                  Forelleblau

                                  C 1 Reply Last reply
                                  0
                                  • F forelleblau

                                    @claus Danke für den Vorschlag, claus.
                                    Die Risiken des Parallelmodus hab ich beschrieben....das überlasse ich dir.

                                    Deinen Lösungsvorschlag könnte das ganze stabiler machen. Könntest du mir den als PR auf Github senden?

                                    Danke u herzliche Grüsse

                                    Forelleblau

                                    C Offline
                                    C Offline
                                    claus
                                    wrote on last edited by
                                    #135

                                    @forelleblau

                                    Im Prinzip fehlt mir noch eine Funktion, ich weiß aber nicht genau, wie man die exakt implementiert. Man könnte z.B. den Boost früher manuell abbrechen, indem man den wieder abschaltet. Dann reicht es aber nicht aus, einfach den Timer zu löschen, sondern man müsste diesen forciert ausführen, damit die Stufe der Lüftung wieder auf den Ursprungswert zurückgesetzt wird. Mir ist allerdings unklar, wie man beispielsweise bei einem setTimeout den Timer auf 0 setzen kann, damit die Funktion sofort ausgeführt wird.

                                    F 1 Reply Last reply
                                    0
                                    • C claus

                                      @forelleblau

                                      Im Prinzip fehlt mir noch eine Funktion, ich weiß aber nicht genau, wie man die exakt implementiert. Man könnte z.B. den Boost früher manuell abbrechen, indem man den wieder abschaltet. Dann reicht es aber nicht aus, einfach den Timer zu löschen, sondern man müsste diesen forciert ausführen, damit die Stufe der Lüftung wieder auf den Ursprungswert zurückgesetzt wird. Mir ist allerdings unklar, wie man beispielsweise bei einem setTimeout den Timer auf 0 setzen kann, damit die Funktion sofort ausgeführt wird.

                                      F Offline
                                      F Offline
                                      forelleblau
                                      wrote on last edited by
                                      #136

                                      @claus Danke für den PR. Kurze Frage vor dem Merge: hast du die Anpassungen auf deinem System bereits so umgesetzt und getestet? Grüsse forelleblau

                                      C 1 Reply Last reply
                                      0
                                      • F forelleblau

                                        @claus Danke für den PR. Kurze Frage vor dem Merge: hast du die Anpassungen auf deinem System bereits so umgesetzt und getestet? Grüsse forelleblau

                                        C Offline
                                        C Offline
                                        claus
                                        wrote on last edited by
                                        #137

                                        @forelleblau

                                        Ja, das ist umgesetzt und im Einsatz. Ich habe einen Fehler beim Pull Request gesehen, habe aber keine weiteren Details dazu finden können. Das Logfile ist wohl nicht Public.

                                        1 Reply Last reply
                                        0
                                        • O Offline
                                          O Offline
                                          odolino100
                                          wrote on last edited by odolino100
                                          #138

                                          Hallo,
                                          ich habe eine ComfoD 350 mit einem 3 Stufenschalter und der Steuerung direkt am Gerät.

                                          So wie ich es gesehen habe, hat meine Platine auch eine RS232 Schnittstelle in Form eine RJ45 Buchse.

                                          Würde jetzt einen
                                          https://www.amazon.de/U-S-R-USR-TCP232-302-Kleines-serielles-Ethernet/dp/B07RNCVHHK
                                          und dieses Kabel kaufen
                                          https://www.amazon.de/dp/B01M9COPMA/ref=emc_b_5_mob_t
                                          Vom Kabel würde ich den RJ45 Stecker abmachen und neu belegen.

                                          Funktioniert das dann. Was passiert mit dem 3 Stufenschalter? Der ist ganz normal an L1 L2 und L3 und N angeschlossen.

                                          Danke schon mal

                                          F G 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          359

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe