Ankündigung

Einklappen
Keine Ankündigung bisher.

RTR/Heizungs-Plugin

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

    RTR/Heizungs-Plugin

    Hallo Leute,

    da es noch keins gab und ich "später" eins brauche, habe ich ein RTR Plugin für sh.py programmiert. "Verbaut" ist ein PI-Regler, bei dem ich mich am Multi-RTR Wiregate Plugin mit der Rechnung orientiert habe. Es sollte soweit funktionsfähig sein, wenn auch Ausbaubar

    TODO:
    - Betriebsart (Komfort/Nacht/Frostschutz) inkl. festlegen deren Absenkungen
    - Maximale Sollwertverschiebung
    - Optionaler PID Regler vielleicht
    - Automatische Bestimmung von Kp / Ki

    Funktionieren tut das dann so:

    plugin.conf
    Code:
    [rtr]
        class_name = RTR
        class_path = plugins.rtr
    #    default_Kp = # Proportional gain
    #    default_Ki = # Integral gain
    Bei den Items wird so konfiguriert:

    Auf dem Ist Temperatur Wert wird rtr_current = X gesetzt.
    Auf dem Soll Temperatur Wert wird rtr_setpoint = X gesetzt.
    Auf die Stellgröße des Aktors wird rtr_actuator = X gesetzt.

    Das X steht dabei immer für die Zuordnung zu einem Regler (also einfach pro Raum hochzählen), wobei man das pro Ist/Soll/Stellgröße nur einmal machen kann.

    Hier ein Beispiel:
    Code:
    [eg]
        [[flur]]
            [[[temperatur]]]
                name = Temperatur
                type = num
                knx_dpt = 9
                knx_send = 4/2/120
                knx_reply = 4/2/120
                ow_addr = 28.52734A030000
                ow_sensor = T
                rtr_current = 1
    #            rtr_Kp = 0
    #            rtr_Ki = 0
    
                [[[[set]]]]
                    type = num
                    visu = yes
                    cache = On
                    knx_dpt = 9
                    knx_send = 4/3/120
                    knx_listen = 4/3/120
                    rtr_setpoint = 1
    
                [[[[state]]]]
                    type = num
                    visu = yes
                    knx_dpt = 9
                    knx_send = 4/1/120
                    knx_listen = 4/1/120
                    rtr_actuator = 1
    Ich freue mich über eure Rückmeldungen.

    Grüße,
    Thomas

    PS an die Moderatoren: Ich konnte meinen alten Beitrag nicht bearbeiten (zu alt?!). Könnt ihr Rechte hier setzten, damit ich den Beitrag später auch noch updaten kann, wenn es was neues gibt?
    Angehängte Dateien

    #2
    Hallo Thomas,

    ja, nett.

    Bitte schaue Dir mal https://github.com/mknx/smarthome/tree/develop/dev (inkl. pep8 an) und schick mir einen Pull-Request.

    Bei Deinem alten Beitrag kann ich nichts verändern. Der sieht normal aus.

    Bis bald

    Marcus

    Kommentar


      #3
      Ach ja,
      Du kannst Dir das item.id() und sh.return_item schenken und direkt das item referenzieren. Das muss kein String sein.

      Bis bald

      Marcus

      Kommentar


        #4
        Zitat von mknx Beitrag anzeigen
        Bei Deinem alten Beitrag kann ich nichts verändern. Der sieht normal aus.
        Bei dem alten ist es mir eigentlich egal, nur beim neuen... Muss man wohl mal den Forum Administrator fragen, denn ich denke, dass wenn der Beitrag hier älter wird, dass man den dann auch nicht mehr als "normaler User" bearbeiten kann, wie jetzt der alte... aber da muss man mal sehen wenn es soweit ist...

        Zitat von mknx Beitrag anzeigen
        Du kannst Dir das item.id() und sh.return_item schenken und direkt das item referenzieren. Das muss kein String sein.
        Beispiel?

        Kommentar


          #5
          Schön.
          Bzgl kp, ki: Fry hat sowas auf dem WG realisiert.

          von unterwegs gesendet

          Kommentar


            #6
            Was meinst du mit sowas? Die automatische Ermittlungen der beiden Parameter?

            Gesendet von meinem GT-I9100 mit Tapatalk

            Kommentar


              #7
              Ja genau sorry! vom Handy bin ich nur etwas kurz angebunden

              von unterwegs gesendet

              Kommentar


                #8
                Zitat von TCr82 Beitrag anzeigen
                Beispiel?
                Statt:

                Code:
                self._controller[c]['actuatorItem'] = item.id()
                …
                self._sh.return_item(self._controller[c]['actuatorItem'])(y)
                einfach:

                Code:
                self._controller[c]['actuatorItem'] = item
                …
                self._controller[c]['actuatorItem'](y)
                Bis bald

                Marcus

                Kommentar


                  #9
                  AW: RTR/Heizungs-Plugin

                  Zitat von henfri Beitrag anzeigen
                  Schön.
                  Bzgl kp, ki: Fry hat sowas auf dem WG realisiert.
                  Meinst das hier?

                  https://knx-user-forum.de/wiregate/1...r-gesucht.html


                  Gesendet von meinem GT-I9100 mit Tapatalk

                  Kommentar


                    #10
                    Ja genau!

                    Kommentar


                      #11
                      Oki super... den hatte ich vorher nicht gesehen... Mal schauen wenn ich wieder Zeit hab schau ich mir den Source mal genauer an

                      Gesendet von meinem GT-I9100 mit Tapatalk

                      Kommentar


                        #12
                        Hallo,

                        genau nach so einem Plugin habe ich schon lange gesucht. So könnte ich mir dann ja die teuren KNX-RTR für jeden Raum sparen und bräuchte als Hardware dann nur noch die one-wire Sensoren für die Einzelraumregelung.

                        Ich habe das Plugin ausprobiert. Leider gab es Fehlermeldungen. Eine Fehlermeldung konnte ich bearbeiten. Ich habe den Ausdruck "iterkeys" gegen "keys" gewechselt, scheint mit dem Übergang von Python 2 auf 3 zusammenzuhängen. Jedenfalls gibt es diesbezüglich nun keine Fehlermeldung mehr.

                        Eine andere Fehlermeldung hält sich allerdings hartnäckig. Da ich bin mit meinen rudimentären angelesenen Python-Kenntnissen überfordert:

                        Code:
                        2013-12-04 14:11:05 ERROR    Main         Item eg.xxxx.RTRplugin.set: problem running <bound method RTR.update_item of <plugins.rtr.RTR object at 0x171d7f0>>: global name 'c' is not defined
                        Traceback (most recent call last):
                          File "/usr/smarthome/lib/item.py", line 369, in __update
                            method(self, caller, source, dest)
                          File "/usr/smarthome/plugins/rtr/__init__.py", line 171, in update_item
                            if self._controller[c]['validated'] \
                        NameError: global name 'c' is not defined
                        Die entsprechend Passage im plugin lautet:

                        Code:
                        def update_item(self, item, caller=None, source=None, dest=None):
                                if caller != 'plugin':
                                    if 'rtr_setpoint' in item.conf:
                                        if self._controller[c]['validated'] \
                                        and ( self._controller[c]['stopItem'] is None or self._sh.return_item(self._controller[c]['stopItem'])() is True ):
                                            self.pi_controller('c' + item.conf['rtr_setpoint'])
                        
                                    if 'rtr_current' in item.conf:
                                        if self._controller[c]['validated'] \
                                        and ( self._controller[c]['stopItem'] is None or self._sh.return_item(self._controller[c]['stopItem'])() is True ):
                                            self.pi_controller('c' + item.conf['rtr_current'])
                        Die von Marcus vorgeschlagenen Änderungen aus dem vorherigen Post #8 habe ich übernommen. Die von mir geänderte Plugin Datei habe ich beigefügt.

                        Hat jemand vielleicht eine Idee?

                        Vielen Dank!

                        Thoralf
                        Angehängte Dateien

                        Kommentar


                          #13
                          Hmm... Ich hab es eigentlich schon hier bei mir angepasst gehabt. Melde mich später nochmal und lade das update hoch

                          Gesendet von meinem GT-I9100 mit Tapatalk

                          Kommentar


                            #14
                            So, hab mal das geänderte File hoch geladen. Leider ist es wie ich befürchtet habe, ich kann den ersten Beitrag nicht mehr bearbeiten.

                            In dem Update sind nur die Änderungen zu Python 3 drinnen, mehr habe ich noch nicht gemacht. Und da ich ab nächste Woche einen Monat in Afrika bin, wird da momentan auch nichts drin sein mit updates...

                            @Marcus:

                            Eine Idee, wehn ich anschreiben kann, damit ich ein spezielles Recht auf den Beitrag bekommen kann?

                            EDIT: ok, habe dazu mal eine Anfrage im Forum gestellt:

                            https://knx-user-forum.de/sonstiges-...earbeiten.html

                            Gruß,
                            Thomas
                            Angehängte Dateien

                            Kommentar


                              #15
                              Hi Thomas,

                              ich kann da leider nichts ändern. :-(

                              Bis bald

                              Marcus

                              Kommentar

                              Lädt...
                              X