Helios KWL (easycontrols) über modbus tcp einbinden

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • uli
    LoxBus Spammer
    • 30.08.2015
    • 224

    #61
    Hallo Jan,

    ich habe mal wieder einen speziellen Wunsch. Ich möchte die Steuerung mit Hilfe eines CO2-Sensors anpassen. So würde ich die KWL gerne auf Stufe 0 oder 1 laufen lassen, bis ein gewisser CO2-Wert überschritten wurde. Dann soll sich die Stufe automatisch um 1 erhöhen.

    Nun habe ich einfach den Addierer von der Normalstufe durch einen Viereraddierer ersetzt und addiere 1, sobald der Grenzwert überschritten wurde. Leider wird aber dadurch indirekt auch die Normalstufe angehoben, was zu einer Art Schleife führt und die Lüfterstufe dadurch immer bei 4 landet.

    Wie würdest Du so etwas umsetzen?

    Viele Grüße...

    Kommentar

    • Jan W.
      Lox Guru
      • 30.08.2015
      • 1245

      #62
      Hallo Uli,

      mmm, ich würde einen weiteren Eingang im Pico C Skript für "Lüftung erhöhen", "Intensivlüften" oder wie man das nennen möchte (Wert 0 oder 1) ergänzen. Der würde analog zum Stoßlüften arbeiten (Vorrang hat Stoßlüften, denn dann ist die Stufe ja bereits 4), aber die Lüfterstufe nur um 1 erhöhen, statt einen festen Wert einzustellen.

      Hier mal ein Entwurf, den ich aber nicht getestet oder überhaupt auf dem Miniserver installiert habe, sondern nur mal so im Editor erstellt habe. Die entsprechende Stelle im Skript, die ausgetauscht werden muss, ist ziemlich einfach zu finden:

      am Anfang die Variable definieren, ggf. Eingang AI6 beschreiben:
      int intensivlueften;
      ...

      // Lüfterstufe für Normalbetrieb lesen (Wertebereich 0...4)
      luefterStufe = (int)getinput(1);

      stosslueften = (int)getinput(2);
      intensivlueften = (int)getinput(5);
      // wenn Stoßlüften = 1, dann Lüfterstufe 4 einstellen
      // Änderungen durch andere Quellen werden während des Stoßlüftens ignoriert
      if (stosslueften == 1) {
      heliosWriteInt("v00102", 4);
      // sicherstellen, dass am Ende des Stoßlüftens wieder der vorherige Wert eingestellt wird
      luefterStufeLast = 5; // stellt sicher, dass luefterStufe != luefterStufeLast nach Ende vom Stoßlüften
      setoutput(10, luefterStufe); // in Loxone eingestellte Lüfterstufe für Normalbetrieb 1:1 wieder zurückgeben
      setoutput(11, 4); // akutelle Lüfterstufe
      } else {
      // wenn CO2 Sensor eine Verschlechterung der Luftqualität feststellt, dann Lüfterstufe erhöhen
      if (intensivlueften == 1) {
      heliosWriteInt("v00102", luefterstufe+1);
      // sicherstellen, dass am Ende des Intensivlüftens wieder der vorherige Wert eingestellt wird
      luefterStufeLast = 5; // stellt sicher, dass luefterStufe != luefterStufeLast nach Ende vom Intensivlüften
      setoutput(10, luefterStufe); // in Loxone eingestellte Lüfterstufe für Normalbetrieb 1:1 wieder zurückgeben
      setoutput(11, luefterstufe+1); // akutelle Lüfterstufe
      } else {
      // Normalbetrieb (kein Stoßlüften, kein Intensivlüften) - Lüfterstufe setzen bzw. lesen (Wertebereich 0...4)
      // wenn Lüfterstufe in Loxone geändert wurde bzw. Stoßlüften beendet wird, dann schreiben
      if (luefterStufe != luefterStufeLast) {
      heliosWriteInt("v00102", luefterStufe);
      } else {
      // sonst auslesen, möglicherweise von easycontrols geändert worden
      if (heliosReadInt(&intValue, "v00102", 1))
      luefterStufe = intValue;
      }
      luefterStufeLast = luefterStufe;
      setoutput(10, luefterStufe);
      setoutput(11, luefterStufe);
      }
      }
      sleep(50);

      Berichte mal, ob's funktioniert.

      Gruß Jan
      Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
      Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
      Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
      Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
      Node-RED: IKEA Tradfri

      Kommentar

      • uli
        LoxBus Spammer
        • 30.08.2015
        • 224

        #63
        Hallo Jan,

        Genial! Das Skript läuft bisher einwandfrei... (Falls Du das offiziell mit aufnehmen willst, die Variable luefterStufe war zwei mal mit kleinem s geschrieben)

        Danke Dir für Deine Mühe!!!

        Kommentar

        • uli
          LoxBus Spammer
          • 30.08.2015
          • 224

          #64
          Hallo,

          habe gerade gesehen, dass es für unsere Helios eine neue Firmware gibt.



          Hat diese schon jemand installiert?

          Kommentar

          • Fuxi
            LoxBus Spammer
            • 26.08.2015
            • 255

            #65
            Hallo!

            Seit der Beta Config Version 9. 0.8.16 wird das PicoC Programm automatisch deaktiviert, weil es laut Loxone "Fehlerhaft ist". Kann das noch jemand bestätigen? Bzw. gibts irgendwie einen Fix?

            Grüße

            Kommentar

            • Fuxi
              LoxBus Spammer
              • 26.08.2015
              • 255

              #66
              Zitat von uli
              Hallo,

              habe gerade gesehen, dass es für unsere Helios eine neue Firmware gibt.



              Hat diese schon jemand installiert?
              Update wurde automatisch gemacht.Das einzige was ich bis jetzt feststellen konnte ist, dass wenn ein Stromausfall war früher, dann musste ich die
              Helios nochmal zusätzlich kurz vom Strom nehmen, dann funktionierte diese wieder erst.
              Seit dem Update wäre mir das Verhalten nicht mehr aufgefallen.

              Kommentar

              • uli
                LoxBus Spammer
                • 30.08.2015
                • 224

                #67
                Habe das Update auch eingespielt und bisher keine Probleme feststellen können. Zu der Beta-Problematik kann ich nichts sagen, da ich lieber auf die Release-Version warte.

                Hast Du mal probiert den Programmcode als Text neu einzufügen? Eventuell ging ja nur etwas bei der Konvertierung verloren, da reicht ja manchmal ein Satzzeichen. Ansonsten mach doch einfach mal ein Ticket bei Loxone auf.

                Kommentar

                • Fuxi
                  LoxBus Spammer
                  • 26.08.2015
                  • 255

                  #68
                  Ja, das könnte ich probieren.

                  Loxone weiss schon bescheid, die sagen das PicoC Programm ist die Ursache für MiniserverCrashes bei mir. Daher wurde es automat. deaktiviert. Diese Funktion gibt es seit 9.0.8.16.

                  Kommentar

                  • Fuxi
                    LoxBus Spammer
                    • 26.08.2015
                    • 255

                    #69
                    Zitat von uli
                    Habe das Update auch eingespielt und bisher keine Probleme feststellen können. Zu der Beta-Problematik kann ich nichts sagen, da ich lieber auf die Release-Version warte.

                    Hast Du mal probiert den Programmcode als Text neu einzufügen? Eventuell ging ja nur etwas bei der Konvertierung verloren, da reicht ja manchmal ein Satzzeichen. Ansonsten mach doch einfach mal ein Ticket bei Loxone auf.
                    Danke uli für den Tipp ! Es funktioniert jetzt wieder nachdem ich den Programmcode neu eingespielt habe. Auf das wär ich nie gekommen !

                    Kommentar

                    • Fuxi
                      LoxBus Spammer
                      • 26.08.2015
                      • 255

                      #70

                      Edit:

                      Naja, es funktioniert bis zu einem Neustart bzw. Programmänderung, danach wird es wieder deaktiviert.
                      Dann muss man das Programm erneut in den Baustein kopieren und speichern.

                      Kommentar


                      • uli
                        uli kommentierte
                        Kommentar bearbeiten
                        So ein Mist... Dann weiß ich leider auch nicht weiter. Sag mal Bescheid, was beim Support rauskam.
                    • Matti
                      LoxBus Spammer
                      • 25.08.2015
                      • 265

                      #71
                      Hallo Zusammen,

                      kann das noch jemand bestätigen, dass es mit dem PicoC Programm in Verbindung mit der neuen Config Probleme gibt,
                      bzw. gibt es bei Dir Fuxi schon was neues zu berichten?
                      Grüße

                      Matthias
                      gemischte KNX- und Loxoneinstallation im EFH Neubau

                      Kommentar

                      • Fuxi
                        LoxBus Spammer
                        • 26.08.2015
                        • 255

                        #72
                        Loxone sagt Programm macht Fehler.

                        Geht bei mir nur mit der Abhilfe wie oben beschrieben. Obwohl seit der neuen Config 9.0.8.27 gibts bis jetzt nichts. Kann aber nur Zufall sein.

                        Kommentar

                        • Jan W.
                          Lox Guru
                          • 30.08.2015
                          • 1245

                          #73
                          Hallo v9-User,

                          habt Ihr irgendwelche Meldungen im Log, ähnlich zu https://www.loxforum.com/forum/germa...624#post112624

                          Mit ein paar Hinweisen kann ich den Fehler vielleicht beheben.

                          Gruß Jan
                          Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
                          Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
                          Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
                          Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
                          Node-RED: IKEA Tradfri

                          Kommentar

                          • Fuxi
                            LoxBus Spammer
                            • 26.08.2015
                            • 255

                            #74
                            Was ähnliches finde ich nicht, aber nur solche Einträge mit diversen v0xxxx Nummern:
                            2017-08-12 17:02:04.299;modbusTCP request for v00348 failed (0 bytes read) !

                            Kommentar

                            • Jan W.
                              Lox Guru
                              • 30.08.2015
                              • 1245

                              #75
                              Die Meldung "modbusTCP request for v00348 failed (0 bytes read)" wird erzeugt, wenn innerhalb von 500ms die Helios Lüftung keinen Wert geliefert hat. Diese Meldung kommt bei mir auch gelegentlich, aber stellt eigentlich kein Problem dar und war nur als Info gedacht. Man könnte evtl. generell länger auf eine Antwort warten oder in so einem Fall eine extra Wartezeit einlegen.

                              Andere Meldungen sind "modbusTCP variable %s is not %s" und "modbusTCP answer too short, only %i Bytes". Erstere wird gesendet, wenn eine andere Variable zurückgeliefert wird, als die, die abgefragt wurde und letztere, wenn die Antwort zu kurz war und nicht "v0XXXX=y" (Variable gleich Wert mit abschließendem 0-Byte) enthalten kann. In so einem Fall wird keine Variable verändert und das Programm macht mit der nächsten Variablen weiter.

                              Die oben aufgeführten Meldungen werden durch das Pico-C Skript ausgegeben und sind informativ. Ein Fehler müsste ähnlich wie in dem oben verlinkten Post zum Beta-Forum aussehen. Provozieren könnte man so eine Fehlermeldung z.B. mit

                              Code:
                              printf("Helios KWL Modbus TCP start"); // an dieser Stelle die nachfolgende Zeile ergänzen
                              modbusTCP[30]=0; // erzeugt einen Fehler, da das Array nur von 0..29 definiert wurde (insgesamt 30 Byte).
                              Dann müsste ein entsprechender Eintrag im Log zu finden sein. Wahrscheinlich würde so ein Eintrag so aussehen:
                              Code:
                              <Datum> <Uhrzeit>;Helios KWL Modbus TCP start
                              <Datum> <Uhrzeit>; modbusTCP[30]=0; // erzeugt...
                              ^
                              Helios KWL:67:13 Index out of Array (4)  //die ersten Zahlen geben die Zeile und Spalte des Fehlers im Skript an.
                              Wenn der oben beschriebene Befehl so einen Fehler auslöst, der ein Skript deaktiviert, dann müsste man eigentlich ebenfalls ein Log Eintrag finden, wenn das eigentliche Skript so einen Fehler auslöst. Ich kann leider nicht sagen, welche "Ereignisse" ein Skript deaktivieren, weil dazu nichts von Loxone dokumentiert worden ist - zumindest konnte ich nichts finden. Konnte der Support hier vielleicht helfen?

                              Ein kleiner Punkt ist mir bei der Durchsicht des Codes aufgefallen, den man prophylaktisch noch verbessern könnte: in die Rückgabe des TCP Datenpaketes könnte man ein abschließendes Null-Byte am Ende des zurückgegebenen Strings eingefügen.
                              Code:
                                  // TCP Datenpaket empfangen, max. 500 msec auf Antwort warten
                                  nLen = stream_read(stream, szBuffer, sizeof(szBuffer) - 1, 500);
                                  szBuffer[nLen]=0;  // diese Zeile ergänzen
                              Gruß Jan
                              Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
                              Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
                              Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
                              Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
                              Node-RED: IKEA Tradfri

                              Kommentar


                              • uli
                                uli kommentierte
                                Kommentar bearbeiten
                                Diese Zeile kommt zwei Mal vor. Wo soll ergänzt werden? Beide Male?

                              • Jan W.
                                Jan W. kommentierte
                                Kommentar bearbeiten
                                Die Zeile braucht nur in modbusTCPreadVar ergänzt werden, da die Variable szBuffer nur in dieser Funktion ausgewertet wird. Es schadet aber auch nicht, wenn die Zeile in beiden Funktionen eingefügt wird.
                            Lädt...