Setzen einer Systemvariablen wird "verschluckt" (bei verlangsamter Programmausführung)

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

MichaelN
Beiträge: 9655
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: Setzen einer Systemvariablen wird "verschluckt" (bei verlangsamter Programmausführung)

Beitrag von MichaelN » 30.06.2022, 12:35

Das einfachste wäre ja den störrischen Aktor ans Ende der Abarbeitung zu stellen und zu schauen ob das Problem dann weg ist. Kostet 5 Sekunden.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Xel66
Beiträge: 14149
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

Re: Setzen einer Systemvariablen wird "verschluckt" (bei verlangsamter Programmausführung)

Beitrag von Xel66 » 30.06.2022, 12:44

Da die Originalprogramme nicht sichtbar sind (Wink mit dem Zaunfeld), ist es eigentlich müßig, darüber zu diskutieren, denn man kann über die Ursache nur spekulieren und die Glaskugel bemühen. Vermutlich werden aber die Rückmeldungen des triggernden Aktors verzögert, weil in dieser Zeit das Funkmodul versucht, den nicht vorhandenen Aktor zu kontaktieren (listen before talk). Diese fehlenden Rückmeldungen verursachen dann vermutlich die verzögerte Abarbeitung des Prozesses. Auch halte ich die gleichzeitige Ansteuerung mehrerer Aktoren per "sofort" in Deinem Beispielprogramm für nicht funktionssicher. Grundsätzlich sollte die CCU das gerade im Falle von HmIP handlen können, aber im Falle von schwer oder nicht erreichbaren Aktoren kann das LBT (listen before talk) ein Bein stellen. Bei klassischem Homematic würden die Aktoren schlichtweg nicht reagieren und die CCU eine Kommunikationsstörungsmeldung werfen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Benutzeravatar
Baxxy
Beiträge: 10782
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 604 Mal
Danksagung erhalten: 2205 Mal

Re: Setzen einer Systemvariablen wird "verschluckt" (bei verlangsamter Programmausführung)

Beitrag von Baxxy » 30.06.2022, 12:56

Ich finde es interessant das ein unerreichbarer Aktor den "Programmdurchlauf" zum stocken bringt. Hatte ich bisher noch nichts von gehört/gelesen.

Dachte bisher das die ReGa die Befehle stur an den entsprechenden Dienst (rfd, HM/HmIP-Server) weitergibt und nicht auf Rückmeldung wartet.

Das muss ich mal testen. Gibt's da irgendwas wie man die Laufzeit eines Programmes bestimmen kann?

Benutzeravatar
shartelt
Beiträge: 7421
Registriert: 14.01.2015, 14:59
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 524 Mal
Danksagung erhalten: 753 Mal

Re: Setzen einer Systemvariablen wird "verschluckt" (bei verlangsamter Programmausführung)

Beitrag von shartelt » 30.06.2022, 12:59

Baxxy hat geschrieben:
30.06.2022, 12:56
Das muss ich mal testen. Gibt's da irgendwas wie man die Laufzeit eines Programmes bestimmen kann?
speicher Dir Werte in ne DB, dann siehstes am Timestamp?

MichaelN
Beiträge: 9655
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: Setzen einer Systemvariablen wird "verschluckt" (bei verlangsamter Programmausführung)

Beitrag von MichaelN » 30.06.2022, 13:29

Baxxy hat geschrieben:
30.06.2022, 12:56
Gibt's da irgendwas wie man die Laufzeit eines Programmes bestimmen kann?
Skript als ersten Und letzen Befehl und dort einen Eintrag ins Fehlerprotokoll schreiben

Aber ich glaube mittlerweile, daß wir nicht das vollständige Bild sehen, denn:
mule hat geschrieben:
30.06.2022, 12:31
entweder baue ich mir einen eigenen TCL-Daemonprozess auf der Raspberrymatic bzw. erweitere einen bereits von mir entwickelten) oder ich setze es per Java-Script unter ioBroker


