Shop-Wechsel

Der Warenkorb wird nicht übernommen.

Zum Firmenkunden / Bildungseinrichtungs Shop

Funk-System Homematic

Programm für HM-Sen-DB-PCB Doorbell Sensor

Beiträge zu diesem Thema: 2

ELV Homematic Bausatz Funk-Klingelsignalsensor HM-Sen-DB-PCB

Artikel-Nr.: 132846

zum Produkt
Programm für HM-Sen-DB-PCB Doorbell Sensor
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
10.03.2019, 20:17
Hallo,

ich suche einfache Programmbeispiel (Script), wie ich eine Action auslösen kann erst nach z.B. 3 Mal klingeln innerhalb vorgegebener Zeit (z.B. 6 Sekunden).

Es muss mit Script möglich sein, oder?

Vielen Dank.
Aw: Programm für HM-Sen-DB-PCB Doorbell Sensor
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
11.03.2019, 13:43
Hallo deavik,

für Testzwecke kannst Du einmal folgende Programmsturktur ausprobieren.

Die Programme wurden hier so ausgeführt, dass ein neuer berechtigter Programmstart immer erst nach Ablauf des angesteuerten Aktors erfolgt. Mit dieser Verriegelung wird z.B. sichergestellt, dass ein neuer Tastendruck erst nach kompletten, positiven Durchlauf wieder ausgelöst werden kann.

Hier ein Beispiel ..
*..mit dem 1. Tastendruck wird das Zeitraster ...6 sec aktiviert
*..gleichzeitig wird dieser 1. Tastendruck bereits mitgezählt
*..nach weiteren 2 Tastendrücke wird ein Ausgang aktiviert ... zum testen kannst Du hier als Ausgang die zeitbegrenzte Ansteuerung eines Aktors wählen.

Erstelle als erstes 2 Systemvariable:

Sys"TEST" --> vom Typ Logik (true/false)
Sys"COUNTER" --> vom Typ Zahl

Dann erstelle 2 Programme:

1. Programm:
Wenn: Klingelsignalsensor - Tastendruck kurz
UND
Aktor - Schaltzustand: aus - nur prüfen
Dann:..
SysTEST - sofort - true
SysTEST - verzögert um - 6sec - false

2. Programm:
Wenn: Klingelsignalsensor - Tastendruck kurz
Dann:...script
var y = dom.GetObject("TEST").Value();
if (y == true)
{ integer x = dom.GetObject("COUNTER").Value();
x = x + 1;
if (x > 2) {x=0;} }
dom.GetObject("COUNTER").State(x);WriteLine(x);
if ((x==2) && (y == true)) { dom.GetObject("AKTOR").DPByHssDP("ON_TIME").State(20); dom.GetObject("AKTOR").DPByHssDP("STATE").State(true);}

Einfach einmal damit spielen.

Nur als Hinweis: Wenn der "Kleine" problemlos eingesetzt werden soll..beachte die notwendigen Hinweise zur Installation.

Gruß elkotek
Viele Grüße..elkotek