Ankündigung

Einklappen
Keine Ankündigung bisher.

RTR Plugin für mehrere Regelkreise nutzten

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

    RTR Plugin für mehrere Regelkreise nutzten

    Hallo zusammen,

    ich kämpfe gerade mit der RTR Plugin, hat das jemand mit verschiedenen Regelkreisen im Einsatz ?

    Also rtr_current = rtr_setpoint = rtr_setpoint = x für den ersten und rtr_current = rtr_setpoint = rtr_setpoint = x+1 für den nächsten Regelkreis. Funktioniert bei mir gar nicht, sieht so aus, als wäre irgendwo ein Bug, der dafür sorgt das die Werte überschrieben werden.

    Mit einem Regler geht es jeweils.

    Das einzige was ich bisher gefunden habe ist, das er nur für den ersten Regler "rtr: all needed params are set, controller c1 validated" ausgibt, für die anderen nicht.


    Version: smarthomeNG 1.3.768.dev

    Die items sehen alle so aus:

    Code:
       
      [[temperatur]]
        name = Temperatur Kinderzimmer 2
        type = num
        cache = on
        knx_dpt = 9
        knx_send = 5/1/6
        knx_reply = 5/1/6
        ow_addr = 28.7A025B040000
        ow_sensor = T
        sqlite = yes
        rtr_current = 1
    
    [[heizung]]
      [[[sollwert]]]
        name = Sollwert Heizung Kinderzimmer 2
        type = num
        cache = on      
        knx_dpt = 9
        knx_listen = 5/2/6
        knx_send = 5/2/6
        knx_init = 5/2/6     
        sqlite = yes
        rtr_setpoint = 1
    
      [[[status]]]
        name = Status Heizung Kinderzimmer 2
        type = num
        knx_dpt = 5
        knx_send = 5/4/6
        knx_listen = 5/4/6
        knx_init = 5/4/6
        sqlite = yes
        rtr_actuator = 1
    Viele Grüße

    Paul

    #2
    Hallo zusammen,

    bin inzwischen etwas weiter. Es geht etwas schief beim Anlegen der einzelnen Controler. Siehe Zeile 2, hier entspricht alles dem leeren template, so wie es sein soll. Beim nächsten Controler (siehe letzte Zeile) sind dann aber die Daten des ersten Controlers drin, statt die des templates. Leider snd meine Phyton Fähigkeiten noch recht begrentzt. Kann jemand mit etwas mehr Erfahrung da mal draufschauen. Das Problem müsste irendwo bei den "self._controller[c] = self._defaults" aufrufen im RTR Plugin sein.

    Code:
    2016-10-14  22:04:44 INFO     Main         rtr: c == 11
    2016-10-14  22:04:44 INFO     Main         rtr: create _controller[11]] = {'currentItem': None, 'stopItem': None, 'Ta': 60, 'validated': False, 'eSum': 0, 'Ki': 0, 'Kp': 0, 'Tlast': 0, 'actuatorItem': None, 'setpointItem': None}
    2016-10-14  22:04:44 INFO     Main         rtr: missing rtr_Kp in arbeitszimmer.temperatur, setting to default: 5
    2016-10-14  22:04:44 INFO     Main         rtr: missing rtr_Ki in arbeitszimmer.temperatur, setting to default: 240
    2016-10-14  22:04:44 INFO     Main         rtr: before validate: _controller[11]] = {'currentItem': 'arbeitszimmer.temperatur', 'stopItem': None, 'Ta': 60, 'validated': False, 'eSum': 0, 'Ki': 240, 'Kp': 5, 'Tlast': 0, 'actuatorItem': None, 'setpointItem': None}
    2016-10-14  22:04:44 INFO     Main         rtr: all needed params are set, controller 11 validated
    2016-10-14  22:04:44 INFO     Main         rtr: after validate:  _controller[11]] = {'currentItem': 'arbeitszimmer.temperatur', 'stopItem': None, 'Ta': 60, 'validated': True, 'eSum': 0, 'Ki': 240, 'Kp': 5, 'Tlast': 0, 'actuatorItem': None, 'setpointItem': None}
    2016-10-14  22:04:48 INFO     Main         rtr: c == 7
    2016-10-14  22:04:48 INFO     Main         rtr: create _controller[7]] = {'currentItem': 'arbeitszimmer.temperatur', 'stopItem': None, 'Ta': 60, 'validated': True, 'eSum': 0, 'Ki': 240, 'Kp': 5, 'Tlast': 0, 'actuatorItem': 'arbeitszimmer.heizung.status', 'setpointItem': 'arbeitszimmer.heizung.sollwert.sollwert_modus'}

    Viele Grüße

    Paul

    Kommentar


      #3
      Du kannst mal self._controller[c] = self._defaults.copy() oder self._controller[c] = dict(self._defaults.copy) ausprobieren statt self._controller[c] = self._defaults

      Kommentar


        #4
        Danke Bernd,

        self._controller[c] = self._defaults.copy() funktioniert ! Da hätte ich gerade noch selber drauf kommen können.

        Viele Grüße

        Paul

        Kommentar


          #5
          Es gibt noch ein weiteres Problem: Die initiale Zeit wird nicht gesetzt, daher ist bei einer Regelabweichung bei einer niedrigen Temperatur die Fehlersumme gleich mit 72000 vorbelegt.
          Code:
              _defaults = {'currentItem' : None,
                          'setpointItem' : None,
                          'actuatorItem' : None,
                          'stopItem' : None,
                          'eSum' : 0,
                          'Kp' : 0,
                          'Ki' : 0,
                          'Tlast' : [B]time.time()[/B],
                          'validated' : False}
          sollte helfen. Ich habe jetzt aber nicht alles neu durchgerechnet sondern nur oberflächlich auf Plausibilität geschaut...

          In develop für die kommende SmartHomeNG 1.3 ist das alles bereits berücksichtigt.

          Kommentar

          Lädt...
          X