Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Ältere Versionen des Pico C Programm vor Version 5.5.2 werden beim Update auf Loxone Config v9 und v10 in bestimmten Fällen deaktiviert. Leider gibt es von Loxone keinen Hinweis auf die Ursache, warum das Pico C Programm deaktiviert wurde. Eine Erläuterung von Loxone, unter welchen Bedingungen Pico C Programme in der Config v9 und v10 deaktiviert werden, konnte ich bisher auf den Webseiten von Loxone nicht finden. Das Problem tritt nur direkt nach dem Hochladen einer neuen Konfiguration auf den MS auf und nicht während des Betriebs.Da ich mittlerweile auch auf v10 aktualisiert habe und bei mir das Problem ebenfalls aufgetreten ist (bisher 1x), habe ich mehrere Sicherheitsabfragen und Meldepunkte eingebaut. Nach Auffälligkeiten beim Schreiben habe ich auch hier noch zusätzliche Überprüfungen eingefügt. Jeder Anwender, der ebenfalls Probleme mit der Deaktivierung hat, ist herzlich eingeladen die Version zu testen. Es werden nur am Anfang bei der Initialisierung Meldungen in das Log geschrieben. Nach einem Schleifendurchlauf wird das Logging beendet, um Ältere Versionen des Pico C Programm vor Version 5.5.2 werden beim Neustart des MS, d.h. beim Hochladen einer neuen Konfiguration mit Loxone Config v9 und v10 in bestimmten Fällen deaktiviert. Die Änderung der Konfiguration muss dabei nicht in irgendeinem Zusammenhang mit dem Pico-C Programm stehen, nur der Neustart des MS ist entscheidend.

Leider gibt es von Loxone keinen Hinweis auf die Ursache, warum das Pico C Programm deaktiviert wurde. Eine Erläuterung von Loxone, unter welchen Bedingungen Pico C Programme in der Config v9 und v10 deaktiviert werden, konnte ich bisher auf den Webseiten von Loxone nicht finden. Das Problem tritt nur direkt nach dem Hochladen einer neuen Konfiguration auf den MS auf und nicht während des Betriebs.

Da ich mittlerweile den Miniserver auf v10 aktualisiert habe und bei mir das Problem ebenfalls aufgetreten ist, habe ich mehrere Sicherheitsabfragen und Meldepunkte eingebaut. Nach Auffälligkeiten beim Schreiben, insbesondere beim Start des Programmes habe ich auch hier noch zusätzliche Überprüfungen eingefügt. Jeder Anwender, der ebenfalls Probleme mit der Deaktivierung hat, sollte zuerst prüfen, ob er die aktuelle Version des Programmes im Einsatz hat und ggf. updaten.

Möglicherweise trat der Fehler genau dann auf, wenn nach einem Neustart des MS beim ersten Schreiben der Eingabevariablen ein Schreibfehler bei der Kommunikation mit der Helios Anlage auftrat. Der Schreibvorgang wurde nicht wiederholt und die Werte anschließend ausgelesen. Da zeitgleich mehrere Sicherheitsabfragen in den Code eingebaut wurden und die Funktionen jetzt einen Fehlercode zurückgeben, könnte es auch ein Fehler im Programm an diesen Stellen gewesen sein.

Der Fehler sollte seit der Version 5.5.2 behoben sein. Wer noch so einen Fehler mit einer neueren Version hat, kann die folgenden Hinweise zur Fehlereingrenzung und Ermittlung der Ursache befolgen.

Hinweise zur Erkennung, Eingrenzung des Fehlers und Ermittlung der Ursache

Es gibt seit v5.5.2 den Parameter DEBUG_START. Wenn dieser Parameter auf einen Wert größer als 0 gesetzt wird, dann werden nach dem Starten des Programmes am Anfang bei der Initialisierung detaillierte Meldungen in das Log geschrieben werden. Um den Flash-Speicher im MS zu schonen, werden nur die ersten X Schleifendurchläufe detailliert protokolliert, weil das Problem mit der Deaktivierung nur nach einem Neustart des MS, z.B. beim Hochladen einer neuen Konfiguration auftrat. Nach der voreingestellten Anzahl an Schleifendurchläufen (Wert für den Parameter DEBUG_START) wird das Logging beendet, um eine hohe Schreiblast auf der SD-Karte zu vermeiden.

