Problem beim Festlegen der Einschaltdauer per Skript

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Harvey68
Beiträge: 3
Registriert: 02.08.2017, 23:38

Problem beim Festlegen der Einschaltdauer per Skript

Beitrag von Harvey68 » 13.08.2017, 15:50

Hallo zusammen,
ich habe folgendes Problem: Ich schalte eine Lampe für eine bestimmte Zeit an. MIt web-UI kein Problem: Einschaltdauer festlegen und im nächsten Schritt [verzögert um] 1s den Aktor einschalten.

Aber wie macht man das in einem Skript?
Beide Befehle hintereinander rausschicken funktioniert leider nicht immer.

aktorObj.DPByHssDP("ON_TIME").State(5);
aktorObj.State(true);

1. Aufruf: funktionert. Abwarten bis die Lampe ausgeht (zum Testen 5s, der Effekt tritt aber auch bei längeren Zeiten auf)
2. Aufruf: funktioniert nicht

"von Hand": aktorObj.State(false);

3. Aufruf funktioniert. 5s Abwarten bis Lampe aus
4. Aufruf mit anderer Zeit funktioniert
5. Aufruf mit wieder ursprünglicher Zeit funktioniert
usw.

Auch wenn man während der Einschaltdauer eine neue Zeit setzt und neu anschaltet, funktioniert es.

Wenn ich den Aktor entweder "von Hand" ausschalte, oder beim nächsten Mal mit einer anderen Einschaltdauer einschalte, dann funktioniert es.

Das es an der fehlenden Verzögerung liegt, glaube ich nicht, denn nach obigem Schema funktioniert es ja zuverlässig, aber eben sehr unpraktisch.
Falls es doch die Pause sein sollte: Wo bekomme ich die her?

Wäre super, wenn mir da jemand weiterhelfen könnte, mir gehen die Ideen aus.

Grüße und einen schönen Rest-Sonntag,
Harvey

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

Re: Problem beim Festlegen der Einschaltdauer per Skript

Beitrag von alchy » 13.08.2017, 16:14

Um welchen Aktor handelt es sich :?:
Unter welchen Umständen funktioniert es denn dabei reproduzierbar NICHT ?

Ich hatte mal eine Testreihe durchgeführt mit einer HM-LC-Sw1-Pl und nie Aussetzer bei dieser Art der Steuerung ermittelt.

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.

Harvey68
Beiträge: 3
Registriert: 02.08.2017, 23:38

Re: Problem beim Festlegen der Einschaltdauer per Skript

Beitrag von Harvey68 » 13.08.2017, 16:54

Hallo Alchy,
alchy hat geschrieben:Um welchen Aktor handelt es sich :?:
Unter welchen Umständen funktioniert es denn dabei reproduzierbar NICHT ?

Ich hatte mal eine Testreihe durchgeführt mit einer HM-LC-Sw1-Pl und nie Aussetzer bei dieser Art der Steuerung ermittelt.

Alchy
es ist der HM-LC-Sw1-FM.

Es funktioniert immer dann nicht, wenn:
1. der Aktor zuvor mit der gleichen Einschaltdauer eingeschaltet war und
2. der Aktor sich ausgeschaltet hat weil die Zeit abgelaufen war.

Noch etwas zur Umgebung:
Das Einschalten wird durch das setzen eine Systemvariablen getriggert. Wenn auch ein anderes Script (eingebettet in ein anderes Programm) auf diese Variable reagiert und einen anderen Aktor (mit der gleichen Einschaltdauer) einschaltet, funktioniert es (bei beiden Aktoren).

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

Re: Problem beim Festlegen der Einschaltdauer per Skript

Beitrag von alchy » 13.08.2017, 18:46

Einen solchen Aktor habe ich leider nicht, kann das also auch nicht nachstellen.
Weder mit HM-LC-Sw2-FM noch mit HM-LC-Sw1-Pl usw. kann ich aber das beschriebene Verhalten reproduzieren.

Alchy

Code: Alles auswählen

(dom.GetObject(ID_CHANNELS).Get("Kanalname")).DPByHssDP("ON_TIME").State(10);
(dom.GetObject(ID_CHANNELS).Get("Kanalname")).DPByHssDP("STATE").State(true);

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.

Bratmaxe
Beiträge: 1573
Registriert: 28.05.2015, 12:48
Wohnort: Willich
Hat sich bedankt: 4 Mal
Danksagung erhalten: 10 Mal

Re: Problem beim Festlegen der Einschaltdauer per Skript

Beitrag von Bratmaxe » 14.08.2017, 10:01

Ist zwar nur ein Workaround, aber wenn du dem Aktor vorher eine Einschaltdauer übermittelst, die du sonst neimals verwendet. z.B. 10805 Sekudnen, und danach deinen eigentliche Einschaltdauer, dann müsste das deinen Feher ja umgehen sind auch nur zwei Zeilen mehr im Skript.


Zur Info. Ich hatte mal einen Aktor, der war nach Ablauf der Einschaltdauer nicht mehr ansprechbar, bis zum Spannungslos schalten. Das war ein Fehler im Aktor wurde mir durch ELV anstandslos ausgetausch. Dein Fehler ist aber etwas anders, aber einen Hardwaredefekt kann man auch hier nicht grundsätzlich ausschließen.

Hast du mal geprüft, ob die aktuelle Firmware auf dem Aktor installiert ist?

Gruß Carsten
Gruß Carsten

Harvey68
Beiträge: 3
Registriert: 02.08.2017, 23:38

Re: Problem beim Festlegen der Einschaltdauer per Skript

Beitrag von Harvey68 » 14.08.2017, 23:19

Hallo Alchi, hallo Carsten,
vielen Dank für die Hilfe. Ich habe den/die Fehler zwar noch nicht gefunden, aber wenigstens weiß ich jetzt woran es nicht liegt und wie ich weitermache.
Aktor und an dessen Ansteuerung sind offenbar ok.

Nachdem ich noch ewig im Projekt rumprobiert habe, habe ich jetzt das getan, was ich als erstes hätte tun sollen: Reduzieren auf das Wesentliche. Also: Taste Abfragen und 2-zeiliges Skript aufrufen, und siehe da, so funktioniert es. Reproduzierbar oft hintereinander. Mit gleichen und verschiedenen Zeiten.

Direkt vor dem "richtigen" Schalten eine andere Zeit einstellen hat übrigens nicht geholfen, ich habe das als Timingproblem interpretiert, anscheinend ist das Skript aber gar nicht beim Aufruf angekommen. :-(

Antworten

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