Programmierung Rolläden macht nicht was sie soll

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

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

Re: Programmierung Rolläden macht nicht was sie soll

Beitrag von Baxxy » 16.04.2024, 16:02

Grundsätzlich wird die ganze "Programm-Abarbeitungs-Routine" bei jedem "Event" eines aktiven Triggers (Aktualisierung / Änderung) angestoßen.
Dabei spielt es erstmal keine Rolle ob sich der Wert des Events (hier die Helligkeit) geändert hat oder gleich blieb.
Meine Worte dafür sind "triggern" oder auch "anstubsen" des Programmes.

Testsetup:
nackte RM ohne Funkmodul, 2 SysVars angelegt, 1 Programm angelegt
RM_Trigger_TEST_Ausgangslage.JPG
Ausgangslage:
SV_ZAHL = 1.1

Ich "aktualisiere" SV_ZAHL mit 1.1:

Code: Alles auswählen

Apr 16 18:25:19 homematic-raspi local0.debug ReGaHss: Verbose: called Program ID = 1451 'BX-Trigger-Test' with valNew = '1.100000' ; oidTrigger = 1450 [SetState():iseDOMPrg.cpp:483]
Apr 16 18:25:19 homematic-raspi local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, trigger dp exists  [CheckCondition2Data():iseCondition.cpp:528]
Apr 16 18:25:19 homematic-raspi local0.debug ReGaHss: Verbose: type = DP_GREATER, condition valL = 1.100000 valR1 = 1.500000 [Evaluate():iseCondition.cpp:317]
Apr 16 18:25:19 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, condition result = 0 [Evaluate():iseCondition.cpp:1078]
Apr 16 18:25:19 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, CONDITION_TRIGGER_EXECUTE is reset. [Evaluate():iseCondition.cpp:1116]
Apr 16 18:25:19 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, condition result = 0 [Evaluate():iseCondition.cpp:1123]
Apr 16 18:25:19 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, CONDITION_TRIGGER_EXECUTE is reset. [Evaluate():iseRule.cpp:227]
Apr 16 18:25:19 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, condition result = 0 [Evaluate():iseRule.cpp:235]
Apr 16 18:25:19 homematic-raspi local0.info ReGaHss: Info: Rule evaluated state is FALSE by Program ID = 1451 'BX-Trigger-Test' [SetState():iseDOMPrg.cpp:536]
Ich "ändere" SV_ZAHL auf 1.8:

Code: Alles auswählen

Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: called Program ID = 1451 'BX-Trigger-Test' with valNew = '1.800000' ; oidTrigger = 1450 [SetState():iseDOMPrg.cpp:483]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, trigger dp exists  [CheckCondition2Data():iseCondition.cpp:528]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: type = DP_GREATER, condition valL = 1.800000 valR1 = 1.500000 [Evaluate():iseCondition.cpp:317]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, CONDITION_TRIGGER_EXECUTE is reset. [Evaluate():iseCondition.cpp:1116]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, CONDITION_TRIGGER_TRUE is set. [Evaluate():iseCondition.cpp:1121]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, condition result = 1 [Evaluate():iseCondition.cpp:1123]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, CONDITION_TRIGGER_EXECUTE is reset. [Evaluate():iseRule.cpp:227]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, CONDITION_TRIGGER_TRUE is set. [Evaluate():iseRule.cpp:232]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, condition result = 1 [Evaluate():iseRule.cpp:235]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: Rule evaluated state is TRUE by Program ID = 1451 'BX-Trigger-Test'; Destination ID = 1453 [SetState():iseDOMPrg.cpp:509]
Apr 16 18:26:16 homematic-raspi local0.info ReGaHss: Info: Program ID = 1451 'BX-Trigger-Test', rule's trigger flags = 4 [SetState():iseDOMPrg.cpp:524]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: execute Program ID = 1451 'BX-Trigger-Test'; Destination ID = 1453 [Execute():iseDOMPrg.cpp:626]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: start execute Destination within the trigger delay 0 [Execute():iseDOMPrg.cpp:630]
Apr 16 18:26:16 homematic-raspi local0.info ReGaHss: Info: added element id=1461; oid=1461; val=▒nderung groesser 1.5; time=0; oidTrigger=1450 [Add():iseRTScheduler.cpp:369]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: ExecuteDestination succeeded from Program ID = 1451 'BX-Trigger-Test' with valNew = '1.800000' [Execute():iseDOMPrg.cpp:640]
Apr 16 18:26:16 homematic-raspi local0.info ReGaHss: Info: calling SetState on DP id = 1461 (SV_TEXT) value = ▒nderung groesser 1.5 oidTrigger = 1450 [ExecuteWriteJob():iseRTScheduler.cpp:637]
Apr 16 18:26:16 homematic-raspi local0.info ReGaHss: Info: SetState() succeeded for DP id = 1461 [ExecuteWriteJob():iseRTScheduler.cpp:642]
Apr 16 18:26:16 homematic-raspi local0.debug ReGaHss: Verbose: ExecuteWriteJob: oid = 1461; ticks = 0 [Execute():iseRTScheduler.cpp:595]
Apr 16 18:26:16 homematic-raspi local0.info ReGaHss: Info: wait for event ms= 4294967295 [ThreadFunction():iseRTScheduler.cpp:485]
Ich "aktualisiere" SV_ZAHL mit 1.8:

Code: Alles auswählen

Apr 16 18:26:56 homematic-raspi local0.debug ReGaHss: Verbose: called Program ID = 1451 'BX-Trigger-Test' with valNew = '1.800000' ; oidTrigger = 1450 [SetState():iseDOMPrg.cpp:483]
Apr 16 18:26:56 homematic-raspi local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, trigger dp exists  [CheckCondition2Data():iseCondition.cpp:528]
Apr 16 18:26:56 homematic-raspi local0.debug ReGaHss: Verbose: type = DP_GREATER, condition valL = 1.800000 valR1 = 1.500000 [Evaluate():iseCondition.cpp:317]
Apr 16 18:26:56 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, CONDITION_TRIGGER_EXECUTE is reset. [Evaluate():iseCondition.cpp:1116]
Apr 16 18:26:56 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, condition result = 1 [Evaluate():iseCondition.cpp:1123]
Apr 16 18:26:56 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, CONDITION_TRIGGER_EXECUTE is reset. [Evaluate():iseRule.cpp:227]
Apr 16 18:26:56 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, condition result = 1 [Evaluate():iseRule.cpp:235]
Apr 16 18:26:56 homematic-raspi local0.debug ReGaHss: Verbose: Rule evaluated state is TRUE by Program ID = 1451 'BX-Trigger-Test'; Destination ID = 1453 [SetState():iseDOMPrg.cpp:509]
Apr 16 18:26:56 homematic-raspi local0.info ReGaHss: Info: break execute for Program ID = 1451 'BX-Trigger-Test', rule's trigger flags = 0 [SetState():iseDOMPrg.cpp:530]
Ich "ändere" SV_ZAHL auf 1.1:

Code: Alles auswählen