Ich vermute mal sehr stark, daß der störrischen Aktor auch Effekte auf die eingesetzte Middleware hat und diese ggf. Die CCU mit Anfragen "bombardiert" und damit zeitweise ausser Gefecht setzt. Sowas haben wir ja schon öfter hier gesehen.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Xel66
Beiträge: 14149
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

Re: Setzen einer Systemvariablen wird "verschluckt" (bei verlangsamter Programmausführung)

Beitrag von Xel66 » 30.06.2022, 14:02

Baxxy hat geschrieben:
30.06.2022, 12:56
Dachte bisher das die ReGa die Befehle stur an den entsprechenden Dienst (rfd, HM/HmIP-Server) weitergibt und nicht auf Rückmeldung wartet.
Das wird wohl auch so sein, aber das andere Programm wird ja wohl (Glaskugel) durch die vollzogene Rückmeldung eines anderen Aktors getriggert und diese Rückmeldung kommt wahrscheinlich nicht zum Zug, weil der damit Aktor wartet, bis die CCU ausgefunkt hat. Ist aber alles Spekulation. Kann man sicher mit "alles loggen" herausbekommen.

Mir ist auch nicht verständlich, warum man Aktoren in einem Programm anspricht, von denen man weiß, dass sie sich nicht im System befinden. Gerade bei Weihnachtsbeleuchtung könnte man ein entsprechendes Programm machen, welches diese Aktoren anspricht und durch Setzen einer Saisonvariable unwirksam gesetzt werden kann, solange man die Funktion nicht benötigt.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

mule
Beiträge: 1168
Registriert: 06.07.2010, 00:24
Hat sich bedankt: 3 Mal
Danksagung erhalten: 35 Mal

Re: Setzen einer Systemvariablen wird "verschluckt" (bei verlangsamter Programmausführung)

Beitrag von mule » 30.06.2022, 14:12

Xel66 hat geschrieben:
30.06.2022, 14:02
Das wird wohl auch so sein, aber das andere Programm wird ja wohl (Glaskugel) durch die vollzogene Rückmeldung eines anderen Aktors getriggert und diese Rückmeldung kommt wahrscheinlich nicht zum Zug, weil der damit Aktor wartet, bis die CCU ausgefunkt hat. Ist aber alles Spekulation. Kann man sicher mit "alles loggen" herausbekommen.
Deine Glaskugel hat recht. Hierzu hatte ich nichts weitergeschrieben und auch nicht die Programme gepostet, da es in diesem Thread ja nicht um die Verzögerung/Verlangsamung gehen sollte.
Xel66 hat geschrieben:
30.06.2022, 14:02
Mir ist auch nicht verständlich, warum man Aktoren in einem Programm anspricht, von denen man weiß, dass sie sich nicht im System befinden. Gerade bei Weihnachtsbeleuchtung könnte man ein entsprechendes Programm machen, welches diese Aktoren anspricht und durch Setzen einer Saisonvariable unwirksam gesetzt werden kann, solange man die Funktion nicht benötigt.
Da bin ich voll bei Dir und das Ganze ist auch schon längst geändert. Ich hätte allerdings auch nicht mit derartig starken Verzögerungen gerechnet (man sieht ja im zu Anfangs geposteten Systemprotokoll, dass das Ganze bei ca. 22 Sekunden liegt), da mir ein derartiges Verhalten bis dato nicht bekannt war und anscheinend anderen hier auch nicht.
Aktuelle Projekte:
Direkter SMS-Versand und -Empfang über CCU2&Raspberrymatic ohne Cloud:
viewtopic.php?f=31&t=39483

Automower (G2) steuern über Homematic per WLAN:
viewtopic.php?f=31&t=7295

mule
Beiträge: 1168
Registriert: 06.07.2010, 00:24
Hat sich bedankt: 3 Mal
Danksagung erhalten: 35 Mal

Re: Setzen einer Systemvariablen wird "verschluckt" (bei verlangsamter Programmausführung)

Beitrag von mule » 30.06.2022, 14:30

