Danalock öffnen und schließen per RFID

Hallo,

ich betreibe aktuell einen renkforce RFID reader mit einem Danalock an einem HC2.
Zur Einbindung des RFID Lesers nutze ich den NO Relais Ausgang in Verbindung mit einem Fibaro Universal Sensor.
Das Öffnen funktioniert seit knapp einem 1 Jahr problemlos mit 4 Tags.

Nun ist natürlich der Wunsch (zu recht) aufgekommen ebenso mit RFID abzuschließen.
Das Relais schließt voreingestellt 2 Sekunden. Ich kann die Zeit aber verlängern indem ich den Tag entsprechend länger davor halte.
Ich würde es gerne so programmieren, dass die Tür bei <= 2 Sekunden das Danalock öffnet und bei >=3 Sekunden die Tür verschlossen wird.
Aktuell frage ich den Zustand des Universal Sensors über die gesendete Szene ab.

So sieht der Code z.Zt. aus (zugegeben sehr schlecht :slight_smile: )

--[[
%% properties
37 sceneActivation
%% events
%% globals
--]]

iPhone1 = 31;       -- iPhone Stefan.
iPhone2 = 41;       -- iPhone Melanie.

local startSource = fibaro:getSourceTrigger();

if (tonumber(fibaro:getValue(37, "sceneActivation")) == 10) and
   (tonumber(fibaro:getValue(34, "value")) == 0)
  
  then
  fibaro:call(21, "unsecure"); fibaro:debug("Tür entriegelt"); 
  fibaro:call(iPhone1, "sendDefinedPushNotification", "4"); -- Push Handy Stefan
  fibaro:call(iPhone2, "sendDefinedPushNotification", "4"); -- Push Handy Stefan
  
else

  fibaro:debug("Tür ist nicht geschlossen");
   end

Ich würde es gerne quasi so in eine Szene programmieren:

if
Taste oder Szene kürzer oder gleich 2 Sekunden

dann Danalock = öffnen

else

Danalock = schließen

ich bin für jede Hilfe oder Hinweisesehr dankbar.

VG
Stefan

Werden bei den unterschiedlichen Schließzeiten andere sceneActivationIDs übertragen?

Gruß

Wenn das Relais:
schließt = 10
Öffnet = 11

Laut manual sollte es die 12 geben wenn in1 des
Universal Sensor gehalten wird aber das habe ich bislang nicht geschafft. Wäre interessant an sicher Zeit er “halten” erkennt.
Dann hätte ich es damit bereits realisiert :slight_smile:
Dachte ich hätte es übersehen :frowning:

Wenn ich die Option 3 auf 2 “Monostabil / Taster” im Universal Modul stelle bekomme ich Szene 12 (Halten) und 13 (loslassen) aber nicht mehr 10 & 11.
Die SzeneID 14 für Doppelklick wäre nun ein Ansatz gewesen es zu realisieren doch leider ist das Relais mit einer kürzesten Schaltzeit von 0,5 Sek.
zu langsam um ein Doppelklick zu machen bzw. ist es dem UniSensor zu träge.
Irgendwie komme ich nicht weiter…

Ich denke ich komme um einen zusätzlichen Taster nicht herum mit dem ich sagen kann das zugeschlossen werden soll.

So wie du es im ersten Post beschreibst, funktioniert es jedenfalls nicht.

Gruß

Das musste ich nun auch feststellen :slight_smile:
Werde es jetzt wie gesagt über einen kleinen Edelstahltaster realisieren. Den setze ich in der Tür abgewandten Seite unserer Klingelabdeckung rein, damit er nicht sofort sichtbar ist. Von der Klingel aus ist noch 1 Doppelader frei. Dahinter werde ich den IN2 des Universalsensors klemmen, der dann den Taster abfragt.
Ist alles getestet und für gut befunden. Anbei noch der überarbeitete Code.

--[[
%% properties
34 value
37 value
38 value
%% events
%% globals
--]]

iPhone1 = 31;       -- iPhone Stefan.
iPhone2 = 41;       -- iPhone Melanie.
tuerID = 34
RFID = 37
tasterID = 38
tuerValue = tonumber(fibaro:getValue(tuerID, "value"))
rfidValue = tonumber(fibaro:getValue(RFID, "value"))
tasterValue = tonumber(fibaro:getValue(tasterID, "value"))

if tuerValue == 0 and tasterValue == 0 and rfidValue == 0 then
 fibaro:call(21, "secure"); fibaro:debug("Tür verriegelt"); 
 fibaro:call(iPhone1, "sendDefinedPushNotification", "4"); -- Push Handy Stefan
 fibaro:call(iPhone2, "sendDefinedPushNotification", "4"); -- Push Handy Melanie
elseif tuerValue == 0 and tasterValue == 1 and rfidValue == 0 then
 fibaro:call(21, "unsecure"); fibaro:debug("Tür entriegelt"); 
 fibaro:call(iPhone1, "sendDefinedPushNotification", "4"); -- Push Handy Stefan
 fibaro:call(iPhone2, "sendDefinedPushNotification", "4"); -- Push Handy Melanie

  -- fibaro:debug(fibaro:getValue(37, "sceneActivation"))
-- fibaro:debug(fibaro:getValue(37, "value"))  
end