Riegelkontakt für Anwesenheitssteuerung

Das Skript muss ich noch ändern, da der Kontakt bei versperren der Türe SCHLIESST und nicht öffnet.
Das Kabel kann zwar BEIDES, aber die Grafik des Türkontaktes ist logischer, wenn man es umdreht!

@nervv
Ist es genug, wenn ich in den folgenden Zeilen “0” und “1” austausche, wie im Code unten?
Oder hab ich was übersehen?

--- Schärfen ---
if ( (tonumber(fibaro:getValue(riegel, "value")) == 0 ) ) then
      fibaro:debug('Türe Abgeschlossen')

und

--- Entschäfen ---
if ( (tonumber(fibaro:getValue(riegel, "value")) == 1 ) ) then
      fibaro:debug('Türe Aufgeschlossen')
	

Sieht gut aus. Hast du ihn an einen Fibaro Fenster/ Tür Sensor angeschlossen?

Ja ich habe ihn angeschlossen, wie in dem Bild.
Nur statt der Taste hängt der Riegelkontakt als “Schliesser” dran.
Bedeutet: Tür versperrt, Kontakt verschlossen. Tür aufgesperrt, Kontakt offen.

Habe das Skript von Nervv wie oben beschrieben verändert, funktioniert bis jetzt gut!

Einziges Problem, ich bekomme einen Alarm, sofern ausgelöst am Handy erst angezeigt, wenn ich die Fibaro app starte.
Kann ich das irgendwie so konfigurieren, dass die auch kommen wenn die App nicht läuft?
Habe Android 6.x auf einem Galaxy S7 Edge…

Hi pblacky,

ausdiesem Grund erhalte ich die Mitteilungen mit der App Pushover… Siehe ein paar Beiträge vorher :slight_smile:

Bzgl. der 0 / 1 Problematik:
Du kannst die Parameter Konfigurieren. beim Fensterkontakt ist es Parameter 3 / 4
NC = Normal CLosed
NO = Normal openend

Grüße

Verstehe ich das richtig, wenn abgeschlossen wird, wird der Bolzen nach hinten umgelegt (Durch den Schließmechanimus des Schlosses) und meldet diesen Zustand dann an das angeschlossene Modul?

Ja das verstehst du richtig.
In meinem Schloss ist es wichtig gewesen, dass es für den Kontakt egal ist ob ich einmal zusperre oder 2 x.
Sobald das erste mal zugesperrt ist, legt sich der Kontakt um und dr Schalter wechselt seinen Zustand.

Bei einem guten Riegelkontakt hast du sogar einen Umschalte Kontakt zur Verfügung. Das heißt du kannst dir aussuchen ob der “umgelegte Riegel” im Schloss, den Kontakt öffnet oder schließt.

Hallo @nevv.
Falls du hier noch mitliest, ich habe eine Frage zu deinem Skript.
Habe es etwas angepasst und ein wenig erweitert. Es funktioniert grundsätzlich sehr gut.
Leider hab ich mir irgendwo einen Fehler eingebaut und nun wird der Teil ganz am Ende

if (disarmedcheckSensorID(windowID)) then
    Debug("green",(os.date("%A %d %B %Y - Alle Sensoren entschärft.")))
    Notify_off()

nicht mehr angesprungen.
Ich habe schon alles mögliche probiert, komm aber nicht auf den Fehler!
Kannst du vielleicht so nett sein und mal drüberschauen, du kennst das Skript ja gut :wink:

--[[
%% properties
228 value
%% globals
--]]

-- Variablen
  local windowID = {30,113,99} -- IDs der Sensoren die ge-/entschärft werden sollen
  local countID = 200 -- zähler für maximale Kontaktanzahl
  local riegel = 228 -- ID Testkontakt
  --local riegel = 128 -- ID Riegelkontakt
    
-- farbige Debug Meldungen
Debug = function ( color, message )
  fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"))
end

-- Variable für Alarm an
  local message_on = (os.date("Haustüre um %H:%M Uhr zugesperrt. Die Fenster und die Haustüre sind scharf! (%d.%m.%Y)"))
  local subject_on = "Haustüre zugesperrt"
