Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Wiregate-Plugin für PID-Heizungsregelung - Tester gesucht

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #61
    Meine Konfig
    Code:
    %house=(  
        cycle => 60,
    
        # Anzahl der Datenpunkte fuer Trendberechnung
        mindata => 30, 
    
    #    inflow_control => '', # GA zum Setzen der Soll-Vorlauftemperatur
        inflow_max => 38, # maximale Soll-Vorlauftemperatur
    
    #    inflow => '', # hausweite Vorlauftemp, falls nicht raumweise messbar
    #    outflow => '', # hausweite Ruecklauftemp, falls nicht raumweise messbar
        spread => 18, # hausweite Spreizung, falls alle Stricke reissen
    
        heating => '4/4/47', # Status der Therme 
        heating_off => '0', # bei diesen Stati ist die Therme "AUS"
    
    #    control_switch =>'', # Heizungsregler an- und ausschalten
    #    control_status =>'', # Status des Heizungsreglers abfragen
    
        # RRDs der Ventilsteuerungswerte schreiben
        rrd=>1,
    
        # PID-Regelparameter fuer alle Raeume, die keine eigenen Parametersaetze (siehe ganz unten) definieren
        # Falls diese Werte fehlen, wird als Standard (30, 30, 1, 1, 10) genommen
    
        # Vorausblickende Zeit - D-Koeffizient
        # groessere Werte sind aggressiver
        Tv=>20, 
        
        # Nachstellzeit - I-Koeffizient, kleinere Werte sind aggressiver
        # kleinere Werte sind aggressiver    
        Tn=>50, 
        
        # maximaler Beitrag der I-Komponente zur Ventilstellung, verhindert "wind-up"-Effekt
        # groessere Werte sind aggressiver
        lim=>0.5, 
    
        # Proportionalitaetsbereich (K) - Koeffizient vor allen drei (P, I, D)-Regelbeiträgen
        # kleinere Werte sind aggressiver    
        prop=>2.0, 
    
        # alle obigen Koeffizienten (außer lim) beziehen sich auf diesen Referenzspread und werden fuer andere Spreads angepasst
        # Es kommt im Endeffekt nur auf den Quotienten prop/refspread an!
        # groessere Werte sind aggressiver
        refspread=>20, 
    
        # Definitionen der Raeume (Regelstrecken)
        Hobby  => { control=>'4/4/43', actuator=>'4/4/40', sensor=>'4/4/47'},
    );

    Kommentar


      #62
      Ich bin nun endlich mal soweit, dass ich den PID-Regler in den ersten Räumen im Dauerbetrieb einsetze und mir sind ein paar Kleinigkeiten aufgefallen:
      1. Im Optimierungsmodus werden die RDDs der Stellwerte (actuator) nicht sauber geschrieben. Kann das jemand bestätigen? Meine Graphen haben Aussetzer.
      2. Ich habe bisher nur in zwei Räumen den Optimierungsmodus verwendet und in dieses Räumen möchte ich gezielt nur die Estrichtemperatur steuern um einen angenehm und konstant warmen und Fliesenfußboden zu erhalten.
        • Ich habe die GA des Fußbodensensors daher beim parameter [sensor] eingetragen und den parameter [floor] weggelassen.
        • Hier ist die Sprungantwort natürlich sehr schnell. Ist der Regler dafür eventuell eher ungeeignet?
        • Der Optimierungsmodus startet und geht in die phase:heat. (inflow ist nicht definiert und Wärme ist bei uns immer vorhanden -> 2-Leiter Wärmenetz mit Wohnungsübergabestationen)
        • Die steigende Flanke des Stellwertes beim Beginn der Optimierung wird im RDD anscheinend nicht mitgeschrieben.
        • Der Messwert springt Sprunghaft an, der Stellwert wird nach wenigen Minuten auf 0% gesetzt (im RDD sichtbar) und das obwohl die Erwärmung noch nicht einmal in die Sättigung geht sondern eher noch in einer steilen Flanke nach oben steht. Ich verstehe den Programmcode der Optimierungsfunktion so, dass die phase: heat erst enden soll, wenn die gemessene Temperatur nicht mehr signifikant steigt.
        • Anschließend kühlt der Fußboden über mehrere Stunden aus. Nur leider bleibt der Regler auch nach Stunden im mode: optimize und in der phase: heat. Auch wird am Ende meiner Configurationsdatei keine Zeile mit den Ergebnissen erzeugt. Die Temperaturregelung scheint aber dennoch auf den letzten eingestellten Wert zu springen (in dem letzten Satz bin ich mir aber noch nicht sicher).
      3. Kann es sein, dass der control_switch und control_status noch keine Funktion haben? Wenn doch, welche?
      4. Ich starte gleich noch Optimierungsläufe in Räumen, in denen Teppich liegt und in denen ich die Raumtemperatur über die Lufttemperatur regel (so wie es die Regel ist. Hier werde ich die Parameter [floor] wie vorgesehen verwenden. Mal sehen, ob der Optimierungslauf hier wie erwartet endet.
      5. Welche Bedingungen führen zum Ende der phase:heat?
      6. Welche Bedingungen führen zum Ende der Optimierung?

      Kommentar


        #63
        Hallo

        Ich habe das plugin seit einigen Monaten am laufen, ohne weitere Probleme.

        Ich habe jedoch keine optimisierung gemacht, lief trotzdeem gudd.

        Bis ich das Scenencontroller plugin installiert habe.

        Seit her bekomme ich folgende Antwort:
        Heizungsregler.pl,Run-time error: Can't use string ("") as a HASH ref while "strict refs" in use at (eval 97) line 109.
        ,0s,Can't use string ("") as a HASH ref while "strict refs" in use at (eval 97) line 109. Was läuft da schief.

        Wenn ich dass plugin abspeichere läuft es wieder wunderbar, bis ich das Scencontroller plugin benutze dann kommt sofort wieder die Fehlermeldung.

        habe Ich die falsche DPT adresse für den Status Heat?

        kann mir da jmd helfen bitte?

        Kommentar


          #64
          Hatte das selbe Problem, wusste nur nicht das es mit dem Scenencontroller zusammen hängt.

          Meine Lösung damals: Plugin löschen und nicht verwenden.

          Weil ich E-Strich Fühler verwende wäre ich auch noch an diesem Plugin zum Testen interessiert.

          Lg Gernot

          Kommentar


            #65
            Zitat von wagnpi Beitrag anzeigen
            Bis ich das Scenencontroller plugin installiert habe.

            Seit her bekomme ich folgende Antwort:
            Heizungsregler.pl,Run-time error: Can't use string ("") as a HASH ref while "strict refs" in use at (eval 97) line 109.
            ,0s,Can't use string ("") as a HASH ref while "strict refs" in use at (eval 97) line 109. Was läuft da schief.
            Hatte den PID Heat ebenfalls deaktiviert und wollte ihn jetzt mal wieder angehen. Gleiches Probel wie bei Dir und inzwischen nutze ich auch den genialen Scenencontroller
            von Fry. Aber eine Idee, wo der Fehler herkommt, habe ich auch noch nicht.

            Kommentar


              #66
              Hallo zusammen,
              ich nutze beide Plugins ohne Probleme, komme allerdings nicht mehr dazu, die jetzt weiterzuentwickeln oder zu dokumentieren. Gerne stelle ich bei Bedarf meine Versionen nochmals ins Repository, wobei die dortigen Versionen aber sowieso aktuell sein _sollten_.
              Ganz offen: die Optimierung habe ich damals entwickelt und in einem simulierten Setup auch durchgetestet, in meinem Haus letztlich aber nie benutzt, weil es wirklich nicht schwer war, gute Werte für die Parameter zu finden, mit denen die Raumregelung zu meiner Zufriedenheit lief.
              Insofern müsste also mal jemand anderes den Staffelstab übernehmen, wenn es um die Weiterentwicklung geht...
              Viele Grüße,
              Fry

              Kommentar


                #67
                Danke Fry, ich würde mich freuen, wenn Du Deine laufenden Code noch einmal ins Repository stellst. Vielleicht ist ja doch eine Kleinigkeit anders. Ich würde eigentlich schon gerne auf Deinen Regler umstellen, ...und ich würde auch gerne noch ein wenig mit der Optimierungsfunktion spielen. Vg, Robosoc

                Kommentar


                  #68
                  Zitat von wagnpi Beitrag anzeigen

                  Bis ich das Scenencontroller plugin installiert habe.

                  Seit her bekomme ich folgende Antwort:
                  Heizungsregler.pl,Run-time error: Can't use string ("") as a HASH ref while "strict refs" in use at (eval 97) line 109.
                  ,0s,Can't use string ("") as a HASH ref while "strict refs" in use at (eval 97) line 109. Was läuft da schief.

                  So, ich habe mir mal ein wenig Zeit für das Thema gegönnt. Wie die Info von Fry schon vermuten ließ, liegt es scheinbar nicht an der Konstellation mit den Szenencontroller. Ich konnte den Fehler bei mir recht einfach reproduzieren, in dem ich einen Sollwert manuell mit dem ETS Gruppenmonitor z.B. mit 25°C gesendet habe. Das hat den Fehler sofort hervorgerufen, egal ob der Szenencontroler aktiviert oder deaktivert war (Deaktivierung durch Entfernen der Raute in der entsprechenden Code-Zeile). Bei mir hat es ganz offensichtlich etwas mit den GA-Kürzeln zutun. Nachdem ich auf GA-Adressen gewechselt bin, funktioniert der Heizungsregler von Fry.
                  Update: Der letzte Satz war zu voreilig. Noch läuft es nicht ohne den Fehler.

                  Meine Kurzbezeichnung des Sollwertes für einen bestimmten Raum lautet: Hz-Sollt_R3-5. Kann es Probleme mit Bindestrichen in Kurzadressen geben?
                  Zuletzt geändert von Robosoc; 08.01.2016, 08:40.

                  Kommentar


                    #69
                    Hi

                    Ich habe jetzt endlich den Szencencontroler und das Heizungsplugin zusammen am laufen.

                    Ich habe heraus gefunden das die Zeilen bei der die Daten des Szcenencontrollers ins plugin info geschrieben werden, das Problem Mit strict refs verursachen.

                    Ich weis nicht genau was in dem Code das Problem verursacht, da Ich noch nicht die Zeit und vielleicht auch nicht die nötigen Perl Kentnisse um den Fehler zu finden. Ich habe einfach die ganzen Schnipsel gelöscht und schon klapt.

                    Da ich die Daten des Scencontrollers in die config schreiben lasse brauche ich sie eh nicht im plaugin info.

                    Fals jemand bei interessie das Problem genauer analysieren möchte ist er immer willkommen mir mitzuteilen an was genau es gelegen hat.

                    Kommentar


                      #70
                      Ich habe das PlugIn auch seit einigen Wochen am Laufen, war aber noch am Testen. Mein Problem war scheinbar, dass ich im Dateinamen kein .pl gesetzt hatte.

                      Nun habe ich vermutlich seit Freischaltung des Plugins täglich größer werdende Probleme und heute abend habe ich festgestellt, dass in LogFile (nach Aktivierung von Warnungen) folgende vier Zeilen in Masse erstellt werden, nämlich alle 0,006 Sekunden !!!!

                      2016-12-01 23:04:33.117,PID_Heiz.pl,Warning: Use of uninitialized value $str in pattern match (m//) at /usr/lib/perl-wiregate/daemon_functions.pm line 455.
                      2016-12-01 23:04:33.117,PID_Heiz.pl,Warning: Use of uninitialized value $str in pattern match (m//) at /usr/lib/perl-wiregate/daemon_functions.pm line 455.
                      2016-12-01 23:04:33.118,PID_Heiz.pl,Warning: Use of uninitialized value $age in right bitshift (>>) at /usr/share/perl5/EIBConnection.pm line 462.
                      2016-12-01 23:04:33.118,PID_Heiz.pl,Warning: Use of uninitialized value $age in bitwise and (&) at /usr/share/perl5/EIBConnection.pm line 463.

                      Diese Warnung taucht im Forum in den letzten Tagen bei zwei weiteren Usern ebenfalls auf, bei einem ebenfalls im Zusammenhang mit dem PID-Regler. Ich habe heute auf Version 01.04.000 geupdated, davor hatte ich nur die unteren zwei Warnungszeilen. Die Massenproduktion von Zeilen hat sich also durch 01.04.000 verdoppelt. Aber ich denke es liegt eher am PlugIn als an dem Update.

                      Habt Ihr ähnliche Probleme?
                      Habt Ihr eine Lösungsidee?

                      Ich habe den PID-Regler erst einmal wieder deaktiviert und hoffe, dass der WG-Server jetzt wieder ruhig läuft.
                      Zuletzt geändert von Robosoc; 01.12.2016, 23:16.

                      Kommentar

                      Lädt...
                      X