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
Problem beim Festlegen der Einschaltdauer per Skript
Moderator: Co-Administratoren
-
- 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
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
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.
Re: Problem beim Festlegen der Einschaltdauer per Skript
Hallo Alchy,
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).
es ist der HM-LC-Sw1-FM.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 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).
-
- 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
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
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.
-
- 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
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
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
Re: Problem beim Festlegen der Einschaltdauer per Skript
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.
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.