Ankündigung

Einklappen
Keine Ankündigung bisher.

Anlagenstatus einer Alpha Innotec Wärmepumpe (Luxtronik 1.0)

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

    Zitat von Matthias Beitrag anzeigen
    Somit könnt Ihr es ja doch insofern nachstellen, indem Ihr die Ausgabe der Wärmepumpe (den String aus Posting https://knx-user-forum.de/372581-post105.html) in eine Variable (Buffer) schreibt und dann mal das Processing laufen lasst und die Performance beobachtet. Oder?
    Das per se funktioniert problemlos. War auch nicht anders zu erwarten, da ja Jambalas Makro bei ihm (mit echter Anlage) problemlos funktioniert.
    Daher muss man Stück für Stück den Code unter Realbedingungen entschlacken, um so den Übeltäter zu finden...
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      Zitat von NetFritz Beitrag anzeigen
      Hallo

      Aber auch eine AI WP mit der Luxtronic 1.0
      Ich frage die WP alle 30sec. ab.
      Ich würde nie auf die Idee kommen sie alle 2mS abzufragen.
      Das macht die Luxtronic auch garnicht mit.

      Versuch es einfach mal mit 30sec.

      Gruß NetFritz
      Habe auch eine AI mit Luxtronik 1. Ich frage sämtliche Daten minütlich ab und pumpe das Zeugs in eine Mysql-Datenbank. Aus den Daten generiere ich dann u.a. Langzeitcharts über das Verhalten der Wärmepumpe.
      Minütlich abfragen reicht völlig aus. Hab schon länger nicht mehr mit rumgespielt, aber ich glaube, dass es bereits kritisch wird, wenn die Zeit zwischen 2 aufeinanderfolgenden Abfragen unter 5 Sek sinkt.

      Gruß,
      thoern

      Kommentar


        Zitat von enertegus Beitrag anzeigen
        Das per se funktioniert problemlos. War auch nicht anders zu erwarten, da ja Jambalas Makro bei ihm (mit echter Anlage) problemlos funktioniert.
        Daher muss man Stück für Stück den Code unter Realbedingungen entschlacken, um so den Übeltäter zu finden...
        Hallo Michael,

        danke für den Test. Dann muss wohl doch mein EibPC kaputt sein.
        Was will man hier noch entschlacken?

        [highlight=epc]

        [Performance]
        // Performance Einstellungen
        20
        70
        15

        [RS232]
        // RS232-Konfiguration: Baudrate, Datenbits, Stoppbits, Parität, Flusssteuerung
        57600
        8
        1
        0
        2

        [MacroLibs]
        //Makro-Bibliotheken
        ./MakroLibs/Alpha_Innotec_WP_v2_DEBUG.lib

        [Macros]
        Luxtronik1(1,AUS)

        [ETS-ESF]
        // Die aus der ETS3 exportierte ESF-Datei
        ./Exports/Haus_Debug.esf

        [WebServer]

        [InitGA]


        [EibPC]
        myDEBUG=EIN
        if myDEBUG==EIN and cycle(0,1) then write("Zeit-15/1/0",settime()) endif


        // Reaktion auf Waermepumpe

        if delay(change(WP_Temp_Aussentemperatur),1000u64) or delay(change(WP_Temp_Warmwasser_Ist_Temperatur),10 00u64) then {
        write("LCD_Beleuchtung_BadOG-1/6/7",EIN);
        write("Text_Bad_OG-1/6/6",convert(WP_Temp_Aussentemperatur,$$c14)+$ / $c14+convert(WP_Temp_Warmwasser_Ist_Temperatur,$$c 14))
        } endif
        [/highlight]

        Im Test hat bei Euch der EibPC sekündlich Mails geschickt? Oder wie habt Ihr das mit der Verzögerung gemessen?

        Grüße
        Matthias

        Kommentar


          Zitat von thoern Beitrag anzeigen
          Habe auch eine AI mit Luxtronik 1. Ich frage sämtliche Daten minütlich ab und pumpe das Zeugs in eine Mysql-Datenbank. Aus den Daten generiere ich dann u.a. Langzeitcharts über das Verhalten der Wärmepumpe.
          Minütlich abfragen reicht völlig aus. Hab schon länger nicht mehr mit rumgespielt, aber ich glaube, dass es bereits kritisch wird, wenn die Zeit zwischen 2 aufeinanderfolgenden Abfragen unter 5 Sek sinkt.

          Gruß,
          thoern
          Hallo Thoern,

          mich würde mal interessieren: wie hoch ist denn der Load Deines EibPCs ?

          Grüße
          Matthias

          Kommentar


            Zitat von Matthias Beitrag anzeigen
            Hallo Michael,
            Im Test hat bei Euch der EibPC sekündlich Mails geschickt? Oder wie habt Ihr das mit der Verzögerung gemessen?
            Die Verarbeitungsdauer kann man wie auf S89ff beschrieben im EibPC messen. Wenn man einen String auf die Verarbeitung gibt, ist das jedenfalls konstant. Das deckt sich wie gesagt mit den Aussagen von Jambala.

            Ggf. ist es auch ein Problem, das ab und an die WP doch nicht die Pakete in der Form ausgibt, wie vorausgesetzt oder eine Pause dazwischen einfügt (siehe auch Thread zum IPExtender).

            Was spricht dagegen, die WP nur alle 5 Minuten abzufragen? Vielleicht ist sie dann nicht so störrisch? Oder hattest Du das schon getestet?
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              Zitat von enertegus Beitrag anzeigen
              Die Verarbeitungsdauer kann man wie auf S89ff beschrieben im EibPC messen. Wenn man einen String auf die Verarbeitung gibt, ist das jedenfalls konstant. Das deckt sich wie gesagt mit den Aussagen von Jambala.

              Ggf. ist es auch ein Problem, das ab und an die WP doch nicht die Pakete in der Form ausgibt, wie vorausgesetzt oder eine Pause dazwischen einfügt (siehe auch Thread zum IPExtender).

              Was spricht dagegen, die WP nur alle 5 Minuten abzufragen? Vielleicht ist sie dann nicht so störrisch? Oder hattest Du das schon getestet?
              Ich hatte es über längeren Zeitraum auf 5 Minuten.
              Nur kam es in dem Zeitraum immer während des Polling-Zyklus zu Verzögerungen (beim Licht, wenn der EibPC auf eine GA reagieren sollte um z.B. ein zweites Licht zu schalten, oder bei Bedieung CommandFusion [intermitted conn. loss], oder es wurden Aufrufe von htime() vergessen/ausgelassen).

              Kann ich Euren Test-Code bekommen und eine kurze Anleitung was Ihr wie gemacht habt?
              Würde den gleichen Test gern hier machen und dann vergleichen wir mal die Zeiten..

              Grüße
              Matthias

              Kommentar


                Zitat von enertegus Beitrag anzeigen
                Die Verarbeitungsdauer kann man wie auf S89ff beschrieben im EibPC messen. Wenn man einen String auf die Verarbeitung gibt, ist das jedenfalls konstant. Das deckt sich wie gesagt mit den Aussagen von Jambala.
                Wie stellst du das denn genau nach?

                Jambala hat noch nichts zu seiner tatsächlichen Auslastung gesagt.

                Kannst du bitte das Programm von S89ff noch fixen und posten, damit man einen verlässlichen Wert erhält?

                Ggf. ist es auch ein Problem, das ab und an die WP doch nicht die Pakete in der Form ausgibt, wie vorausgesetzt oder eine Pause dazwischen einfügt (siehe auch Thread zum IPExtender).
                Das habe ich bereits getestet und mit einem Terminalprogramm festgestellt, dass immer alle Antworten korrekt kommen, der eibPC aber regelmäßig nicht alle Daten bekommt und mit Jambalas Makro so regelmäßig Temperaturen mit 0°C berechnet.

                Was spricht dagegen, die WP nur alle 5 Minuten abzufragen? Vielleicht ist sie dann nicht so störrisch? Oder hattest Du das schon getestet?
                Nichts, genau das habe ich gemacht und gerade hier fiel es mit der Sonnenstandsberechnung zusammen. Dies führte bei mir dazu, dass regelmäßig die komplette CommandFusion Kommunikation stehen blieb, für ca. 30 sec! WP Makro raus und alles war wieder ok! Ein echtes Problem war übrigens, dass die Rollos teilweise nicht mehr gefahren sind, also diese Events völlig verschluckt wurden!

                Ansonsten habe ich noch hier (klick) gepostet. Auch wenn dies scheinbar nicht zum Thema passt, würde mich eine Antwort interessieren!
                BR
                Marc

                Kommentar


                  Meine Auslastung ist total unkritisch obwohl ich die aufwändigere IP Abfrage mit deutlich höherem Parsing Teil der Luxtronik 2 verwende. Zusätzlich sind dort die Daten noch im Big Endian Format kodiert und müssen alle einzeln konvertiert werden.

                  Ich habe weder bei der Luxtronik 1 noch 2 jemals irgendwelche Verarbeitungsverzögerungen erlebt (in >2 Jahren der Benutzung), obwohl wie schon geschrieben eine große Anzahl weiterer Makros parallel läuft (1-Wire, Weather Underground usw.).

                  Wenn ich in den nächsten Tagen einmal Zeit finde, werde ich den Luxtronik 1 Code einmal in 2-3 verschiedenen Ausbaustufen als Test-Code uploaden. Damit können dann einmal vergleichbare Situationen bei allen betroffenen Usern geschaffen werden.

                  Sollte dies alles zu keinem Ergebnis führen, könnte ich Enertex einmal eine Original Luxtronik 1 Steuerung zur Verfügung stellen. Diese liefert dann ohne WP keinen realen Werte, aber die Kommunikation zwischen Steuerung und EibPC bzw. die nachgelagerte Verarbeitung kann damit problemlos geprüft werden.

                  Ich glaube eher an eine vollkommen andere Ursache, als die eigentliche Verarbeitung der Daten.

                  Kommentar


                    Zitat von Jambala Beitrag anzeigen
                    Ich glaube eher an eine vollkommen andere Ursache, als die eigentliche Verarbeitung der Daten.
                    Herausfinden wird man das nur, wenn man auch will und die notwendigen Hilfsmittel hat/erhält. "Bei mir/dir/ihm geht's" hilft leider nicht.

                    Gerade für solche Probleme wäre eine "eingebaute" Laufzeitanalyse wirklich hilfreich, analog einer "CPU Auslastungsanzeige", die man nicht erst "einbauen" und um eine vernünftige Darstellung erweitern muss.

                    Oder man erweitert das Beispiel aus der Anleitung zu einem "Komplettpaket".

                    Wenn dann jeder dieses "Tool" einsetzt, könnte man sehr schnell sehen, wie stark der eibPC wirklich beschäftigt ist.
                    BR
                    Marc

                    Kommentar


                      Damit habe ich getestet:
                      [highlight=epc]
                      // Berechnet die minimale und maximale Zyklusdauer
                      // der Verarbeitung. Dabei ist die Performance-Angabe im EibStudio immer
                      // als Offset dabei.

                      Max=1000000000000000u64
                      Restzeit=0u64
                      StoppZeit=Max
                      MaxZyklusZeit=0u64
                      MinZyklusZeit=Max
                      // Im EibStudio ggf. geändert, Defaultwert ist 20ms
                      PerformanceZeit=20u64

                      // Die erste Zyklus kann etwas länger dauern ...
                      if afterc(after(systemstart(),10000u64), Max, Restzeit) then {
                      StoppZeit=0u64;
                      } endif
                      if change(Restzeit) then {
                      MaxZyklusZeit=max(StoppZeit-Restzeit-PerformanceZeit,MaxZyklusZeit);
                      MinZyklusZeit=min(StoppZeit-Restzeit -PerformanceZeit,MinZyklusZeit);
                      StoppZeit=Restzeit;
                      } endif
                      NewLIne=$ $;
                      if systemstart() then stringset(NewLIne,13,0u16) endif
                      Test=AUS
                      if Test then {
                      Buffer=$1800;8$+NewLIne+
                      $1100;12;520;477;312;313;10;486;500;120;58;326;341 ; 0$+NewLIne+
                      $1200;6;0;1;0;1;1;0+$+NewLIne+
                      $1300;13;0;0;0;0;0;0;0;0;0;0;0;0;0$+NewLIne+
                      $1400;29; 0;0;0; 0;0;0; 0;0;0; 0; 0;0;0; 0;0;0; 0;56;3; 0;0;0; 10;1;37; 0;0;0; 0;0;0+$+NewLIne+
                      $1450;9;3628317;2161;1678;3121663;2162;1443;372727 ; 0;6230122$+NewLIne+
                      $1500;5$+NewLIne+
                      $1500;1500;6;709;22;11;8;11;54$+NewLIne+
                      $1500;1501;6;715;22;11;8;12;4$+NewLIne+
                      $1500;1502;6;709;22;11;8;12;4$+NewLIne+
                      $1500;1503;6;711;11;12;8;20;24$+NewLIne+
                      $1500;1504;6;708;13;12;8;14;9$+NewLIne+
                      $1500;5$+NewLIne+
                      $1600;5$+NewLIne+
                      $1600;1600;6;010;19;12,8;12;32$+NewLIne+
                      $1600;1601;6;010;19;12;8;14;54$+NewLIne+
                      $1600;1602;6;010;19;12;8;17;10$+NewLIne+
                      $1600;1603;6;010;19;12;8;19;31$+NewLIne+
                      $1600;1604;6;010;19;12;8;21;14$+NewLIne+
                      $1600;5$+NewLIne+
                      $1700;12;2; V2.33; 1; 5 ;19;12;8; 10;42;12; 0; 1$+NewLIne+
                      $1800;8$
                      }endif

                      [/highlight]
                      Da kommt es schon mal zu einem Peak in Deinem Orginalprogramm von 600ms, aber nur wenn sich alles auf einmal ändert.v.a. die zig Fließkommaoperationen werden da so einiges an Rechenzeit kosten.

                      Deine Delays waren ja nicht so wirksam, da Du das nicht wirklich entzerrt hattest.

                      Ich habe das eben mit
                      if delay(change(Data_Temperatur),Data_Delay*2u64) and Data_Temperatur!=$$ then {
                      } ...
                      gecodet.
                      Hat sicher etwas gebracht (Data_Delay war 500u64).

                      Ich habe die delay wie folgt realisiert:

                      [highlight=epc]// Parsen der einzelnen Temperaturwerte
                      if delay(change(Data_Temperatur),Data_Delay*2u64) and Data_Temperatur!=$$ then {
                      }... endif
                      [/highlight]
                      Der Faktor (hier 2) wurde hochgezählt von if zu if.

                      Mit
                      [highlight=epc]
                      if delay(change(Data_Temperatur),Data_Delay*2u64) and Data_Temperatur!=$$ then {
                      write('1/6/6'c14,$2:$c14+convert(convert(MaxZyklusZeit,0f16), $$c14));
                      MaxZyklusZeit=0u64;
                      ...
                      } endif
                      [/highlight]
                      kann man dann die max. Verarbeitungszeit bis zu dieser Anweisung evaluieren.
                      offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                      Enertex Produkte kaufen

                      Kommentar


                        Hi,
                        Zitat von Matthias Beitrag anzeigen
                        Hallo Thoern,

                        mich würde mal interessieren: wie hoch ist denn der Load Deines EibPCs ?

                        Grüße
                        Matthias
                        die Load ist quasi 0. Ich haben namlich keinen
                        Bei mir läuft das auf anderer Hardware.

                        Gruß,
                        thoern

                        Kommentar


                          Zitat von saft6luck Beitrag anzeigen
                          "Bei mir/dir/ihm geht's" hilft leider nicht.
                          Identische Hardware + identische Software führt in der Regel auch zu einem identischen Ergebnis.

                          Daher bin ich nicht überzeugt, dass hier auch wirklich identische Szenarien verglichen werden.

                          Kommentar


                            Zitat von Jambala Beitrag anzeigen
                            Identische Hardware + identische Software führt in der Regel auch zu einem identischen Ergebnis.

                            Daher bin ich nicht überzeugt, dass hier auch wirklich identische Szenarien verglichen werden.
                            KNX ist sicherlich unterschiedlich und bestimmt noch weiteres!
                            BR
                            Marc

                            Kommentar


                              Zitat von enertegus Beitrag anzeigen
                              Da kommt es schon mal zu einem Peak in Deinem Orginalprogramm von 600ms, aber nur wenn sich alles auf einmal ändert.v.a. die zig Fließkommaoperationen werden da so einiges an Rechenzeit kosten.
                              Das hätte ich auch erwartet, wobei die Verarbeitung durch das change() (wenn es denn so funktioniert: hast du jetzt schon auf meine 2. Frage geantwortet?) ja schon optimiert sein sollte.

                              Andererseits trat der Fehler bei mir explizit mit der Abfrage alle 5 Minuten auf und bei mir läuft CommandFusion mit über 1000 Joins auf 3 iPads.

                              Ich werde die nächsten Tage die Messung analog deiner durchführen.
                              BR
                              Marc

                              Kommentar


                                Zitat von saft6luck Beitrag anzeigen
                                KNX ist sicherlich unterschiedlich und bestimmt noch weiteres!
                                KNX und weiteres spielt hier erst einmal überhaupt keine Rolle.

                                Hier sorgt ja laut den bisherigen Aussagen die Auswertung der WP Daten für Performance Probleme im EibPC.

                                Um das Problem einzugrenzen darf nur die AI WP, der EibPC und das Luxtronik Makro zusammen mit drei Zeilen Code im Hauptprogramm im Spiel sein.

                                Wenn Ihr nicht so testet und weiterer Code im Spiel ist, können wir die Diskussion hier beenden. Den Fehler wird man so nicht mit vertretbarem Aufwand eingrenzen können.

                                Kommentar

                                Lädt...
                                X