Apr 16 18:27:28 homematic-raspi local0.debug ReGaHss: Verbose: called Program ID = 1451 'BX-Trigger-Test' with valNew = '1.100000' ; oidTrigger = 1450 [SetState():iseDOMPrg.cpp:483]
Apr 16 18:27:28 homematic-raspi local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, trigger dp exists  [CheckCondition2Data():iseCondition.cpp:528]
Apr 16 18:27:28 homematic-raspi local0.debug ReGaHss: Verbose: type = DP_GREATER, condition valL = 1.100000 valR1 = 1.500000 [Evaluate():iseCondition.cpp:317]
Apr 16 18:27:28 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, condition result = 0 [Evaluate():iseCondition.cpp:1078]
Apr 16 18:27:28 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, CONDITION_TRIGGER_EXECUTE is reset. [Evaluate():iseCondition.cpp:1116]
Apr 16 18:27:28 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, CONDITION_TRIGGER_TRUE is set. [Evaluate():iseCondition.cpp:1121]
Apr 16 18:27:28 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, condition result = 0 [Evaluate():iseCondition.cpp:1123]
Apr 16 18:27:28 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, CONDITION_TRIGGER_EXECUTE is reset. [Evaluate():iseRule.cpp:227]
Apr 16 18:27:28 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, CONDITION_TRIGGER_TRUE is set. [Evaluate():iseRule.cpp:232]
Apr 16 18:27:28 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, condition result = 0 [Evaluate():iseRule.cpp:235]
Apr 16 18:27:28 homematic-raspi local0.info ReGaHss: Info: Rule evaluated state is FALSE by Program ID = 1451 'BX-Trigger-Test' [SetState():iseDOMPrg.cpp:536]
Ich "aktualisiere" SV_ZAHL mit 1.1:

Code: Alles auswählen

Apr 16 18:27:56 homematic-raspi local0.debug ReGaHss: Verbose: called Program ID = 1451 'BX-Trigger-Test' with valNew = '1.100000' ; oidTrigger = 1450 [SetState():iseDOMPrg.cpp:483]
Apr 16 18:27:56 homematic-raspi local0.debug ReGaHss: Verbose: DP_VALUE_CHECK_CHANGE is set, trigger dp exists  [CheckCondition2Data():iseCondition.cpp:528]
Apr 16 18:27:56 homematic-raspi local0.debug ReGaHss: Verbose: type = DP_GREATER, condition valL = 1.100000 valR1 = 1.500000 [Evaluate():iseCondition.cpp:317]
Apr 16 18:27:56 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, condition result = 0 [Evaluate():iseCondition.cpp:1078]
Apr 16 18:27:56 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, CONDITION_TRIGGER_EXECUTE is reset. [Evaluate():iseCondition.cpp:1116]
Apr 16 18:27:56 homematic-raspi local0.debug ReGaHss: Verbose: sc = 0, condition result = 0 [Evaluate():iseCondition.cpp:1123]
Apr 16 18:27:56 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, CONDITION_TRIGGER_EXECUTE is reset. [Evaluate():iseRule.cpp:227]
Apr 16 18:27:56 homematic-raspi local0.debug ReGaHss: Verbose: c = 0, condition result = 0 [Evaluate():iseRule.cpp:235]
Apr 16 18:27:56 homematic-raspi local0.info ReGaHss: Info: Rule evaluated state is FALSE by Program ID = 1451 'BX-Trigger-Test' [SetState():iseDOMPrg.cpp:536]
Ist doch ganz einfach... :wink:

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

Re: Programmierung Rolläden macht nicht was sie soll

Beitrag von Baxxy » 16.04.2024, 18:30

Da die Debug-Ausgaben unvollständig waren habe ich diese jetzt nochmal aktualisiert.
Sollten jetzt komplett sein.

Gefiltert mit:

Code: Alles auswählen

tail -f /var/log/messages | grep -v -e 'web' -e 'bytes' -e 'IseSession' -e 'http' -e 'DST' -e 'ISETIMEZONE' -e 'Timer' -e 'timeout' -e 'flag is set to = 1'

Schattenmann
Beiträge: 6
Registriert: 12.04.2024, 10:27
System: CCU

Re: Programmierung Rolläden macht nicht was sie soll

Beitrag von Schattenmann » 21.04.2024, 19:54

Hallo zusammen,

ich habe das jetzt so abgeändert wie vorgeschlagen. Sämtliche Helligkeitsbezogenen Prüfungen aus "nur prüfen" gestellt. Lediglich einmal steht "bei Aktualisierung" drin. Damit wird der Trigger ausgelöst. Die helligkeit wird "nur" überprüft. Das Programm läuft nun sauber und macht, was es soll!

DANKE für den Support.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“