MichaelN hat geschrieben:
30.06.2022, 13:29
Aber ich glaube mittlerweile, daß wir nicht das vollständige Bild sehen, denn:
mule hat geschrieben:
30.06.2022, 12:31
entweder baue ich mir einen eigenen TCL-Daemonprozess auf der Raspberrymatic bzw. erweitere einen bereits von mir entwickelten) oder ich setze es per Java-Script unter ioBroker

Das hier geschilderte Problem war ein kleiner Teil von meiner Beleuchtungssteuerung, welche wiederum verknüpft ist mit der Rolladensteuerung. Die Rolladensteuerung läuft seit geraumer Zeit als eigen entwickelter TCL-Prozess mit parametriebaren Logikbausteinen und Ansteuerung von Somfy-Rolläden (hatte ich hier im Forum auch irgendwann mal veröffentlicht). Dies würde hier den Rahmen aber komplett sprengen. Da ich eh komplett von HM-Script und HM-GUI weg will werde ich auch die Beleuchtungssteuerung komplett neu und mit anderen Programmiermitteln umsetzen.
MichaelN hat geschrieben:
30.06.2022, 13:29
Ich vermute mal sehr stark, daß der störrischen Aktor auch Effekte auf die eingesetzte Middleware hat und diese ggf. Die CCU mit Anfragen "bombardiert" und damit zeitweise ausser Gefecht setzt. Sowas haben wir ja schon öfter hier gesehen.
Nein, da ich die Logik dann komplett anders umsetzen werde und dies inklusive der Möglichkeit HM-Komponenten bewusst zu "deaktivieren", so dass diese gar nicht mehr angesteuert werden. So etwas Ähnliches habe ich für mich schon im Bereich von Servicemeldungen vor etlichen Jahren umgesetzt.

Aber wie schon geschrieben: Es geht mir hier nicht darum eine Problemlösung für meinen konkreten Anwendungsfall zu finden (da weiß ich mir schon zu helfen und habe mir hier auch schon geholfen), sondern dem Grund für das merkwürdige Verhalten auf die Schliche zu kommen, so dass ggf. andere nicht in die Falle tappen oder (falls überhaupt möglich) das Problem (wenn es denn nicht so bewusst designed ist) zu beheben.
Aktuelle Projekte:
Direkter SMS-Versand und -Empfang über CCU2&Raspberrymatic ohne Cloud:
viewtopic.php?f=31&t=39483

Automower (G2) steuern über Homematic per WLAN:
viewtopic.php?f=31&t=7295

mule
Beiträge: 1168
Registriert: 06.07.2010, 00:24
Hat sich bedankt: 3 Mal
Danksagung erhalten: 35 Mal

Re: Setzen einer Systemvariablen wird "verschluckt" (bei verlangsamter Programmausführung)

Beitrag von mule » 30.06.2022, 14:39

Ansonsten: Erst einmal Danke an Alle für die Diskussion.

ich werde hoffentlich am Wochenende die Zeit finden die Doku zur Reproduktion des Themas auf das Wesentliche zusammenzufassen und dann erneut hier mit Programmen und entsprechenden Screenshots zu posten.
Zuletzt geändert von mule am 30.06.2022, 14:40, insgesamt 1-mal geändert.
Aktuelle Projekte:
Direkter SMS-Versand und -Empfang über CCU2&Raspberrymatic ohne Cloud:
viewtopic.php?f=31&t=39483

Automower (G2) steuern über Homematic per WLAN:
viewtopic.php?f=31&t=7295

Xel66
Beiträge: 14149
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

Re: Setzen einer Systemvariablen wird "verschluckt" (bei verlangsamter Programmausführung)

Beitrag von Xel66 » 30.06.2022, 14:40

mule hat geschrieben:
30.06.2022, 14:30
...sondern dem Grund für das merkwürdige Verhalten auf die Schliche zu kommen...
Für mich ist der Grund laut der Symptombeschreibung (und Glaskugel) das LBT (listen before talk).

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „HomeMatic allgemein“