RaspberryMatic icon indicating copy to clipboard operation
RaspberryMatic copied to clipboard

ReGaHSS: .ClearCache() .CacheMode() -> WebUI kann nicht geladen werden / zeigt Ausgabefehler

Open BadenPower opened this issue 1 year ago • 1 comments

Describe the issue you are experiencing

.ClearCache() Wird die Methode .ClearCache() bei aktiviertem CacheMode ausgeführt, dann kommt es danach in den meisten Fällen zu Fehlfunktionen der WebUI. Ist die WedUI bereits aufgerufen, dann fehlen beim Aufrufen der Geräte- und Systemvariablelisten zahlreiche Informationen. Ein erneutes Aufrufen der WebUI scheitert in den meisten Fällen.

.CacheMode() Wird die Methode .CacheMode() zum Deaktivieren des Caches mit dem Parameterwert 0 vom Typ integer ausgeführt und danach zum Aktivieren des Caches mit dem Parameterwert 1 vom Typ integer ausgeführt , dann kommt es danach in den meisten Fällen zu Fehlfunktionen der WebUI. Ist die WedUI bereits aufgerufen, dann fehlen beim Aufrufen der Geräte- und Systemvariablelisten zahlreiche Informationen. Ein erneutes Aufrufen der WebUI scheitert in den meisten Fällen.

Describe the behavior you expected

Wird der Cache geleert oder nach dem Deaktivieren neu aktiviert, dann darf dies nicht zu Einschränkungen bei der Benutzung der WebUI führen.

Steps to reproduce the issue

Ausführung der folgenden Skripte unter "Skript testen":

.ClearCache()

WriteLine("Start");
WriteLine(dom.BuildLabel());
WriteLine(system.ClearCache());
WriteLine("Ende");

.CacheMode()

WriteLine("Start");
WriteLine(dom.BuildLabel());
WriteLine(system.CacheMode(0));
WriteLine(system.CacheMode(1));
WriteLine("Ende");

What is the version this bug report is based on?

CCU3 mit ReGaHSS-Version R1.00.0388.0235

Which base platform are you running?

rpi3 (RaspberryPi3)

Which HomeMatic/homematicIP radio module are you using?

n/a

Anything in the logs that might be useful for us?

bestehend seit:
unbekannt (bereits mit ReGaHss-Version R1.00.0388.0102)

Additional information

AusgabeN mit ReGaHss-Verion R1.00.0388.0235:

.ClearCache()

Start
R1.00.0388.0235
true
End

.CacheMode()

Start
R1.00.0388.0235
true
true
Ende

BadenPower avatar Feb 01 '24 19:02 BadenPower

Die beiden ClearCache() und CacheMode() Funktionen sind beides Methoden die sehr sehr stark in die interne Verarbeitung von Skriptcode innerhalb der ReGaHss eingreifen. Auch wenn diese zwar in der Skriptsprache existieren, so sind diese nicht für die allgemeine Nutzung gedacht. Aktuell ist mir auch z.B. kein Anwendungsfall bekannt bei denen die Nutzung dieser Skriptfunktionen von Vorteil sein könnten oder irgendwie nützlich ist. Meines Wissens werden die ja auch nicht zu irgendetwas in der WebUI der CCU selbst eingesetzt.

Zusätzlich dazu existieren sicherlich auch hier und da falsche Annahmen für was diese Funktionen genau da sind bzw. was diese bewirken oder gar bewirken sollen. Sicherlich ist es richtig das ClearCache() sämtliche interne Caches versucht zu löschen, aber wie du selbst festgestellt hast wird das während der Laufzeit der ReGaHss nicht ganz sauber erledigt. Die Nutzung dieser Funktion (wenn es denn auf ReGa-Skriptebene überhaupt einen solchen nutzen gibt) wird daher sich lediglich auf das einmalige Aufrufen ganz am Anfang des Startes von ReGaHss beschränken.

Was die CacheMode() Funktion angeht so schaltet z.B. die Nutzung von CacheMode(0) mit nichten das Caching komplett ab. Es wird hier lediglich eine andere Art des internen Cachings verwendet als das im Standardfall bei CacheMode(1) der Fall ist.

Insgesamt muss daher gesagt werden, das diese beiden Funktionen eher zum Hausbedarf der ReGaHss Entwicklung selbst gehören wie das auch bei Dump() und Debug() z.B. der Fall ist. Wenn hier also etwas verbessert werden könnte/sollte, dann vermutlich das man diese Funktionen ggf. gänzlich aus dem Fundus der nutzerbezogenen Skriptsprache entfernt, sodass die nur in Debugversionen von ReGaHss dem Entwickler selbst ggf. zum Testen/Entwickeln zur Verfügung steht. Ausser natürlich mir kann jemand den Nutzen dieser beiden Funktionen aus Nutzersicht aufzeigen.

jens-maus avatar Feb 02 '24 08:02 jens-maus

There hasn't been any activity on this issue recently. To keep our backlog manageable we have to clean old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest RaspberryMatic version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar May 03 '24 05:05 github-actions[bot]