Ankündigung

Einklappen
Keine Ankündigung bisher.

WG Plugin Frage

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

    [wiregate] WG Plugin Frage

    Hallo,

    hab mich mal an die Plugins gewagt
    Gibt es eine Möglichkeit den Folgenden Code so ab zu ändern, dass er:

    - Verfolgt ob die Temp Auf- oder Absteigend ist (also aus der differenz soll - ist über einen best Zeitverlauf??) evtl aus den RRD´s lesen? Hab davon leider keine Ahnung.


    Achja ist die Regelung für den Partykeller.

    Code:
    # Plugin für Heizung Versuch
    # Version 0.3
    
    ##############
    # Definition #
    ##############
    
    
    
    
    # GA´s
    my $HeizungFreigabeGA = '11/2/3';
    my $HeizungAutoGA = '11/2/4';
    my $HeizungSollGA = '11/2/1';
    my $HeizungIstGA = '11/2/0';
    my $HeizungSchaltenGA = '11/2/2';
    
    
    
    my $Solltemp = knx_read( $HeizungSollGA,0,9 );
    my $Isttemp = knx_read( $HeizungIstGA,0,9 );
    my $Auto = knx_read($HeizungAutoGA,0,1);
    my $Schalten = knx_read($HeizungSchaltenGA,60,1);
    
    
    $plugin_subscribe{$HeizungSollGA}{$plugname} = 1;
    $plugin_subscribe{$HeizungIstGA}{$plugname} = 1;
    
    
    if ( $Auto == 1 ) {
        if ($Solltemp >= $Isttemp) {
            knx_write ( $HeizungSchaltenGA, 1 );
            return "Heizung läuft";
        } else {
        knx_write ( $HeizungSchaltenGA, 0);
        return "Warm genug";
            }
    }  else {
            knx_write ( $HeizungSchaltenGA, 0);
            return "Keine Automatik";
            }
    Die Freigabe ist noch ne linknx leiche. Die Heizung wird über einen Schaltaktor gesteurt der Standard Öffner-Ventile der FBH Schaltet. RTR im Keller leider nicht vorhanden da mir das Anfangs nicht wichtig war...

    Gruß

    #2
    Zitat von vlamers Beitrag anzeigen
    Gibt es eine Möglichkeit den Folgenden Code so ab zu ändern, dass er:

    - Verfolgt ob die Temp Auf- oder Absteigend ist (also aus der differenz soll - ist über einen best Zeitverlauf??) evtl aus den RRD´s lesen? Hab davon leider keine Ahnung.
    Was Du willst ist nicht's besonderes: Du willst den Gradienten berechnen.

    Dazu musst Du dir den alten Wert merken, so wie den Zeitpunk des letzten Aufrufs. Und dann ist's nur noch:
    Gradient = (T_neu - T_alt) / (t_neu - t_alt)
    dabei ist T natürlich die Temperatur und t die Zeit.

    Aber: Wozu willst Du denn für die Temperaturregelung den Gradienten?!?
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      #3
      Hallo,

      ja die Formel kenn ich.
      ich möchte, wenn die Temp fällt und die 2-punkt regelung der Heizung noch nicht eingeschaltet hat, das die Heizung das "pulsieren" anfängt. Also 10 min an, 10min aus usw um die Temperatur spitzen zu glätten.
      Derzeit sinkt die temp 2° drunter, und dann 2° drüber. Ich möchte max 0,5° Schwankung (nach möglichkeit)

      und einen Boden der annähernd immer die selbe temp hat. Im keller sind keine Estrichfühler, deshalb dieser Umweg.

      Gruß

      PS: Nebenbei ist der Keller mein 2tes Arbeitszimmer und ich mags gleichmäßig warm

      Bei mir scheitert es eindeutig an meinen "Coder" Fähigkeiten

      Edit:
      hat sich erledigt will meinen Aktor nicht so schnell loswerden. Aufgrund sovieler schalt Zyklen. Hab gerade nachgerechnet

      Kommentar


        #4
        Warum keine PI Regelung?

        10 min an / 10 min aus ist übrigens fast die normale PWM Frequenz (für die man ja oft 15 min nimmt). Oder hast die die Stelltriebe an einem normalen Schaltaktor?
        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

        Kommentar


          #5
          Ja ein normaler schaltaktor.
          War der Meinung dass sich kein heizungsaktor für 3 FBH kreise rentiert. War ursprünglich eine normale ohne EIB Regelung im Keller.
          Aber der heizungsaktor ist gerade auf meine todo liste für nächsten Winter gekommen.

          Gruß und Danke

          Kommentar


            #6
            Ich glaube auch, was Du wirklich willst ist nur ein PI-Regler
            Der kümmert sich um eben das über/unterschwingen eigentlich recht gut..
            Ggfs. etwas an P oder I - je nach Gegenbenheiten - schrauben
            (man sagt ja pauschal 15Min Taktzeit, 50 für P, 240min Nachstellzeit für FBH - ist aber sicher eher ein Faustwert, kein physikalisches Gesetz)

            Die Taktzeit ist übrigens ggfs. stark von den Zeiten der thermoelektrischen Ventile abhängig - hier 2 Minuten zum öffnen/schliessen - unter 10% öffnung bei gegebenen 15min Zykluszeit passiert da z.B. bei meinen herzlich wenig aber das kommt eben darauf an.

            Eine gewisse Mindest-Fussbodentemp (je nach VL-Temp natürlich!) kann man auch mit z.B. einer Mindestöffnung von 15% erreichen (ersetze im Plugin alles <15(%) durch 15)
            In einer perfekten Welt müsste man auch nur die FB-Temp abhängig von der VL-Temp bei einer gewissen Mindestöffnung der Ventile - in etwa - einmalig bestimmen und käme vermutlich auf eine relativ genaue Wertkurve.. Aber naja, mir und dem WAF reichts, wenn der Fussboden einfach gefühlt warm ist..
            Ich hab ja selber leider kaum Estrichfühler und mache das daher in vielen Räumen so, weil es bei meinem Bau unseren Shop noch nicht gab.. Will sagen: messen und danach regeln ist immer besser als raten aber einen Estrichsensor nachrüsten ist ja quasi unmöglich, also muss eine pragmatische Lösung her.

            Das könnte man dann auch in o.g. PI-Regler-Plugin natürlich einbauen, macht IMHO Sinn; ist zwar ohne Estrich-Sensor "blind" aber funktioniert auch irgendwie halbwegs..

            Makki

            P.S.: Bei Relais statt SSR (Solid State Relais = verschleissfreie Halbleiter statt mechanisch per Spule betätigter Kontakte) bitte immer an die Lebensdauer denken! Alle Relais sterben irgendwann, da will man dann ggfs. die Taktzeit zur Schonung dieser drastisch erhöhen. Was aber wohl dann auf die Präzision des Reglers geht, also muss man sich entscheiden, ich würde für Heizkreise SSR nehmen, weil ich schlicht keine Lust habe alle paar Jahre Aktoren/Relais zu tauschen..
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              #7
              Ja es scheint auf einen PI Regler raus zu laufen. Das Verhalten eines PI Reglers kenne ich konnte es aus mir zur Zeit nicht ersichtlichen Gründen in Verbindung bringen.
              Grosses Problem:
              Wie soll ich den Ventilen eine Öffnung von 10% beibringen? Ohne Heizungsaktor?
              Meine gehen nur auf und zu und brauchen geschlagene 3min 15sek dafür.
              Gibt es stellantriebe die sich auf %werte einstellen lassen, oder nur über heizungsaktoren?

              Gruß

              Edit: hab mir ein paar Datenblätter angesehen aber ich werd nicht schlau, kann ich mit heizungsaktoren ganz normale thermoelektrische Ventile auf einen bestimmten % wert ansteuern?

              Kommentar


                #8
                Spontan würde/werde ich dafür einfach ein zweites, sep. Plugin machen, das eine Stellgrösse von 0-100% einfach in einen PWM-Zyklus mit 0/1 umsetzt.
                (Ich selbst habe das Thema - wenn man keinen Aktor hat der PWM umsetzt - ja mit vielen dummen Fragen, wenn man im Forum vor ca. 2-3J sucht, schonmal unterfüttert und selbst den HS-Baustein dazu - genau deswegen - gemacht )

                Meine gehen nur auf und zu und brauchen geschlagene 3min 15sek dafür.
                Klar, das ist nomal.. Aber wenn es bei 15m Taktzeit 10% offen ist sind das (falls linear) bei 10% eben 10% offen.. Wiegesagt, bei meinen passiert da unter 15% garnichts aber das kann man mit der Taktzeit ja steuern.

                Gibt es stellantriebe die sich auf %werte einstellen lassen, oder nur über heizungsaktoren?
                Klar gibt es die, KNX-Stellantriebe, motorische (=hört man aber deutlich!), nicht thermoelektrische.
                Aber s.o.: das kann man auch so lösen, das ist IMHO eher einfache Logik

                Makki
                EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                -> Bitte KEINE PNs!

                Kommentar


                  #9
                  Zitat von vlamers Beitrag anzeigen
                  Wie soll ich den Ventilen eine Öffnung von 10% beibringen? Ohne Heizungsaktor?
                  2 Möglichkeiten:
                  1. Motorischer Stelltrieb (die für zig €/Stück) - der stellt den Wert direkt ein. Fertig - aber unnütz
                  2. Thermischer Stelltrieb (wenige € / Stück) + Heizungsaktor (notfalls Schaltaktor) - der Wert wird nie direkt eingestellt. Sondern immer nur im zeitlichen Mittel, was dem % des PWMs entspricht

                  Zitat von vlamers Beitrag anzeigen
                  Meine gehen nur auf und zu und brauchen geschlagene 3min 15sek dafür.
                  Normal - und deswegen die PWM-Zeit nicht zu kurz machen!
                  Zitat von vlamers Beitrag anzeigen
                  Edit: hab mir ein paar Datenblätter angesehen aber ich werd nicht schlau, kann ich mit heizungsaktoren ganz normale thermoelektrische Ventile auf einen bestimmten % wert ansteuern?
                  Ja. Aber nur im zeitlichen Mittel. Und nie als mechanische Position.

                  Durch die gigantischen Trägheiten bei Heizungssystemen reicht die PWM Ansteuerung aber locker aus!
                  TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                  Kommentar


                    #10
                    1. Thermischer Stelltrieb (wenige € / Stück) + Heizungsaktor (notfalls Schaltaktor) - der Wert wird nie direkt eingestellt. Sondern immer nur im zeitlichen Mittel, was dem % des PWMs entspricht
                    Da war die Unklarheit!
                    Mich hat das gewundert das die auf % angefahren werden können, aber im Zeitlichen Mittel ist es klar. Stellantriebe um die 130,- mindestens das stück ist nicht ganz billig

                    Ne andere Frage auf das Thema: Das PI Regler Plugin für das WG arbeitet mit 1byte werten soweit ich das auf die schnelle Lesen konnte. Wie kann ich einen normalen Aktor damit betreiben?? Oder nur Heizungsaktoren?
                    Der Aktor wird bis nächsten Winter ausgetauscht, nur für die Übergangszeit jetzt hätte ich das noch gerne getetet

                    Gruß

                    Kommentar


                      #11
                      Zitat von vlamers Beitrag anzeigen
                      Ne andere Frage auf das Thema: Das PI Regler Plugin für das WG arbeitet mit 1byte werten soweit ich das auf die schnelle Lesen konnte. Wie kann ich einen normalen Aktor damit betreiben?? Oder nur Heizungsaktoren?
                      Ein Heizungsaktor kann selbstständig die PWM aus dem Byte erzeugen. Ein paar Schaltaktoren ggf. auch.

                      Und wenn nicht, dann schreib einfach ein Plugin, das genau das macht.
                      TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                      Kommentar


                        #12
                        Einfach
                        Kenne noch nicht mal die Befehle aber ich werde es mal versuchen.
                        Ich versuche jetzt mal das schon vorhandene PI - Plugin zu verstehen, und dann versuch ichs für schaltaktoren.

                        Danke

                        Gruß Volker

                        Edit:

                        Wenn ich nicht ganz falsch liege, müsst ich nur die Ventil stellung aus dem gegebenen PI-Plugin interpretieren? Also: wenn 20% auf dann auf die Zeit umrechnen die ich fahren muss?
                        ich müsste in Perl bei 0 zum lernen Anfangen. Das Umrechnen könnte gerade noch funktionieren.

                        Kommentar


                          #13
                          Erstmal: fast alle aktuellen Aktoren (und sicher alle Heizungsaktoren) können das (PWM-Wert als 1 Byte) sowieso..

                          Für den Rest (u.a. meine eigene ärmliche Konstruktion mitm UK/S 32.1) sollte ich mich die nächsten Tage mal motivieren können, ein Plugin zu schreiben (ich hab das AFAIR schonmal aber wohl nicht veröffentlicht )

                          Perl muss man dafür nicht wirklich können (kann ich ja auch nicht , Sprachliche details sind am Ende des Tages eher feinheiten; es geht eher um das verstehen der internen Abläufe..)

                          Makki
                          EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                          -> Bitte KEINE PNs!

                          Kommentar


                            #14
                            WG Plugin als Heizungsaktor

                            Zitat von makki Beitrag anzeigen
                            Erstmal: fast alle aktuellen Aktoren (und sicher alle Heizungsaktoren) können das (PWM-Wert als 1 Byte) sowieso..

                            Für den Rest (u.a. meine eigene ärmliche Konstruktion mitm UK/S 32.1) sollte ich mich die nächsten Tage mal motivieren können, ein Plugin zu schreiben (ich hab das AFAIR schonmal aber wohl nicht veröffentlicht )

                            Perl muss man dafür nicht wirklich können (kann ich ja auch nicht , Sprachliche details sind am Ende des Tages eher feinheiten; es geht eher um das verstehen der internen Abläufe..)

                            Makki

                            Hallo Makki, hast Du schon mal über das Plugin nachdedacht / veröffentlicht ?

                            Hans

                            Kommentar


                              #15
                              1Byte -&gt; PWM 1Bit

                              Ist fast fertig, funktioniert, aber ist noch "leicht dämlich" - spätere Leser für eine resourcenschonendere Variante bitte im SVN nachsehen - ich packe das die Tage dann rein.
                              So sinnvoll eher nur für Taktzeiten > 3-5 Minuten..

                              Vorerst:
                              Code:
                              # Demo-Plugin PWM->1Bit
                              # V0.1 2011-07-02
                              
                              ### Definitionen 
                              ### Hier werden die Werte/Gruppenadressen definiert
                              my $pwm_value = "14/7/63";       # Gruppenadresse für Stellantrieb 8bit/1Byte DPT5.001
                              my $ventil_ga_1bit = "14/5/65";  # Gruppenadresse für Stellantrieb 1bit
                              my $taktzeit = 5;               # Taktzeit in Minuten für schaltenden Stellantrieb-Regler
                              my $resolution = 5;             # Basis-Aufloesung in %
                              ### Ende Definitionen
                              
                              # Eigenen Aufruf-Zyklus setzen
                              $plugin_info{$plugname.'_cycle'} = $taktzeit*60/(100/$resolution); # 5% resolution
                              
                              if ($msg{'apci'} eq "A_GroupValue_Write" and $msg{'dst'} eq $pwm_value) {
                                  #sollwert vom bus
                                   if (!defined $msg{'value'}) { 
                                      # falls GA/DPT nicht importiert
                                      $msg{'value'} = decode_dpt5($msg{'data'}); 
                                   } 
                                   $plugin_info{$plugname.'_pwm_value'} = $msg{'value'};
                              } else {
                                  #zyklischer aufruf
                                  $plugin_subscribe{$pwm_value}{$plugname} = 1;
                              }
                              
                              my ($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek, $dayOfYear, $daylightSavings) = localtime(time);
                              
                              my $calc = $minute % $taktzeit;
                              #my $wakeup; # wakeup intelligent
                              if ($calc/$taktzeit*100<$plugin_info{$plugname.'_pwm_value'}) {
                                  knx_write($ventil_ga_1bit,1,1); # Ventilstellung auf den Bus schreiben
                                  return; # "An $calc";
                              } else {
                                  knx_write($ventil_ga_1bit,0,1); # Ventilstellung auf den Bus schreiben
                                  return; # "Aus $calc";
                              }
                              EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                              -> Bitte KEINE PNs!

                              Kommentar

                              Lädt...
                              X