NEWS
Identifikation vom CCU Raspberrymatic Programmblockaden
-
Hallo zusammen,
auf meiner CCU / Raspberrymatic kommt es zu sporadischen Programmverzögerungen da die Skript Engine ausgelastet zu sein scheint. Dazu habe ich auch schon einen Threat im Homemativ Forum aufgemacht und wir suchen dort nach der Ursache. Was es echt schwierig macht ist, das es nur sporadisch zu dem Problem kommt und man es nicht immer mitbekommt.Daher habe ich auf der CCU einfach ein Prgramm geschrieben das jede Minute eine Variable befüllt.
Nun hatte ich die Idee ein Blockly Skript zu bauen, welches die Zeit zwischen dem CCU Programmstart und dem setzen der Variable misst und wegschreibt, bzw eine Meldung ausgibt wenn die Differenz zwischen Programmstart und Variable setzen einige Sekunden dauert.Punkt 1 , leider musste ich feststellen, dass aus Gründen die mir nicht bekannt sind, im IOBroker Datenpukt des Programms der CCU der Zeitstempel und die letzte Änderung nur mit dem allerersten Aufruf des Programms eingetragen werden und sich danach beide nicht aktualisieren.
Wenn das so "gwollt" ist , fällt die Lösung weg.Punkt 2: Ich dachte dann, ich könnte einfach immer den aktuellen Zeitpunkt der gesetzten Variable vom Zeitpunkt abziehen als die Variable das letzte mal aktualisiert wurde. Wenn das Ergebnis größer 1 Minute ist, habe ich einen Hinweis darauf das die Skript Engine der CCU gerade wieder hängt/ ausgelastet ist.
Meine Bemühungen mit Blockly kommen hier aber nicht weit:
Habt ihr einen ANsatz für mich?
Danke !
-
@schonwiederich sagte: ANsatz für mich?
-
@paul53
Hallo Paul, danke, aber ich glaube damit komme ich auch nicht weiter, oder ich verstehe es nicht.
Ich brauche eine Messung des Abstands der aktualsierungszeitstempel von derselben ccu variable zwischen dem aktuellen und vorherigen zeitstempel.
Sobald dieser Abstand größer 60 Sekunden ist, möchte ich im bestfall die Differenz in Sekunden in einen datenpunkt in iobroker schreiben. -
@schonwiederich sagte: zwischen dem aktuellen und vorherigen zeitstempel.
Sobald dieser Abstand größer 60 Sekunden ist, möchte ich im bestfall die Differenz in Sekunden in einen datenpunkt in iobroker schreiben.Bedenke, dass Systemvariablen vom Rega-Adapter per Polling eingelesen werden.
-
@paul53
Danke , hab ich nachgebaut.
Jedoch wird der Datenpunkt den ich angelegt habe einfach nicht befüllt.
Ich finde nicht raus warum nicht. -
@schonwiederich ```
{
"common": {
"name": "Diff Debug",
"desc": "Manuell erzeugt",
"role": "state",
"type": "mixed",
"read": true,
"write": true,
"def": 0,
"custom": {
"history.0": {
"enabled": true,
"aliasId": "",
"changesOnly": false,
"debounce": 1000,
"changesRelogInterval": 0,
"changesMinDelta": 0,
"maxLength": 100000,
"retention": 31536000
}
}
},
"type": "state",
"_id": "0_userdata.0.Diff_Debug",
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
},
"from": "system.adapter.admin.0",
"user": "system.user.admin",
"ts": 1634301779106
} -
@schonwiederich sagte: Jedoch wird der Datenpunkt den ich angelegt habe einfach nicht befüllt.
Der Datenpunkt wird nur befüllt, wenn die Differenz zwischen zwei Zeitstempeln größer als 61 s ist.
@schonwiederich sagte in Identifikation vom CCU Raspberrymatic Programmblockaden:
Sobald dieser Abstand größer 60 Sekunden ist, möchte ich im bestfall die Differenz in Sekunden in einen datenpunkt in iobroker schreiben.
-
@paul53
Danke das ist klar.
Aber auch größere würden nicht geschrieben.
Ich hab gesehen woran es liegt. Iobroker zeigt manchmal im blockly einen Datenpunkt an den man gesetzt hat, später jedoch springt dieser auf default zurück.
Jetzt geht's aber.
Danke -
@schonwiederich
Lange beobachtet.
Funktioniert wie gewünscht .Danke!