Funk-Gong dauerhaft auslösen

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

Antworten
SventeHof
Beiträge: 15
Registriert: 23.02.2012, 07:16

Funk-Gong dauerhaft auslösen

Beitrag von SventeHof » 07.03.2012, 17:10

Moin zusammen,

da ich leider feststellen musste, das die Einstellung der Gongdauer an der CCU keinerlei Auswirkung hat, suche ich nun nach folgender Möglichkeit:

Was muss ich einstellen oder scripten, wenn der Gong in Dauerbetrieb gehen soll, sobald ein Türkontakt auslöst. Abstellen dann nur noch über Fernbedienung.

Gruß
Sven

jschipp99
Beiträge: 8
Registriert: 04.03.2012, 08:34

Re: Funk-Gong dauerhaft auslösen

Beitrag von jschipp99 » 07.03.2012, 21:31

Hallo Sven,
ich hab das folgendermaßen gelöst:
1. Sobald du den Dauer- Gong haben willst, setzt du eine Systemvariable vom Typ Zahl (z.B. svDauergong von 0 auf 1)
Anmerkung: meine Systemvariablen haben immer ein sv davor, damit gibts keine Verwechslungen mit anderen Objekten

2. eine andere Systemvariable vom Typ Zahl ruft in einem Programm durch "auslösen auf Aktualisierung" ein Script auf, verzögert um 10 Sekunden
In diesem Script wird dieselbe Variable um eins erhöht, dadurch ruft sich dieses Script immer wieder auf.
Das Zeitmodul könnte man dafür auch nehmen, irgendwann nach 1-2 Tagen steckt dieses aber. Lt. ELV soll man mit dem Zeitmodul nichts unter 1 Minute aufrufen, ich glaub aber, dass das nur die Wahrscheinlichkeit reduziert, dass der Fehler auftritt. Die von mir verwendete Variante läuft mitlerweile schon 2 Monate fehlerfrei.

In diesem Script prüfst du ausserdem dann die Variable svDauergong und steuerst bei 1 den Gong an:
Mit dem Datenpunkt :1 die LED:
dom.GetObject("devGong:1").DPByHssDP("ON_TIME").State(2);
dom.GetObject("devGong:1").DPByHssDP("STATE").State(1);

Die ON_TIME max. auf 6 setzen = 6 * blinken, mehr geht nicht.

Oder mit Datenpunkt :2 den Gong:
dom.GetObject("devGong:2").DPByHssDP("ON_TIME").State(2);
dom.GetObject("devGong:2").DPByHssDP("STATE").State(1);

Bei ON_TIME = 2 gongts einmal, mit ON_TIME = 5 gongts 2*. Mehr geht nicht.

Damit hast du jetzt alle 10 Sekunden ein Signal, solange die Systemvariable gesetzt ist.
Ich hab damit eine Alarmanlage realisiert, solange scharf, blinkt nur die LED, bei Alarm kommt der Gong.
Läuft immer in der Nacht und bei Abwesenheit, funktioniert fehlerfrei.

LG
Hannes

SventeHof
Beiträge: 15
Registriert: 23.02.2012, 07:16

Funk-Gong dauerhaft auslösen

Beitrag von SventeHof » 07.03.2012, 23:03

Hallo Hannes,

danke für deine sehr ausführliche Antwort!
Auch wenn ich gerade nur Bahnhof verstehe, werde ich mir das morgen nochmal in Ruhe ansehen und verstehen lernen. Im Grunde ist dies genau das, wofür ich es auch suche. Mal schaun, wie weit ich als Laie da komme ;-)

SventeHof
Beiträge: 15
Registriert: 23.02.2012, 07:16

Funk-Gong dauerhaft auslösen

Beitrag von SventeHof » 08.03.2012, 16:46

Moin,

wenn möglich, wäre es gut, wenn du mir dein beschriebenes Script geben könntest. Dies ist auch genau das, was ich mir vorgestellt habe.

Sollten diese sich jedoch schon in deiner oben aufgeführten Antwort befinden, dann gib kurz Bescheid.

Verstehe das im Moment nicht so ganz.

Gruß
Sven

SventeHof
Beiträge: 15
Registriert: 23.02.2012, 07:16

Re: Funk-Gong dauerhaft auslösen

Beitrag von SventeHof » 08.03.2012, 22:05

So, langsam komme ich weiter und die Variable wird um 1 erhöht und dies alle 10 Sekunden.
Leider wird bei mir nicht die Lampe angesteuert, wo liegt hier der Denkfehler?

Code: Alles auswählen

var obj = dom.GetObject('svTest');
obj.State(obj.State()+1.00);
dom.GetObject("BidCos-RF.SerienNR:1").DPByHssDP("ON_TIME").State(2);
dom.GetObject("BidCos-RF.SerienNR:1").DPByHssDP("STATE").State(1);

Gruß
Sven

SventeHof
Beiträge: 15
Registriert: 23.02.2012, 07:16

Re: Funk-Gong dauerhaft auslösen

Beitrag von SventeHof » 08.03.2012, 23:09

So,

ich möchte Euch hier mein Ergebnis zeigen, welches ich nach vielen ausprobieren endlich hinbekommen habe:

Code: Alles auswählen

var obj = dom.GetObject('svTest');
obj.State(obj.State()+1.00);
dom.GetObject("BidCos-RF.SerienNR:1.ON_TIME").State(2);
dom.GetObject("BidCos-RF.SerienNR:1.STATE").State(1);

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“