Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Projekt] Comfoair CA350 - Adapter

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Projekt] Comfoair CA350 - Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      forelleblau @forelleblau last edited by

      @grobalt

      Hallo grobalt. Sorry war beim falschlen Hacken/Kästchen.
      Mit Auswählen der Stufe im dropdown von /control/Stufe und dem Hacken rechts davon sollte es klappen.

      Was dabei geschieht sieht man nur im debug-log (umstellen im Instanzen - Tab). Damit könnte ich dann möglicherweise auch mehr sagen.

      Die Werte ausserhalb des control-channels kommen aber an?

      Herzliche Grüsse forelleblau

      1 Reply Last reply Reply Quote 0
      • Snowboarder2611
        Snowboarder2611 last edited by

        Hi,
        vielen lieben Dank für den Adapter. Ich nutze diesen nun seit Januar. Oder besser gesagt, seit Januar bekomme ich endlich die Werte im Broker angezeigt und ich kann auch Werte ändern.
        Mit ist jetzt bei den Betriebsstunden der einzelnen Lüftungsstufen etwas aufgefallen. Dort haben wir eine Laufzeit von 22446 Stunden. Das kommt mit der Installation auch hin. Aber kurz darauf springt diese Stundenzahl auf 22272174 Stunden.
        Diese Zahl bleibt sehr lange stehen. Refresht sich auch schön immer auf die große Zahl. Nur ab und zu kommt der richtige Wert.

        Was könnte hier falsch laufen?

        F 1 Reply Last reply Reply Quote 0
        • F
          forelleblau @Snowboarder2611 last edited by

          @snowboarder2611

          Hallo. Welche Version hast du installiert? Falls noch nicht 1.1.3, bitte updaten.

          Den Effekt hatte ich auch schon, bin aber nicht sicher wieso.

          1 Reply Last reply Reply Quote 0
          • Snowboarder2611
            Snowboarder2611 last edited by

            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 Reply Quote 0
            • F
              forelleblau @Snowboarder2611 last edited by

              @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 Reply Quote 0
              • Snowboarder2611
                Snowboarder2611 last edited by Snowboarder2611

                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 Reply Quote 0
                • F
                  forelleblau last edited by

                  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 Reply Quote 0
                  • C
                    claus @forelleblau last edited by

                    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 Reply Quote 0
                    • F
                      forelleblau @claus last edited by

                      @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 Reply Quote 0
                      • C
                        claus @forelleblau last edited by

                        @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 Reply Quote 0
                        • F
                          forelleblau last edited by

                          @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 Reply Quote 0
                          • C
                            claus @forelleblau last edited by claus

                            @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 Reply Quote 0
                            • C
                              claus @forelleblau last edited by

                              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 Reply Quote 0
                              • F
                                forelleblau @claus last edited by

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

                                C 1 Reply Last reply Reply Quote 0
                                • C
                                  claus @forelleblau last edited by

                                  @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 Reply Quote 0
                                  • F
                                    forelleblau @claus last edited by

                                    @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 Reply Quote 0
                                    • C
                                      claus @forelleblau last edited by

                                      @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 Reply Quote 0
                                      • C
                                        claus @forelleblau last edited by

                                        @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 Reply Quote 0
                                        • F
                                          forelleblau @claus last edited by

                                          @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 Reply Quote 0
                                          • C
                                            claus @forelleblau last edited by

                                            @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 Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            438
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            25
                                            153
                                            16707
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo