Größe Systemvariable

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
Benutzeravatar
fairtv
Beiträge: 220
Registriert: 08.08.2014, 16:57
Wohnort: Bei Erding
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Größe Systemvariable

Beitrag von fairtv » 10.07.2018, 17:05

Ich finde es in Doku und Forum nicht, oder mir fallen die richtigen Suchbegriffe nicht ein:
Weiß jemand die Größen (Byte, Zeichen, ...), die eine Systemvariable (je nach Typ) maximal verkraftet?
Insbesondere Werteliste und Zeichenkette?
Viele Grüße,
fairtv

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Größe Systemvariable

Beitrag von alchy » 11.07.2018, 09:54

Zeichenkette mit ca. 650000 Zeichen funktionierte mal (sofern ich mich an meinen Test richtig erinnere)
Auch mehr ist vielleicht möglich, hab ich aber damals irgendwann abgebrochen.
Den Grund weiß ich aber nicht mehr, wahrscheinlich war dann irgendwann Schluss.

Selber probieren und Ergebnis mitteilen? Warum willst du das wissen?

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
fairtv
Beiträge: 220
Registriert: 08.08.2014, 16:57
Wohnort: Bei Erding
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Größe Systemvariable

Beitrag von fairtv » 11.07.2018, 10:33

Ich möchte gerne Wertepaare von Sensoren über einen mittleren Zeitraum sammeln und selbst filtern.
Teilweise könnte das wohl auch der CuXD (zumindest Median und Mean), ich möchte aber noch andere FIlter und alternative Zeiträume versuchen.

Außerdem möchte ich auch größere Sammlungen an Werten aus dem Kraftwerk übertragen, grob auswerten und dann verwenden.

Danke für die Auskunft, 650k sollten schon mal eine Ecke weit genügen.
Viele Grüße,
fairtv

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Größe Systemvariable

Beitrag von Familienvater » 11.07.2018, 10:54

Hi,

da sollte ggf. noch mal JMaus was dazu sagen, ob das zu einem Problem werden kann.

Ich sehe da prinzipiell die folgenden Probleme, abseits eines schnellen Tests im realen Betrieb:

1. Der Speicher müsste zunehmend fragmentieren, wenn dynamisch Speicher neu alloziert werden muss, "abwechselnd" für mehrere stetig wachsende "Arrays", ich weiß nicht, ob es soetwas wie eine Garbage-Collection innerhalb der Rega gibt.

2. Da Systemvariablen in der RegaDom persistiert werden, hat man einerseits keinen 100% Datenverlust im Falle eines "unsauberen" Neustarts, aber ggf. gehen bis zu 12h der letzten Einträge verloren, weil die Rega noch nicht wieder neu geschrieben wurde. Und das spielt auch hierbei mit rein: Die RegaDom wird durch soetwas "noch" größer, als sie es ggf. eh schon ist, und evtl. geht alles im Betrieb gut, bis irgendwann die Rega zu groß zum Einlesen/Parsen nach einem Neustart ist, und das merkt man wahrscheinlich ärgerlicherweise erst nach div. Monaten Datensammeln.

Just my 2 Cents,
der Familienvater

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Größe Systemvariable

Beitrag von alchy » 11.07.2018, 11:12

Hab gerade mal ein Schnelltest durchgeführt. Ausstieg schon nach 450000 Zeichen.
Ein weiterer Punkt für die Nichtfunktion zu großer Systemvariablen wird dich erreichen, wenn die Speicherverwaltung zuschlägt.

Code: Alles auswählen

Jul 11 11:01:43 homematic-ccu2 user.err kernel: [218358.850000] Out of memory: Kill process 27191 (ReGaHss.communi) score 555 or sacrifice child
Jul 11 11:01:43 homematic-ccu2 user.err kernel: [218358.860000] Killed process 27191 (ReGaHss.communi) total-vm:175468kB, anon-rss:149268kB, file-rss:0kB
Jul 11 11:01:44 homematic-ccu2 daemon.err cuxd[376]: query_CCU_device_params() is NULL
Als vor langer Zeit ein Logging in Systemvariablen bei Webmatic eingeführt wurde, gab es auch schon diverse Probleme.
Ich würde davon abraten, größere Datenmengen in Systemvariablen zu verfrachten und gebe Familienvater Recht, das da jmaus sicher genauere Angaben machen kann.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
fairtv
Beiträge: 220
Registriert: 08.08.2014, 16:57
Wohnort: Bei Erding
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Größe Systemvariable

Beitrag von fairtv » 11.07.2018, 11:16

Guter Einwand - also datensparsam bleiben und beobachten, was ja nie schadet.

Typischerweise sind die Kraftwerksangaben eine Art großes (nicht riesiges!) Array, und vom Umfang her relativ stabil.
Sammlungen von Sensorwerten zur Weiterverarbeitung habe ich meist in einer Art Ringbuffer, bzw. mit Cap. Also ist auch hier ein Ende absehbar und relativ konstant.
Fragmentierung, Garbage Collection der Zwischenschicht kann ich natürlich nicht bewerten.

Wichtig war mir halt mal ein Gefühl für das Ende zu bekommen.
Viele Grüße,
fairtv

dtp
Beiträge: 10658
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Größe Systemvariable

Beitrag von dtp » 11.07.2018, 13:16

Mein gut gemeinter Rat. Benutze die CCU nicht als Datengrab!

Für das Loggen von Daten sollte man eine spezielle Datenbank verwenden (z.B. MariaDB oder andere SQL-Datenbank). Dafür eignet sich ganz hervorragend der ioBroker. Mit dem kann man auch eine Auswertung, sowohl mathematisch, als auch grafisch, durchführen.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“