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

    #61
    Hallo zusammen,

    eine kurze Frage. Ich habe eine CA350 zusammen mit der ComfoSense Bedieneinheit. Ist ComfoSense angeschlossen kann ich ohne Probleme per sh.py und dem comfoair Plugin wie gewünscht alle Daten lesen und schreiben. Klemme ich das ComfoSense Bedienteil ab, ist keine Kommunikation mehr möglich. Ist das bei euch ebenfalls so? Ich Frage deshalb weil in der Beschreibung des comfoair Plugins ausdrücklich steht das zumindest das CC Ease Bedienteil nicht parallel angeschlossen sein darf. Zum anderen würde ich das ComfoSense bei nichtgebrauch gerne zurückgeben, da es sonst nur nutzlos im Keller hängt.

    Viele Grüße
    Daniel

    Kommentar


      #62
      Bin auch an der Steuerung der Novus 300 interessiert. Hatte letztes Jahr wochenlang mit rs485 probiert, natürlich ohne Erfolg.

      @DocZoid: hatte deine Infos bzgl. rs232 im Haustechnikdialogforum gelesen und bin fast vom Stuhl gefallen. Jetzt machen meine Beobachtungen von damals plötzlich Sinn... ;-)

      Jetzt brauch ich nur noch einen guten rs232/usb adapter, dann bin ich dabei. Irgendwelche Empfehlungen? Oder besser gleich ein usb oszilloskop holen!?

      Gruß
      Christoph

      Kommentar


        #63
        @codechris: DocZoid hat mir dieses Adapter empfohlen: http://www.amazon.de/gp/product/B000...ilpage_o04_s00

        Kommentar


          #64
          Liebe Forummitglieder

          Ich habe mich vor einigen Monaten schon mal hier gemeldet und um Unterstützung gebeten. Leider ist mir kurz darauf meine KWL (Wernig G90-380) abgebrannt (Nulleiterbruch). Hat jetzt einige Zeit gedauert, bis ich mir eine neue zugelegt habe und würde das jetzt gerne nochmal in Angriff nehmen. Vorher hätte ich aber noch ein paar Fragen.
          Damit ich die Daten von und zur KWL bringe ist am besten ein Moxa geeignet. Ich habe einen Moxa 5110 bei mir in der Arbeit gefunden, der nicht mehr benötigt wird.
          Den habe ich mal wie oben beschrieben konfiguriert und ins Netz zu meinem Raspberry gehängt. Bevor ich ihn allerdings an die KWL hänge hätte ich da gerne gewußt, ob ich ihn direkt an den rs232 Stecker anhängen soll, oder die Bedieneinheit abstecken soll in ihn dort klemmen soll. Beim googeln habe ich gefunden, das wenn man die KWL über einen Pi steuern will, die Bedieneinheit nicht angeklemmt sein darf. Warum hat die KWL dann einen eigenen rs232 Stecker ? Sollte das so sein, dann kommt die Bedieneinheit halt weg. Das wäre ja kein Problem.

          Meine zweite Frage ist, ob man für dieses Plugin smarthome.py und smartVISU installieren muß, oder ob es auch eine andere Möglichkeit gibt, das Plugin in eine eigene Webseite am Pi einzubauen, denn diese hätte ich schon für den Rest meiner Haussteuerung (Heizung, Solarsteuerung, Zählerauslesen via M-Bus und Bewässerung).

          Wenn ja, könnte mir da vielleicht jemand ein paar Tipps geben, wie das funktioniert. Wie schon im Vorjahr geschrieben, bin für fertige Lösungen auch gerne bereit den dafür verlangten Obulus springen zu lassen.

          lg
          Gersch

          edit: Hab mich da glaub ich falsch ausgedrückt: Das dieses Plugin für smarthome.py ist und das man das dafür benötigt ist mir klar. Ich habe gemeint, ob smartVisu zur visualisierung zwingend benötigt wird, oder ob man die Abfrage auch über ein eigenes php script machen kann?

          Habe gestern Abend mal das Bedienteil abgeklemmt und den moxa angeklemmt. Wie ich schon öffter gelesen habe, schickt die KWL ja dauernd Statusmeldungen raus. Sollte da bei dem Moxa nicht die Tx/Rx Led blinken, oder tut sie das nur, wenn ich über TCP/IP Daten abfrage? Hab Tx und RX mal umgepolt, LED blieb aber trotzdem finster.

          Bitte um Hilfe für einen Ahnungslosen Newbie!!!
          Zuletzt geändert von Gersch; 15.07.2015, 12:57.

          Kommentar


            #65
            Hallo

            Ich versuche hier nochmal mein Glück. Hab mich die letzten Tage mal ein bisschen Intensiver mit dem Thema beschäftigt und auch schon erste Erfolge erziehlt. Doch jetzt stehe ich an und bräuchte eure Hilfe. Ich habe folgende Seite erstellt:

            HTML-Code:
            /**
            * -----------------------------------------------------------------------------
            * @package     smartVISU
            * @author      Martin Gleiß
            * @copyright   2012
            * @license     GPL [http://www.gnu.de]
            * -----------------------------------------------------------------------------
            */
            
            
            {% extends "rooms.html" %}
            
            
               Frischlufttemperatur :
                {{ basic.float('kwl.temp', 'kwl.temp.freshair', ' °C') }}
                <hr>
                
                Zulufttemperatur :
                {{ basic.float('kwl.temp', 'kwl.temp.supplyair', ' °C') }}
                <hr>
                
                Ablufttemperatur :
                {{ basic.float('kwl.temp', 'kwl.temp.extractair', ' °C') }}
                <hr>
                
                Fortlufttemperatur :
                {{ basic.float('kwl.temp', 'kwl.temp.exhaustair', ' °C') }}
                <hr>
            
                
                Gewünschte Temperatur :
                {{ basic.float('kwl.temp', 'kwl.temp.comfort', ' °C') }}
                <hr>
                
                Zuluftventilator läuft auf Stufe :
                {{ basic.float('kwl.supplyair', 'kwl.supplyair.level', ' ') }}
                <hr>
                
                Zuluftventilator läuft mit :
                {{ basic.float('kwl.supplyair', 'kwl.supplyair.rpm', ' %') }}
                <hr>
                
                Abluftventilator läuft auf Stufe :
                {{ basic.float('kwl.extractair', 'kwl.extractair.level', ' ') }}
                <hr>
                
                Abluftventilator läuft mit :
                {{ basic.float('kwl.extractair', 'kwl.extractair.rpm', ' %') }}
                <hr>
                
            {% endblock %}
            
            Beim Aufruf der Seite wird mir allerdings nur bei Frischlufttemperatur die Temperatur ausgegeben. Bei den anderen Temperaturen steht nur -.-
            Bei "Zuluftventilator läuft auf Stufe" steht zuerst 15 nach ca 1 Minute steht dann 498%. Das gleiche beim Abluftventilator (466%).
            Ich befürchte, das ich da irgendwas doch nicht so richtig verstanden habe.
            Meine Vorgangsweise:
            Unter /usr/local/smarthome/items habe ich eine Datei (lueftung.conf) angelegt und das example.item von der Seite

            https://github.com/mknx/smarthome/tr...ugins/comfoair hinneinkopiert.

            Unter /usr/local/smarthome/plugins habe ich einen Ordner mit dem Namen comfoair erstellt und die __init__.py und die commands.py hinneinkopiert.

            Meine /usr/local/smarthome/etc/plugin.conf sieht so aus:

            Code:
            # plugin.conf
            [ow]
                class_name = OneWire
                class_path = plugins.onewire
            [visu]
                class_name = WebSocket
                class_path = plugins.visu
                ip = 192.168.178.24
                port = 2424
                acl = rw
                smartvisu_dir = /var/www/smartVISU
                # for Ubuntu 14.04 upwards the base for html has changed
                # smartvisu_dir = /var/www/html/smartVISU
            [cli]
                class_name = CLI
                class_path = plugins.cli
                ip = 192.168.178.24
                update = True
            [sql]
                class_name = SQL
                class_path = plugins.sqlite
            
            [comfoair]
                class_name = ComfoAir
                class_path = plugins.comfoair
                kwltype = comfoair350       # Currently supported: comfoair350 and comfoair500
                host = 192.168.178.254        # Provide host and port if you want to use TCP connection (for a TCP to serial converter)
                port = 5555                 # Port
                #serialport = /dev/ttyUSB0  # Enable this if you want to use a serial connection
            Des weiteren bin ich draufgekommen, wen ich in meiner Seite die Anzuzeigenden Werte umdrehe. z.B:

            Code:
                Zulufttemperatur :
                {{ basic.float('kwl.temp', 'kwl.temp.supplyair', ' °C') }}
                <hr>
             Frischlufttemperatur :
                {{ basic.float('kwl.temp', 'kwl.temp.freshair', ' °C') }}
                <hr>
            wird bei Zulufttemperatur exat der gleiche Wert ausgegeben wie vorher bei Frischlufttemperatur. Habe dann, da es ja möglich sein kann, das die Temperaturen gleich sein könnten, versucht die Gewünscht Raumtemp mal an die erste stelle zu stellen und auch da wird der selbe Wert ausgegeben.

            Ich vermute daher, dass es da bei meiner Abfrage was hat.
            Kann mir da bitte jemand weierhelfen und mir sagen was ich da falsch mache???

            Edit: nach jedem umbauversuch natürlich mit
            sudo /etc/init.d/smarthome restart
            neu gestartet

            Kommentar


              #66
              Hallo,

              ich bin zwar auch noch ziemlicher Anfänger, aber was hier denke ich nicht stimmt: Du verwendest mehrfach die gleiche item-ID, z.B. wird 5 mal 'kwl.temp' benutzt (erster parameter von basic.float), diese ID muss meines Wissens nach auf der Seite eindeutig sein! Dein beschriebenes Verhalten, dass zweimal exakt der gleiche Wert ausgegeben wird, deutet denke ich auch darauf hin. Kommen denn vernünftige Werte aus der Lüftungsanlage, also sinnvolle Temperaturen usw.?

              Gruß

              Franz

              Kommentar


                #67
                Hallo Franz

                Die ausgegebene Temperatur dürfte stimmen, welche das auch immer ist.
                Zum benutztem item:


                Code:
                [kwl]
                    [[level]]
                        type = num
                        comfoair_send = WriteVentilationLevel
                        comfoair_read = ReadCurrentVentilationLevel
                        comfoair_read_afterwrite = 1 # seconds
                        comfoair_trigger = ReadSupplyAirRPM
                        comfoair_trigger_afterwrite = 6 # seconds
                        comfoair_init = true
                        sqlite = yes
                    [[extractair]]
                        [[[rpm]]]
                            type = num
                            comfoair_read = ReadExtractAirRPM
                            comfoair_read_cycle = 60 # seconds
                            comfoair_init = true
                        [[[level]]]
                            type = num
                            comfoair_read = ReadExtractAirPercentage
                            comfoair_read_cycle = 60 # seconds
                            comfoair_init = true
                    [[supplyair]]
                        [[[rpm]]]
                            type = num
                            comfoair_read = ReadSupplyAirRPM
                            comfoair_read_cycle = 60 # seconds
                            comfoair_init = true
                        [[[level]]]
                            type = num
                            comfoair_read = ReadSupplyAirPercentage
                            comfoair_read_cycle = 60 # seconds
                            comfoair_init = true
                    [[filter]]
                        [[[reset]]]
                            type = bool
                            comfoair_send = WriteFilterReset
                    [[temp]]
                        [[[comfort]]]
                            type = num
                            comfoair_send = WriteComfortTemperature
                            comfoair_read = ReadComfortTemperature
                            comfoair_read_cycle = 60 # seconds
                            comfoair_init = true
                        [[[freshair]]]
                            type = num
                            comfoair_read = ReadFreshAirTemperature
                            comfoair_read_cycle = 60 # seconds
                            comfoair_init = true
                            sqlite = yes
                        [[[supplyair]]]
                            type = num
                            comfoair_read = ReadSupplyAirTemperature
                            comfoair_read_cycle = 60 # seconds
                            comfoair_init = true
                            sqlite = yes
                        [[[extractair]]]
                            type = num
                            comfoair_read = ReadExtractAirTemperature
                            comfoair_read_cycle = 60 # seconds
                            comfoair_init = true
                            sqlite = yes
                        [[[exhaustair]]]
                            type = num
                            comfoair_read = ReadExhaustAirTemperature
                            comfoair_read_cycle = 60 # seconds
                            comfoair_init = true
                            sqlite = yes
                        [[[preheater]]]
                            type = num
                            comfoair_read = ReadPreHeatingTemperature
                            comfoair_read_cycle = 60 # seconds
                            comfoair_init = true
                        [[[groundheat]]]
                            type = num
                            comfoair_read = ReadGroundHeatTemperature
                            comfoair_read_cycle = 60 # seconds
                            comfoair_init = true
                    [[bypass]]
                        type = num
                        comfoair_read = ReadBypassPercentage
                        comfoair_read_cycle = 600 # seconds
                        comfoair_init = true
                    [[preheater]]
                        type = num
                        comfoair_read = ReadPreHeatingStatus
                        comfoair_read_cycle = 600 # seconds
                        comfoair_init = true
                    [[operatinghours]]
                        [[[away]]]
                            type = num
                            comfoair_read = ReadOperatingHoursAway
                            comfoair_read_cycle = 3600 # seconds
                            comfoair_init = true
                        [[[low]]]
                            type = num
                            comfoair_read = ReadOperatingHoursLow
                            comfoair_read_cycle = 3600 # seconds
                            comfoair_init = true
                        [[[medium]]]
                            type = num
                            comfoair_read = ReadOperatingHoursMedium
                            comfoair_read_cycle = 3600 # seconds
                            comfoair_init = true
                        [[[high]]]
                            type = num
                            comfoair_read = ReadOperatingHoursHigh
                            comfoair_read_cycle = 3600 # seconds
                            comfoair_init = true
                        [[[antifreeze]]]
                            type = num
                            comfoair_read = ReadOperatingHoursAntiFreeze
                            comfoair_read_cycle = 3600 # seconds
                            comfoair_init = true
                        [[[preheater]]]
                            type = num
                            comfoair_read = ReadOperatingHoursPreHeating
                            comfoair_read_cycle = 3600 # seconds
                            comfoair_init = true
                        [[[bypass]]]
                            type = num
                            comfoair_read = ReadOperatingHoursBypass
                            comfoair_read_cycle = 3600 # seconds
                            comfoair_init = true
                        [[[filter]]]
                            type = num
                            comfoair_read = ReadOperatingHoursFilter
                            comfoair_read_cycle = 3600 # seconds
                            comfoair_init = true
                    [[heatpreparationratio]]
                        type = num
                        eval = (sh.kwl.temp.supplyair() - sh.kwl.temp.freshair()) / (sh.kwl.temp.extractair() - sh.kwl.temp.exhaustair()) * 100
                        eval_trigger = kwl.temp.supplyair | kwl.temp.freshair | kwl.temp.extractair | kwl.temp.exhaustair
                Hab ich das falsch verstanden, das man das dann so abruft?
                {{ basic.float('kwl.temp', 'kwl.temp.freshair', ' °C') }}

                lg
                Gersch
                Zuletzt geändert von Gersch; 24.07.2015, 10:17.

                Kommentar


                  #68
                  Hallo,

                  grundsätzlich dürfte das schon stimmen, aber {{ basic.float('kwl.temp', 'kwl.temp.freshair', ' °C') }} darf auf deiner Seite nur einmal vorkommen, muss eindeutig sein. Das ist die jeweilige ID deines Widgets, also der float-Anzeige. Wenn Du mehrere dieser Anzeigen auf deiner Seite hast, muss diese ID für jede Anzeige unterschiedlich sein! Du müsstest also sowas in der Richtung schreiben:
                  Frischlufttemperatur:
                  {{ basic.float('kwl.temp_1', 'kwl.temp.freshair', ' °C') }}
                  Zulufttemperatur:
                  {{ basic.float('kwl.temp_2', 'kwl.temp.supplyair', ' °C') }}
                  usw. oder auch eine sinnvollere Bezeichung, aber auf jeden Fall unterschiedlich!

                  Gruß
                  Franz

                  Kommentar


                    #69
                    DANKE.

                    Ich habe scheibar das Wiki doch falsch verstanden. Ich habe zwar gelesen, dass sich die id auf der Seite nicht wiederholen darf, nur habe ich das auf die items.conf bezogen und nicht auf die html Seite. Wenn ich das jetzt richtig verstehe heißt das, das ich statt
                    {{ basic.float('kwl.temp_1', 'kwl.temp.freshair', ' °C') }}
                    zum beispiel auch
                    {{ basic.float('kwl.frischluft', 'kwl.temp.freshair', ' °C') }}
                    schreiben kann. Nur das ("kwl. muß gleich bleiben. Stimmt das so?
                    Sorry für die blöden Fragen. Ich weiß, das das hier nicht mehr hinngehört

                    Gersch

                    Kommentar


                      #70
                      Hallo Gersch,

                      du kannst auch nur 'Frischluft' schreiben, auch das 'kwl.' braucht an dieser Stelle nicht zu stehen. Es muss nur ein eindeutiger (auf der html Seite) Bezeichner sein und hat nichts mit den items (kwl.temp.freshair) zu tun. Es gibt keine blöden Fragen, bin auch noch Anfänger ;-)

                      Gruß Franz

                      Kommentar


                        #71
                        Hallo zusammen,

                        versuche schon den ganzen Abend das Plugin ans laufen zu bekommen, leider ohne Erfolg...

                        Bekomme folgende Meldung(en) beim SmartHome-Start:
                        Code:
                        Init SmartHome.py 1.0-35-gf62db45+
                        2015-11-18 00:27:33 ERROR    Main         Plugin comfoair exception: No module named 'serial'
                        Traceback (most recent call last):
                          File "/usr/local/smarthome/lib/plugin.py", line 53, in __init__
                            plugin_thread = Plugin(smarthome, plugin, classname, classpath, args)
                          File "/usr/local/smarthome/lib/plugin.py", line 79, in __init__
                            exec("import {0}".format(classpath))
                          File "<string>", line 1, in <module>
                          File "/usr/local/smarthome/plugins/comfoair/__init__.py", line 24, in <module>
                            import serial
                        ImportError: No module named 'serial'
                        .
                        .
                        .
                        2015-11-18 00:27:35 WARNING  kwl.heatpreparationratio Item kwl.heatpreparationratio: problem evaluating (sh.kwl.temp.supplyair() - sh.kwl.temp.freshair()) / (sh.kwl.temp.extractair() - sh.kwl.temp.exhaustair()) * 100: division by zero
                        Verbindung wir über einen USB-Serial-Adapter hergestellt und funktionierte auch schon via Wiregate, daher ist ein Verdrahtungsfehler auszuschließen...
                        Die Dateien __init__.py und commands.py von GitHub wurden in plugins/comfoair gespeichert...
                        in der plugin.conf ist folgendes eingetragen:
                        Code:
                        [comfoair]
                           class_name = ComfoAir
                           class_path = plugins.comfoair
                           kwltype = comfoair350       # Currently supported: comfoair350 and comfoair500
                           #host = 192.168.123.6        # Provide host and port if you want to use TCP connection (for a TCP to serial converter)
                           #port = 5555                 # Port
                           serialport = /dev/ttyUSB0  # Enable this if you want to use a serial connection
                        So ich denke das waren alle nötigen Angaben...

                        PS: Habe gerade in meiner Signatur gesehen das ich ja nur die kleine 200L habe, liegt es dadran oder ist die mit dem Plugin auch lauffähig?
                        Zuletzt geändert von Yfkt5A; 18.11.2015, 00:45.
                        cu Yfkt5A
                        DALI(ABB DG/S1.1), KODI Odroid, TrueNAS, Zehnder ComfoAir 200 L Luxe
                        microk8s-Cluster: HomeAssistant, MusicAssistant, mosquitto, TVHeadend, jellyfin

                        Kommentar


                          #72
                          Hallo,

                          da fehlt wohl das Paket serial für Python3. Je nach Plattform: apt-get install py3-serial.

                          hth

                          Marcus

                          Kommentar


                            #73
                            bzw.
                            Code:
                            sudo [COLOR=#333333][FONT=Consolas][SIZE=14px]pip3 install pyserial[/SIZE][/FONT][/COLOR]

                            Kommentar


                              #74
                              Danke
                              Code:
                              apt-get install python-serial
                              brachte die Lösung

                              callidomus: eine Frage noch, zwar Offtopic, aber wenn ich den Profi schon mal da hab...
                              Ich habe SmartHome.py nach dieser Anleitung auf Ubuntu 14.04 installiert, leider schaff ich es hier nicht den debug-Modus(smarthome.py -d) zu starten. Beim Aufruf des Befehls erhalte ich "command not found".
                              Mit "service smarthome start" lässt sich SmartHome.py starten bzw. mit "service smarthome restart" neustarten, jedoch scheint es hier keine Debug-Option zu geben.
                              Muss ich noch etwas nachinstallieren damit dies funktioniert?
                              cu Yfkt5A
                              DALI(ABB DG/S1.1), KODI Odroid, TrueNAS, Zehnder ComfoAir 200 L Luxe
                              microk8s-Cluster: HomeAssistant, MusicAssistant, mosquitto, TVHeadend, jellyfin

                              Kommentar


                                #75
                                Hallo,

                                ich denke man kann SH.py nicht als Service mit -d laufen lassen, da es nicht in den Hintergrund geht. Es gibt einen anderen Schalter -v?? mit dem den Debug-Output aktivieren kann.

                                Wenn Dir das nicht hilft, mache einen neuen Thread auf. Dann kann Dir evtl. jemand weiterhelfen der das mit Ubuntu laufen lässt.

                                Bis bald

                                Marcus

                                Kommentar

                                Lädt...
                                X