Wer ebenfalls das Problem hat, kann gerne im Loxforum Hinweise zur Verfügung stellen (Fragenliste vorhanden), die bei der Suche nach der Ursache helfen. Wer Zeit hat, kann sich auch an den Loxone Support wenden, um die Ursache der Deaktivierung herauszufinden. Der Loxone Support kann wahrscheinlich nicht jedes selbstgeschriebene Pico C Programm analysieren, aber ich hatte die Hoffnung, dass der Support zumindest einen Grund für die Deaktivierung zu nennen kann - bisher habe ich leider keine Hinweise von anderen Anwendern erhalten. 

Symptom

...

Das Pico-C Programm läuft nicht mehr. Der Status (TeQ des Programmbausteins) meldet "Program disabled". In der Loxone Config sind folgende Zeilen am Anfang des Pico-C Programmes ergänzt worden:

...

Es ist ja sehr fürsorglich von Loxone, dass jetzt der Miniserver fehlerhafte Pico-C Programme erkennt und diese deaktiviert. Sehr unglücklich finde ich aber, dass dies ohne einen erkennbaren Grund passiert und weder im Log noch in der E-Mail ein brauchbarer Hinweis auf den Grund zu finden ist. 

(temporäre) Lösung

...

Löschen der 3 ersten Zeilen im Pico C Programm und senden des geänderten Codes über Loxone Config und hochladen der geänderten Konfiguration an den MS. Wer mithelfen möchte, die Problemursache zu finden bzw. einzugrenzen, bitte im vorhandenen Beitrag im Loxforum "Helios KWL (easycontrols) über modbus tcp einbinden" posten. Möglicherweise treten die Probleme immer am Anfang des Pico-C Programmes auf. Daher habe ich testweise am Anfang mehrere Sicherheitsabfragen ergänzt.

...

UPDATE: Es liegt jetzt die Version 5.5.1 vor, in der etliche Meldungen beim Start des Programms ausgegeben werden. Über diese Meldungen, die im Log protokolliert werden, ist es hoffentlich möglich, den Code, der in bestimmten Fällen für eine Deaktivierung des Programms verantwortlich ist, zu identifizieren. Jeder Anwender, der ebenfalls Probleme hat, ist herzlich eingeladen, die Version zu installieren und die Ausgabe der Meldungspunkte aus dem Log im Loxforum zu posten, wenn bei ihm das Programm deaktiviert wurde.UPDATE 2: Es liegt jetzt die Version 5.5.2 vor, in der die Überprüfung beim Schreiben von Variablen erweitert wurde. Nach des Programms verantwortlich ist, zu identifizieren. 

UPDATE 2: Nach mehrmaligen Neustarts des MS kurz hintereinander wurde bei mir das Programm mit 5.5.1 deaktiviert. Daraufhin habe ich die Log-Meldungen auf mehrere Schleifendurchläufe ergänzt und festgestellt, dass Fehler beim ersten Schreiben der Eingabewerte ignoriert wurden und damit Variablen erst im nächsten Intervall wieder geschrieben wurden. Hier habe ich die Rückgabewerte der Funktionen überarbeitet, obwohl es mir unklar ist, wie dadurch das Programm deaktiviert werden konnte.. Es liegt jetzt die Version 5.5.2 vor, in der die Überprüfung beim Schreiben von Variablen erweitert wurde.

UPDATE 3: Der Fehler ist in v5.5.2 nicht mehr aufgetreten.

Überprüfungsmöglichkeiten und wichtige Informationen

Über die Meldungen, die im Log protokolliert werden, ist es hoffentlich möglich, den Code, der in bestimmten Fällen für eine Deaktivierung des Programms verantwortlich ist, zu identifizieren. Jeder Anwender, der ebenfalls Probleme hat, ist herzlich eingeladen, die Version zu installieren und die Ausgabe der Meldungspunkte aus dem Log im Loxforum zu posten, wenn bei ihm das Programm deaktiviert wurde.

...

In dem o.a. Beispiel kann man sehen, dass bei Schreibfehlern gezielt der Schreibvorgang dieser Variable (v00102) wiederholt wird.

Liste von Erkenntnissen, Annahmen und Vermutungen zu dem Problem

  • Auffälligkeit: 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 durch die unbekannte  Erkennungsfunktion von Loxone auf "schlechte" Pico-C Programme, die dann das Pico-C Programm deaktiviert und den MS neu startet. 
  • Vermutung: Das Problem könnte mit der Unterbrechung der TCP Kommunikation zwischen MS und der Lüftungsanlage durch den Loxone Config Befehl "in MS speichern" zusammenhängen. Ein anderes Pico-C Programm von mir, welches keine TCP Stream Funktionen verwendet, hat keine Probleme.