Seite 1 von 1

[GELÖST] Programm wird nicht durch Event getriggered

Verfasst: 02.07.2019, 16:24
von srunschke
Hallo zusammen,

ich habe ein kleines Problem und sehe irgendwie den Wald vor Bäumen nicht.

Ich experimentiere gerade etwas mit meiner Beschattung und habe mir für den ersten Test etwas gebastelt:
2019-07-02 16_14_03-Window.png
Kurze Legende:
"CCU_in_Reboot" sollte klar sein, umgebaute Anwesenheit SysVar
Zeitsteuerung ist 07.00 - 14.00 täglich
Wetterstation ist eine HmIP-SWO-PL
"Sonnenschein seit" ist eine SysVar, die ich dynamisch in einem Script berechne
Thermostat Wohnzimmer und Badezimmer sind HmIP-BWTH

Leider wird dieser Block nie getriggered und ich verstehe nicht warum.
Aber: führe ich das Programm manuell aus, dann funktioniert der Block.

Die einzige Theorie, die mir überhaupt noch einfällt, wäre dass der Trigger "bei Aktualisierung" bei SysVars nicht auslöst, wenn diese in einem Script über dom.GetObject('Sonnenschein seit').State(); gesetzt wird - aber das kann ich mir ehrlich gesagt bei besten Willen nicht vorstellen...

Hat jemand eine Idee?

Re: Programm wird nicht durch Event getriggered

Verfasst: 02.07.2019, 16:47
von manfredh
1. Ein manuell ausgeführtes Programm prüft keine Bedingungen sondern führt immer das erste DANN aus.

2. Was soll der letze Block mit zweimal identischer Bedingung?

3. Ein Block triggert nicht das Programm sondern eine einzelne Zeile tut das. In deinem Fall wären das die Zeilen 3 oder 4 - die einzigen, die triggern könnten.

4. Erst beim Ausführen (nicht manuell!) werden die Bedingungen geprüft - und zwar im kompletten Block. Um das Dann auszuführen müssten dann also ALLE Zeilen wahr sein (weil verUNDet).

Dazu kommt, dass das Programm möglicherweise korrupt ist. Das passiert, wenn du nach Programmerstellung an der Konfiguration der SVen rumfummelst.

Re: Programm wird nicht durch Event getriggered

Verfasst: 02.07.2019, 18:25
von srunschke
manfredh hat geschrieben:
02.07.2019, 16:47
1. Ein manuell ausgeführtes Programm prüft keine Bedingungen sondern führt immer das erste DANN aus.
Ah ok, das war mir so gar nicht bewusst...
2. Was soll der letze Block mit zweimal identischer Bedingung?
Der soll das machen, was da steht. Denn die Bedingungen sind nicht identisch...
3. Ein Block triggert nicht das Programm sondern eine einzelne Zeile tut das. In deinem Fall wären das die Zeilen 3 oder 4 - die einzigen, die triggern könnten.
So soll es auch sein. Das sind Bedingungen, die von der Wetterstation im Schnitt alle 3 Minuten gesendet werden - und somit auch aktualisiert. Das sollte meiner Meinung nach als Trigger ausreichen - wenn die Wetterstation nicht mehr senden sollte, kann ich mich auch sowieso nicht mehr auf die Daten verlassen und will das Programm nicht mehr ausgeführt haben.
4. Erst beim Ausführen (nicht manuell!) werden die Bedingungen geprüft - und zwar im kompletten Block. Um das Dann auszuführen müssten dann also ALLE Zeilen wahr sein (weil verUNDet).
Ja, so soll es ja auch sein.
Block 1 stellt nur die Grundvoraussetzungen: Zeitspanne 7-14 Uhr, soll nicht beim Reboot der CCU laufen
Block 2 enthält die Trigger, wodurch das Programm seine Parameter erhält und auch regelmäßig durch die Aktualisierung ausgelöst werden sollte. Ich weiß, dass ich Block 1&2 auch in einen hätte packen können, mache das aber der Übersichtlichkeit wegen gerne so.
Block 3 enthält zwei Bedingungen, von denen mindestens eine wahr sein sollte - denn beide sollte mehr oder weniger gleich sein.
Dazu kommt, dass das Programm möglicherweise korrupt ist. Das passiert, wenn du nach Programmerstellung an der Konfiguration der SVen rumfummelst.
Ich benutze ja nur 2 SysVars. Die eine existiert schon ewig und die andere habe ich seit dem Anlegen auch nicht verändert.

Re: Programm wird nicht durch Event getriggered

Verfasst: 02.07.2019, 19:22
von manfredh
Okay, das mit den verschiedenen Räumen im letzten Block hatte ich übersehen - sorry.

Jetzt würde ich mal folgendes machen:

1. Die Sysvars manuell verändern. Geht leider nicht per WebUi. Entweder über ein Addon TinyMatic kann das z.B.) oder ein kleines Hilfsprogramm, das die SV anfasst.

2. Einen zusätzlichen Trigger zum Testen einbauen.

3. Die beiden Zeilen löschen und neu anlegen.

Re: Programm wird nicht durch Event getriggered

Verfasst: 02.07.2019, 21:34
von Linnet998
manfredh hat geschrieben:
02.07.2019, 19:22

1. Die Sysvars manuell verändern. Geht leider nicht per WebUi. Entweder über ein Addon TinyMatic kann das z.B.) oder ein kleines Hilfsprogramm, das die SV anfasst..
Geht schon über die webui... einfach über script testen

Code: Alles auswählen

dom.GetObject("Name der variable").State( gewünschter Wert der variable);
Und wenn du es gleich überprüfen willst dann

Code: Alles auswählen

var a = dom.GetObject("Name der variable").Value();
dom.GetObject("Name der variable").State(gewünschter wert);
WriteLine(a);

Re: Programm wird nicht durch Event getriggered

Verfasst: 03.07.2019, 09:49
von manfredh
Linnet998 hat geschrieben:
02.07.2019, 21:34
Geht schon über die webui... einfach über script testen
In Homematic kann man scripten? :shock:

Ernsthaft: ich habe hier inzwischen ein sehr komplexes Smart Home System. Neben der CCU läuft noch ioBroker als VM auf einem NUC mit 28 Adapterinstanzen. Aber trotzdem (oder eher gerade deshalb) bleibt Scripting in der CCU für mich XXX. :wink:

Re: Programm wird nicht durch Event getriggered

Verfasst: 03.07.2019, 10:04
von Linnet998
du meintest nur es geht nicht... da wollte ich wiedersprechen :lol: :D

Re: Programm wird nicht durch Event getriggered

Verfasst: 04.07.2019, 23:41
von srunschke
So, ich habe jetzt mal alles durchprobiert und die einzige Lösung war dann am Ende das Programm zu löschen und exakt genau so wieder neu zu bauen - dann ging es...

Irgendwie ein bisschen traurig, dass EQ3 das nicht in den Griff kriegt...

Danke an alle, die geholfen haben.

S