bei mir lief das programm 5.4.1 eine Zeit lang sehr gut, aber als ich etwas verändert habe, ging es nicht mehr. alles schon versucht. läuft das pico C nicht mehr mit V10?
Helios KWL (easycontrols) über modbus tcp einbinden
Einklappen
X
-
-
Seit ich vor einigen Tagen meinen MS direkt von v8 auf v10 aktualisiert habe, tauchen bei mir ebenfalls die von anderen Anwendern geschilderten Probleme auf, dass das Programm deaktiviert wird. Ich habe für die technischen Details eine Seite in der Loxwiki erstellt: https://www.loxwiki.eu/display/LOX/D...fig+v9+und+v10
Wer mithelfen möchte, die Problemursache zu finden bzw. einzugrenzen, bitte hier weitere Hinweise posten. Möglicherweise treten die Probleme immer am Anfang des Pico-C Programmes auf. Daher habe ich testweise am Anfang mehrere Sicherheitsabfragen ergänzt. Weiß jemand, ob man irgendwie detailliertere Hinweise zum Problem bekommt oder wie die neue Funktion der Überprüfung von Pico C in v9 und v10 genau arbeitet? Wird das Pico C Programm dann sofort deaktiviert?
Bei mir trat das Problem auf, als ich eine neue Config in den MS geladen hatte. Dort hatte ich ein paar Änderungen gemacht, die nichts mit der Lüftung zu tun hatten. Es wäre jetzt etwas früh, hieraus weitere Schlüsse zu ziehen, aber vielleicht ging es ja anderen Anwendern genauso.
Temporär kann man das Problem beheben, indem man die ersten 3 Zeilen des Programms mit den von Loxone eingefügten Kommentaren wieder löscht. Das wurde zwar bereits von anderen erwähnt, aber vielleicht hat es ja der eine oder andere überlesen. Weitere Details sind in der Loxwiki.
Viele Grüße,
JanMiniserver 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 TradfriKommentar
-
Zur Info:
Loxone hat das PicoC Programm "Überprüft" und gesagt es sind keine Fehler enthalten. Aber ich wurde nicht schlau daraus, warum es trotzdem deaktiviert wurde und wird.Kommentar
-
Hast Du dazu vielleicht noch die Ticket-Nr? Oder kannst Du Loxone noch mal was zu dem Ticket fragen? Ich hatte gerade festgestellt, dass vor der "Disabled PicoC programm ..." Meldung immer eine "PRG Reboot 10.0.9.24" Meldung kommt. Hat Loxone irgendetwas gesagt, unter welchen Bedingungen ein Program deaktiviert wird? -
Nein, habe hierzu kein Ticket. Damals hat Loxone gesagt, dieses Programm ist der Grund für meine MS Crash. Darum wurde es deaktiviert. Warum konnte mir aber keiner sagen. Ist schon ein Jahr aus glaub ich.
Habe aber damals auch keine Crashes bemerkt. Irgendwie dubios das ganze.
-
-
Hallo zusammen,
ich habe mit v9 und v10 keinerlei Probleme!
Ich habe nun nochmal den Code im Miniserver mit der 5.4.1 vom Loxwiki mit Hilfe eines Textvergleichs analysiert, diese sind bis auf die IP-Adresse identisch.
Das einzige was mir einfallen würde ist, dass ihr mal ein anderes Programm zum Einfügen des Codes via Copy/Paste verwendet. Ich erinnere mich, dass Copy/Paste mit dem Programm Notepad2, welches ich normal als Notepad-Ersatz verwende, nicht funktionierte. Es wurde nur die erste Zeile eingefügt. Komischerweise ging es über einen Umweg mit Microsoft Word dann.
Es ist etwas weit hergeholt, aber nicht dass da irgendwo ein Zeichen ist, an dem er sich verschluckt.
Kommentar
-
Hallo Uli,
es ist ja sehr interessant, dass Du keine Probleme hast!
Wenn es mit dem Hineinkopieren des Code und ungültigen Zeichen zusammenhängt, dann müsste eigentlich immer und reproduzierbar ein Fehler auftreten.
Ich kenne leider die „Verbesserungen“ in v9 und v10 nicht, aber ich vermute, dass hier nicht Syntaxfehler und ungültige Zeichen im Fokus standen, sondern z.B. Bereichsüberschreitungen von Arrays. Ein lesender Zugriff von x[y] mit y>Arraygrenze ist vielleicht aus Sicht des MS kein so großes Problem, aber ein schreibender Zugriff schon. Ebenso Pointer, die falsche Adressen haben oder das Lesen von Blöcken, die größer sind, als das Array, in das die Werte geschrieben werden. Die Programmiersprache C und damit auch Pico-C ist hier heikler, als andere Programmiersprachen.
Hier ein paar Fragen:
- tritt das Problem nur bei Neustarts auf oder auch nach Tagen/Stunden im fehlerfreien Betrieb?
- tritt das Problem deutlich häufiger auf, wenn an der Config „gebastelt“ wird und mehrere Neustarts erforderlich sind, bis der MS so funktioniert, wie gewünscht?
- weiß jemand, was Loxone prüft, um ein Programm abzuschalten?
- weiß jemand, ob man im Programm oder sonstwo einen Schalter setzen kann, der mehr Infos zur Problemursache anzeigt?
- hängt das Problem möglicherweise mit der CPU Last oder Größe der Config (Objekte) zusammen?
- falls Probleme nach längerem fehlerfreien Betrieb auftreten: hängt es vielleicht mit der TCP Kommunikation und bestimmten Fehlern (Lesen/Schreiben) zusammen?
- falls die Fehler nur bei Neustarts auftreten: sind bestimmte Inputs des Programms evtl. durch Rückkopplung nicht richtig initialisiert?
Vielleicht können wir durch einen Vergleich verschiedener Installationen die Ursache finden. Ich habe seit gestern z.B. Bereichsüberprüfungen für die Lüfterstufe ergänzt.
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 TradfriKommentar
-
Hallo Jan,
da ich ja keine Probleme habe, kann ich eigentlich nur folgendes sagen:
- Meine Objektspeicherbedard des Miniservers liegt bei 54%. Kann man irgendwo noch die CPU-Auslastung einsehen?
- Ich switche eigentlich fast nur zwischen den Stufen 0 und 1, welche dann mit der Funktion Intensivlüften teilweise um +1 addiert werden. Hin und wieder kommt die Funktion Stosslüften zum Einsatz
- Beim Radiotaster ist Remanenz aktiviert, dürfte ja aber auch keinen Einfluss auf das Geschehen haben
- Die KWL läuft mit der aktuellen FirmwareKommentar
-
Ich habe mehrere Sicherheitsabfragen eingebaut und die Version als v5.5 für Interessierte in der LoxWiki hochgeladen. Bin mir aber nicht sicher, ob der Fehler bereits behoben ist. Wer mitmachen möchte, kann die Version gerne installieren und hier Feedback geben. Mehrere Fragen habe ich bereits in #110 gestellt.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 TradfriKommentar
-
Ich muss mich jetzt auch melden und zwar hatte ich früher, ein paar Config Versionen vorher (weiss nicht mehr wieviele vorher) auch Probleme dass mein Programm disabled wurde.
Dies trat dann auf, wenn ich in der Config was geändert habe und dann gespeichert.
Wie gesagt, seit ein paar Monaten (denke ich), ist das Programm aktiv, auch wenn ich was ändere. Warum weiss ich nicht. Habe was Helios betrifft nichts geändert.
Habe aber zwischendurch mal die SD Karte gewechselt, weil diese lt.MS schon "beleidigt" war. Ob das mit dem zusammenhängt kann ich nicht beurteilen.
Wird hier etwas auf die SD geschrieben bezüglich Helios PicoC ?
Hoffe, vielleicht war etwas hilfreiches dabei.
GrüsseKommentar
-
Die SD-Karte hatte ich vor einem Jahr mal getauscht, weil sie hinüber war, kann mich aber nicht erinnern, dass ich davor große Probleme hatte.
CPU würde ich auch mal auschliessen wollen, da die Belastung im Monitor bei mir um die 90% liegt. Oder habt ihr da noch mehr?Kommentar
-
90% CPU Last ist aber schon ziemlich hoch. Meine CPU Grundlast liegt bei ca. 10% mit regelmäßigen Spikes nach oben bis ca. 50%. Ich denke, dass die CPU Belastung nur indirekt eine Rolle spielt. Jedes Pico-C Programm muss sich regelmäßig "schlafen legen" und die Kontrolle der CPU an den MS zurückgeben, z.B. mit einem "sleep" Befehl oder durch lesen eines TCP Streams. Hier halte ich einen Fehler für sehr unwahrscheinlich.
Das Schreiben auf die SD-Karte wirkt sich negativ auf deren Lebensdauer aus. Daher hat Loxone in diesem Bereich etwas geändert und bei mir wird eine hohe Schreiblast bemängelt. Das kommt durch mehrere Statistiken, die ich regelmäßig schreibe. Das Pico-C Programm hatte ich aber vor längerer Zeit in diesem Bereich optimiert, so dass nur wenige Meldungen in das Log geschrieben werden (Default sind max. 10 Meldungen pro Stunde). Hier sollte das Pico-C Programm vorbildlich sein. Das Log kann z.B. per FTP vom MS per FileZilla heruntergeladen werden. Es ist die Datei /log/def.log
Ich hatte (bisher nur einmal) genau das gleiche Problem, was Fuxi und andere Anwender beschrieben haben: nach Änderungen, die nichts mit der Lüftung zu tun hatten, wurde das Programm bei hochladen der neuen Config und damit verbundenem Neustart disabled. Ich vermute, dass ein Pico-C Programm sofort disabled wird, wenn Loxone ein Problem bemerkt. Im Code werden die 3 Zeilen vorangestellt, damit das Programm bei einem weiteren Neustart gar nicht mehr gestartet wird. Das würde bedeuten, dass beim Start des Pico-C Programmes ein Fehler auftritt. Hier habe ich sowohl vorsorglich einen "sleep" Befehl ergänzt, als auch die erlaubten Wertebereiche etwas besser überprüft. Hier halte ich mit den wenigen Infos die Ursache des Problems für am Wahrscheinlichsten. Mit "int" to "string" Umrechnungen (sprintf) könnte evtl. bei nicht richtig initialisierten Inputs evtl. ein Wert sehr groß sein und dann als String zu lang werden. Die Längen von z.B. char heliosString[20] sollten eigentlich nie überschritten werden können. Vielleicht liegt es auch an Typcasting, d.h. der Umwandlung von float in int oder unsigned int. Ggf. könnte ich hier alle Inputs zunächst als float einlesen, dann den Wertebereich prüfen und einschränken und erst anschließend in int umwandeln. Vielleicht reichen die Änderungen in v5.5. bereits?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 TradfriKommentar
-
Hi, ich hab mir einen MiniserverGO (mit v. 10.0.9.24) zum Testen zugelegt, auf dem aktuell nur das Helios-modbusTCP-v5.5.picoc läuft.
Somit würde ich behaupten es hängt nicht mit einer hohen CPU Last oder Größe der Config zusammen!
Ich schalte mit einem Zufallsgenerator alle 5 Minuten Lüfterstufe zwischen 1-4 um.
Ich hab 21x in den Miniserver gespeichert (mit minimalen Veränderungen) unmittelbar nach dem speichern in den Miniserver hat sich bis jetzt dreimal das Programm deaktiviert.
Hier Auszüge aus dem def.log:
2018-11-16 19:23:32.818;PRG Reboot 10.0.9.24
2018-11-16 19:23:34.704;Loading sps_new.zip - Remove old custom changes
2018-11-16 19:23:35.640;Disabled PicoC program Programm because it caused an error.
2018-11-16 19:23:35.984;PRG start program
2018-11-16 19:56:43.623;PRG Reboot 10.0.9.24
2018-11-16 19:56:45.503;Loading sps_new.zip - Remove old custom changes
2018-11-16 19:56:46.460;Disabled PicoC program Programm because it caused an error.
2018-11-16 19:56:46.816;PRG start program
2018-11-16 20:53:53.610;PRG Reboot 10.0.9.24
2018-11-16 20:53:55.466;Loading sps_new.zip - Remove old custom changes
2018-11-16 20:53:56.414;Disabled PicoC program Programm because it caused an error.
2018-11-16 20:53:56.806;PRG start program
-
-
Hallo Günther,
danke für Dein Feedback! Unter der Annahme, dass die Fehler nur bei Änderungen in der Config und Hochladen des neuen Codes beim Start des Pico-C Programmes auftreten, habe ich mir die Mühe gemacht und die Version 5.5.1 erstellt, wo viele Meldungspunkte beim Start im Log protokolliert werden. Damit sollte eine Eingrenzung auf einen bestimmten Codeblock möglich sein, sofern die gemachte Annahme zutrifft. Die Meldungen werden nur beim Start des Pico-C Programms ausgegeben und nach einem Schleifendurchlauf abgeschaltet. Damit belasten sie nicht die SD-Karte und haben im Normalbetrieb keine negativen Auswirkungen.
Ich verwende ebenfalls 10.0.9.24 und habe bisher keine Probleme mehr feststellen können, auch mit ca. 8 kleinen Änderungen in Loxone Config, hochladen und damit verbundenen Neustarts des MS.
Alle Anwender des Pico-C Programms sind freundlich eingeladen, bei der Behebung des Fehlers aktiv mitzuarbeiten und die Version 5.5.1 zu testen! Hier noch mal der Link zur LoxWiki: https://www.loxwiki.eu/pages/viewpag...pageId=1639038
Viele Grüße,
JanMiniserver 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 TradfriKommentar
-
Noch ein weiteres Update am gleichen Tag: wegen anderer Anpassungen/Optimierungen für v10 habe ich mehrmals eine neue Config zum MS hochgeladen und dann wurde einmal das Programm deaktiviert. Dabei fiel mir auf, dass es Übertragungsfehler beim Schreiben bei einer Variablen zur Helios Lüftungsanlage gab und dass diese Fehler nicht ausgewertet wurden. Da nur geänderte Variablen geschrieben werden, wurden diese Variablen nicht wieder neu geschrieben, sondern erst bei erneuten Änderungen. Einen direkten Zusammenhang zur Deaktivierung sehe ich nicht, aber ich habe sowohl das Logging beim Start noch etwas erweitert, als auch die Fehlerbehandlung bei den Modbus/TCP Lese- und Schreibfunktionen verbessert.
Die neue Version v5.5.2 steht zum Download bereit. Da das Logging lediglich beim Start erweitert wurde, können auch Anwender, die keine Probleme mit der Deaktivierung hatten, diese Version ohne Einschränkungen verwenden. Wer das erweiterte Logging beim Start trotzdem abschalten möchte, dann die Variable DEBUG_START auf 0 abändern.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 TradfriKommentar
-
Hallo Jan!
Danke mal für deine bemühungen!
Gleich beim ersten Mal einspielen wurde das Programm Deaktiviert.
Wäre es vielleicht die sinnvoll, mittels „Startimpuls“ einen verzögerten Start des Programms zu bewirken?
Hier der auszug aus dem def.log:
2018-11-18 18:42:25.174;Read network config: IP: DHCP, Mask: Undefined, Gateway: Undefined, NTP: 192.168.20.1
2018-11-18 19:42:30.678;PRG Reboot 10.0.9.24
2018-11-18 19:42:32.562;Loading sps_new.zip - Remove old custom changes
2018-11-18 19:42:33.443;Disabled PicoC program Programm because it caused an error.
2018-11-18 19:42:34.113;PRG start program
2018-11-18 19:42:34.313;RestoreRemanenceState /sys/rem/rem51.xml and /sys/rem/rem151.xml
2018-11-18 19:42:35.239;Rename program /prog/sps_0156_20181118194234.zip
2018-11-18 19:43:00.009;Warning 503, 'Loxone Miniserver' - 'Neustart des Systems', admins, Miniserver (Uuid 0cb44cae-0018-b043-ffff94c35dcbbd62)
2018-11-18 19:43:12.049;Program send: /prog/sps_0156_20181118194234.zip
2018-11-18 19:44:14.497;PRG got restart command
2018-11-18 19:44:14.957;Loading sps_new.zip - Remove old custom changes
2018-11-18 19:44:16.533;PRG start program
2018-11-18 19:44:16.723;RestoreRemanenceState /sys/rem/rem52.xml and /sys/rem/rem152.xml
2018-11-18 19:44:17.201;Program started: /prog/sps_0156_20181118194234.zip
2018-11-18 19:44:17.631;Rename program /prog/sps_0156_20181118194417.zip
2018-11-18 19:44:18.217;DEBUG: Helios KWL Modbus TCP - Watchpoint 1 - Start of program
2018-11-18 19:44:18.233;INFO: Helios KWL Modbus TCP start
2018-11-18 19:44:18.233;DEBUG: Helios KWL Modbus TCP - Watchpoint 2 - variables defined
2018-11-18 19:44:18.237;DEBUG: Helios KWL Modbus TCP - Watchpoint 3 - modbus variable initialized
2018-11-18 19:44:18.297;DEBUG: Helios KWL Modbus TCP - Watchpoint 4 - begin of main
2018-11-18 19:44:28.303;DEBUG: Helios KWL Modbus TCP - Watchpoint 5 - INPUT betriebsart = 0
2018-11-18 19:44:28.307;DEBUG: Helios KWL Modbus TCP - Watchpoint 6 - INPUT errorMax = 10
2018-11-18 19:44:28.307;DEBUG: Helios KWL Modbus TCP - Watchpoint 7 - INPUT errorInterval = 3600
2018-11-18 19:44:28.311;DEBUG: Helios KWL Modbus TCP - Watchpoint 8 - start of main loop ===============================
2018-11-18 19:44:28.311;DEBUG: Helios KWL Modbus TCP - Watchpoint 8 - loop counter = 10
2018-11-18 19:44:28.315;DEBUG: Helios KWL Modbus TCP - Watchpoint 9 - INPUT luefterStufeNormal = 3
2018-11-18 19:44:28.315;DEBUG: Helios KWL Modbus TCP - Watchpoint 10 - INPUT stosslueften = 0
2018-11-18 19:44:28.315;DEBUG: Helios KWL Modbus TCP - Watchpoint 11 - INPUT intensivlueften = 0
2018-11-18 19:44:28.325;DEBUG: Helios KWL Modbus TCP - Watchpoint 12 - INPUT bypassTemp = 10
2018-11-18 19:44:28.329;DEBUG: Helios KWL Modbus TCP - Watchpoint 13 - INPUT minAussenBypassTemp = 0
2018-11-18 19:44:28.329;DEBUG: Helios KWL Modbus TCP - Watchpoint 14 - INPUT pullFreq = 10
2018-11-18 19:44:28.333;DEBUG: Helios KWL Modbus TCP - Watchpoint 15 - before test of write
2018-11-18 19:44:28.333;DEBUG: Helios KWL Modbus TCP - Watchpoint 16 - before creating TCP stream
2018-11-18 19:44:28.339;DEBUG: Helios KWL Modbus TCP - Watchpoint 17 - TCP stream created
2018-11-18 19:44:28.339;DEBUG: Helios KWL Modbus TCP - Watchpoint 18 - WRITE luefterStufe = 3
2018-11-18 19:44:28.905;ERROR: Helios KWL modbusTCP select or write variable v00102=3 failed (0 bytes read) !
2018-11-18 19:44:29.913;DEBUG: Helios KWL Modbus TCP - Watchpoint 20 - before setoutput
2018-11-18 19:44:29.963;DEBUG: Helios KWL Modbus TCP - Watchpoint 21 - setoutput and sleep finished
2018-11-18 19:44:29.967;DEBUG: Helios KWL Modbus TCP - Watchpoint 22 - WRITE bypassTemp = 10
2018-11-18 19:44:30.533;DEBUG: Helios KWL Modbus TCP - Watchpoint 23 - bypassTemp = 10 written
2018-11-18 19:44:30.587;DEBUG: Helios KWL Modbus TCP - Watchpoint 24 - WRITE minAussenBypassTemp = 0
2018-11-18 19:44:31.153;DEBUG: Helios KWL Modbus TCP - Watchpoint 25 - minAussenBypassTemp = 0 written
2018-11-18 19:44:31.207;DEBUG: Helios KWL Modbus TCP - Watchpoint 26 - READ tempAussenluft
2018-11-18 19:44:32.397;DEBUG: Helios KWL Modbus TCP - Watchpoint 27 - READ tempAussenluft
2018-11-18 19:44:33.618;DEBUG: Helios KWL Modbus TCP - Watchpoint 28 - READ tempFortluft
2018-11-18 19:44:34.872;DEBUG: Helios KWL Modbus TCP - Watchpoint 29 - READ tempAbluft
2018-11-18 19:44:36.118;DEBUG: Helios KWL Modbus TCP - Watchpoint 30 - READ tempAussenluft
2018-11-18 19:44:37.372;DEBUG: Helios KWL Modbus TCP - Watchpoint 31 - READ rpmAbluft
2018-11-18 19:44:38.622;DEBUG: Helios KWL Modbus TCP - Watchpoint 32 - READ bypass
-
-
Hallo Günther,
der Startimpuls ist nach meiner Ansicht nur für "verdrahtete" Loxone Config Logik sinnvoll nutzbar. In einem Pico-C Programm kann man mit sleeps(x) das Programm x Sekunden schlafen legen. Hier habe ich im Programm bereits 10 Sekunden am Anfang eingetragen (Zeile 351). Gerne kannst Du mit höheren Werten testen. Um Probleme mit alten TCP Verbindungen (s.u.) auszuschließen, wären mindestens 100 Sekunden zu empfehlen.
Zu Deinem Log: Um 19:42:33 wurde das Programm deaktiviert. Danach hast Du es wahrscheinlich um 19:44:14 nochmals neu gestartet (PRG got restart command), denn ab dem Zeitpunkt werden Log-Meldungen (DEBUG) von dem Pico-C Programm ausgegeben. Interessant wären Meldungen von dem Skript (wenn es denn welche gibt), die einen Hinweis geben, an welcher Stelle das Programm dem MS Probleme bereitet hat, die dazu führten, dass es deaktiviert wurde. Ich hatte vor dem "Read network config..." auch nur ein "PRG got restart command", allerdings war das noch mit dem alten Version 5.5.1.
Die Meldung "DEBUG: Helios KWL Modbus TCP - Watchpoint 1 - Start of program" ist die erste Zeile im Programm mit Code (außer Kommentar oder define), die um 19:44:18.217 auftaucht. Da Pico-C interpretiert wird, d.h. Zeile-für-Zeile ausgeführt und in den Maschinencode des MS übersetzt wird, wurde das Program nach dem Reboot um 19:42:30.678 noch gar nicht ausgeführt.
Wenn bei Dir bereits die Version 5.5.2 um 19:42:33 lief, dann sieht es so aus, als ob das Pico-C Programm zu diesem Zeitpunkt nach dem Neustart noch nicht ausgeführt wurde und dann schon deaktiviert wurde.
Ich verwende noch ein anderes Pico-C Programm, welches gleitende Maximalwerte für die Windgeschwindigkeit der letzten 10 Minuten berechnet. Dieses Program ist noch NIE deaktiviert worden. Es ist natürlich ein ganz anderes Programm, aber es könnte bei der Deaktivierung evtl. mit den TCP Stream Funktionen zusammenhängen, denn die werden bei mir nur im Helios easycontrols Programm verwendet.
Interessant finde ich in Deinem Output, dass bei Dir gleich der erste Schreibvorgang zu Helios easyControls fehlschlägt. Die Fehlermeldung sehe ich auch ab und zu bei mir, allerdings bedeutet die nicht, dass danach immer das Programm disabled wird. Nach mehreren Sekunden ohne Abfragen wg. Neustart des MS sollte eigentlich die Helios Lüftungsanlage die erste Schreibfunktion ohne Fehler durchführen können. Eventuell ist die Lüftungsanlage aber durch einen vorherigen TCP Aufruf noch damit beschäftigt, per TCP die vom MS noch nicht quittierten Daten nochmals an den MS zu senden und nimmt daher nimmt die Lüftungsanlage keine neuen Anfragen an und es kommt zu dem Fehler. Evtl. werden auch vom MS die gleichen TCP source-Ports beim Neustart "recycled". Möglicherweise kommt damit der MS nicht zurecht und deaktiviert das Programm? Eigentlich müssten dann aber Log-Meldungen vom Pico-C Programm zu finden sein.
Um die Vermutung zu erhärten, dass das Problem der Deaktivierung in Zusammenhang mit der Unterbrechung der TCP Kommunikation steht, müsste das Programm so erweitert werden, dass man die TCP Abfragen manuell in der App oder im Webinterface mit einem weiteren Eingang sperren kann. Wenn man dann jedes Mal noch ein paar Sekunden wartet, um eine laufende TCP Kommunikation sauber zu beenden, bevor man in Loxone Config den Befehl "in MS speichern" wählt, dann dürfte es keine Fehler mehr geben. Wenn sich die Vermutung bestätigen sollte und man sich immer an die Vorgehensweise hält, dann wäre noch die Frage, ob Loxone dann den Bug findet und behebt. Pico-C steht bei Loxone nach meiner Ansicht in der Prioritätenliste gaaanz weit unten. Ein "Stopimpuls" analog zu dem von Dir erwähnten "Startimpuls", der dies automatisch macht und dann ein paar Sekunden wartet, wäre auch eine Lösung, wenn es den Impuls gäbe. Die Wahrscheinlichkeit, dass so etwas implementiert wird, schätze ebenfalls als minimal ein. Falls Du (oder jemand anders) so einen Input wünscht, bitte melden.
Wenn sich herausstellt, dass bei dem Problem nicht mal die o.a. Startmeldung protokolliert wird, dann kannst Du Dich nur noch an Loxone wenden. Der Aufwand, die o.a. Vermutung zu erhärten, ist auch nicht unerheblich, denn es wären ja ziemlich viele Neustarts nötig, bis man einigermaßen sicher ist. Das Problem tritt ja nicht bei jedem Neustart auf.
Eine Auffälligkeit habe ich in meinem Log gefunden, die auch bei Dir zu sehen ist: In meinem Log sind Meldungen mit dem Text "PRG Reboot 10.0.9.24" (oder andere Version seit v9) GENAU DANN zu finden, wenn danach das Programm disabled wird. Bin mir aber noch nicht sicher, was die Meldung genau bedeutet. Vielleicht wird die durch einen weiteren Befehl "in MS speichern" ausgelöst wird, bevor der MS richtig arbeitet oder nach der nebulösen Erkennungsfunktion von Loxone auf "schlechte" Pico-C Programme, die dann das Pico-C Programm deaktiviert und den MS neu startet. Vielleicht kann Loxone bei diesem Punkt zur Aufklärung beitragen.
Gruß JanMiniserver 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 TradfriKommentar
-
Nachdem das Pico-C Skript in der Version v5.2.2 bei mir seit über einem Monat mit Loxone v10.0.9.24 ohne jeden Fehler auch nach vielen Konfigurationsänderungen immer noch einwandfrei läuft, denke ich, dass der Fehler nun beseitigt ist.
Falls noch jemand Probleme hat, dann bitte melden. Wenn keine (negativen) Rückmeldungen kommen, dann würde ich das Debugging am Beginn aus dem Code in der Loxwiki deaktivieren:
int DEBUG_START = 0; // kein Debugging beim Starten. Bei Problemen werden z.B. mit dem Wert 10 während der ersten 10 Schleifen erweitere Debug-Meldungen ausgegeben
Da nur direkt nach einem Neustart einige Debug-Meldungen in das Log geschrieben werden und man ja nicht ständig den MS neu bootet, dürfte sich dies aber nicht auf die Lebensdauer der SD-Karte auswirken. Wen die Log-Meldungen stören, kann ebenfalls den Wert auf 0 setzen.
Gruß JanMiniserver 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 TradfriKommentar
-
Nachdem keine Rückmeldungen zu noch bestehenden Problemen mit der Deaktiverung auf meine letzte E-Mail kamen, habe ich das Loxwiki aktualisiert und für die IP-Adresse (URL) einen Parameter erstellt, so das die Anpassung an die eigene IP-Adresse leichter fällt.
Wer keine Probleme hat, braucht nicht auf die neue Version v5.6 zu aktualisieren, da seit v5.5.2 nichts wesentliches geändert wurde, aber schaden kann es auch nicht. Das detaillierte Debugging nach dem Starten des Programmes ist jetzt per Default abgeschaltet, aber noch im Code vorhanden, falls doch noch so ein Fehler bei jemandem auftreten sollte.
Gruß JanMiniserver 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 TradfriKommentar
Kommentar