-- Variable für Alarm aus
  local message_off = (os.date("Haustüre um %H:%M Uhr aufgesperrt. Der Alarm wurde deaktiviert. (%d.%m.%Y)"))
  local subject_off = "Haustüre aufgesperrt"

-- zugesperrt - Alarm aktiviert
function Notify_on()
	--->> Hier muss der Code rein wenn der Alarm aktiviert wurde <<---
	fibaro:call(2, 'sendEmail', subject_on, message_on)
	fibaro:call(141, 'sendPush', message_on)
end

-- aufgesperrt - Alarm deaktiviert
function Notify_off()
	--->> Hier muss der Code rein wenn der Alarm deaktiviert wurde <<---
	fibaro:call(2, 'sendEmail', subject_off, message_off)
	fibaro:call(141, 'sendPush', message_off)
end

--- Arm-Check ---
function armedcheckSensorID(array)
  for j=1, countID do
    if windowID[j] ~= nil then
      if (tonumber(fibaro:getValue(windowID[j], 'armed')) == 0) then
		Debug("purple",'windowID[j]' )
          return false
      end
    end
  end
  return true
end

---Disarm Check ---
function disarmedcheckSensorID(array)
  for j=1, countID do
    if windowID[j] ~= nil then
      if (tonumber(fibaro:getValue(windowID[j], 'armed')) == 1) then
          return false
      end
    end
  end
  return true
end

---- Skript 
--- Schärfen ---
if ( (tonumber(fibaro:getValue(riegel, "value")) == 0 ) ) then
		Debug("green",(os.date("%A %d %B %Y - Türe Abgeschlossen")))
		for j=1, countID do
			if windowID[j] ~= nil then
				if (tonumber(fibaro:getValue(windowID[j], 'value')) == 0) then
					fibaro:call(windowID[j], 'setArmed', '1')
				else
					local sensorname = fibaro:getName(windowID[j])
					local sensorroom = fibaro:getRoomNameByDeviceID(windowID[j])
					local subject_unsafe = 'ACHTUNG: ' ..sensorroom.. ' offen!'
					local message_unsafe = 'Im: ' .. sensorroom ..' ist '.. sensorname ..' nicht geschlossen!'
					Debug("yellow",(os.date("%A %d %B %Y")))
					Debug('red',message_unsafe)
					fibaro:call(2, 'sendEmail', subject_unsafe, message_unsafe)
					fibaro:call(141, 'sendPush', message_unsafe) -- Galaxy S7
				end
			end
		end
	if (armedcheckSensorID(windowID)) then
	Debug("green",(os.date("%A %d %B %Y - Alle Sensoren scharf.")))
	Notify_on()
	end
else
end

--- Entschäfen ---
if ( (tonumber(fibaro:getValue(riegel, "value")) == 1 ) ) then
		Debug("green",(os.date("%A %d %B %Y - Türe Aufgeschlossen.")))
		for j=1, countID do
			if windowID[j] ~= nil then
				if (tonumber(fibaro:getValue(windowID[j], 'value')) == 0) then
					fibaro:call(windowID[j], 'setArmed', '0')
				else
					local sensorname = fibaro:getName(windowID[j])
					local sensorroom = fibaro:getRoomNameByDeviceID(windowID[j])
					local subject_unsafe = 'ACHTUNG: ' ..sensorroom.. ' offen!'
					local message_unsafe = 'Im Raum: ' .. sensorroom ..' ist der '.. sensorname ..' nicht geschlossen!'
					Debug("yellow",(os.date("%A %d %B %Y")))
					Debug('red',message_unsafe)
					fibaro:call(2, 'sendEmail', subject_unsafe, message_unsafe)
					fibaro:call(141, 'sendPush', message_unsafe) -- Galaxy S7
				end
			end
		end
	if (disarmedcheckSensorID(windowID)) then
    Debug("green",(os.date("%A %d %B %Y - Alle Sensoren entschärft.")))
    Notify_off()
	end
else
end

Habe den heutigen Nachmittag damit verbracht, den Fehler in diesem Script zu sichen, leider vergeblich ;-(
Es funktioniert zwar, aber die Email beim AUFSCHLIESSEN kommt nicht (aufruf von:
Notify_off()
in Zeile 112 wird nicht ausgeführt sowie die Debugmeldung in der Zeile 111 kommt auch nicht!

Hat irgendjemand eine Idee ???