ich brauche eure Hilfe, das folgende Skript zu optimieren. Ich möchte, dass nach dem Aktivieren des RFID der Alarm eingeschaltet wird. Zuvor prüft das Skript noch, ob Fenster/Türen geschlossen sind und quittiert mir dies als TTS über die Sonos-Boxen. Am Ende bekomme ich eine Push auf das Handy, dass der Alarm aktiviert wurde oder eben nicht. Und hier ist das Problem! Ich bekomme die Push immer zweimal?! Hat jemand eine Idee warum?
--[[
%% properties
%% globals
rfid_alarm
alarm
Sirene
--]]
local startSource = fibaro:getSourceTrigger();
if (
( fibaro:getGlobalValue("rfid_alarm") == "On" )
)
then
fibaro:debug('Überprüfe Sensoren')
if (tonumber(fibaro:getValue(154, 'value')) == 1) then
local sensorname = fibaro:getName(154)
local sensorroom = fibaro:getRoomNameByDeviceID(154)
fibaro:debug('ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' nicht sicher.')
local http = net.HTTPClient()
http:request('http://192.168.178.47:5005/Kueche/say/Das%20Fenster%20im%20Schlafzimmer%20ist%20noch%20ge%C3%B6ffnet./de-de/40')
end
if (tonumber(fibaro:getValue(175, 'value')) == 1) then
local sensorname = fibaro:getName(175)
local sensorroom = fibaro:getRoomNameByDeviceID(175)
fibaro:debug('ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' nicht sicher.')
local http = net.HTTPClient()
http:request('http://192.168.178.47:5005/Kueche/say/Die%20Terrassent%C3%BCr%20ist%20noch%20ge%C3%B6ffnet./de-de/40')
end
if (tonumber(fibaro:getValue(175, 'value')) == 0 and
tonumber(fibaro:getValue(154, 'value')) == 0) then
fibaro:debug('Alle Sensoren sicher - Alarm aktiviert')
local http = net.HTTPClient()
http:request('http://192.168.178.47:5005/Kueche/say/Alarm%20aktiviert./de-de/40')
----Variable ALARM AN setzen----
fibaro:sleep(7000);
fibaro:setGlobal('alarm', 'an')
----Lichter im Haus aus----
fibaro:startScene(145)
----Nachricht auf das Handy----
fibaro:call(242,'sendPush','ALARM aktiviert')
else
if (tonumber(fibaro:getValue(175, 'value')) == 1 or
tonumber(fibaro:getValue(154, 'value')) == 1) then
fibaro:setGlobal('alarm', 'aus')
fibaro:setGlobal('rfid_alarm', 'Off')
fibaro:call(242,'sendPush','Tür oder Fenster offen - ALARM deaktiviert')
fibaro:debug('Sensoren nicht sicher - deaktiviere Alarm')
end
end
end
Hab das Skript noch etwas angepasst, trotzdem bekomme ich den Debug, das der Alarm aktiviert wurde und die Push nach wie vor 2x
--[[
%% properties
%% globals
rfid_alarm
--]]
local startSource = fibaro:getSourceTrigger();
if ( fibaro:getGlobalValue("rfid_alarm") == "On" )
then
fibaro:debug('Überprüfe Sensoren')
if (tonumber(fibaro:getValue(154, 'value')) == 1) then
local sensorname = fibaro:getName(154)
local sensorroom = fibaro:getRoomNameByDeviceID(154)
fibaro:debug('ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' nicht sicher.')
local http = net.HTTPClient()
http:request('http://192.168.178.47:5005/Kueche/say/Das%20Fenster%20im%20Schlafzimmer%20ist%20noch%20ge%C3%B6ffnet./de-de/40')
elseif
(tonumber(fibaro:getValue(175, 'value')) == 1) then
local sensorname = fibaro:getName(175)
local sensorroom = fibaro:getRoomNameByDeviceID(175)
fibaro:debug('ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' nicht sicher.')
local http = net.HTTPClient()
http:request('http://192.168.178.47:5005/Kueche/say/Die%20Terrassent%C3%BCr%20ist%20noch%20ge%C3%B6ffnet./de-de/40')
end
if
(tonumber(fibaro:getValue(175, 'value')) == 0 and
tonumber(fibaro:getValue(154, 'value')) == 0) then
fibaro:debug('Alle Sensoren sicher - Alarm aktiviert')
local http = net.HTTPClient()
http:request('http://192.168.178.47:5005/Kueche/say/Alarm%20aktiviert./de-de/40')
----Variable ALARM AN setzen----
fibaro:setGlobal('alarm', 'an')
----Lichter im Haus aus----
fibaro:startScene(145)
----Nachricht auf das Handy----
fibaro:call(242,'sendPush','ALARM aktiviert')
elseif
(tonumber(fibaro:getValue(175, 'value')) == 1 or
tonumber(fibaro:getValue(154, 'value')) == 1) then
fibaro:setGlobal('alarm', 'aus')
fibaro:call(242,'sendPush','Tür oder Fenster offen - ALARM deaktiviert')
fibaro:debug('Sensoren nicht sicher - deaktiviere Alarm')
end
end
weil eure Skript keine Abfrage offener Türen und Fenster inklusive Ausgabe über Sonos realisiert. Es läuft ja auch alles, bis auf die doppelte Alarm aktiviert Ausgabe im Debug, Push und über die Sonos
Stimmt Jetzt weiß ich aber auch wieder warum nicht - ich benutze zur Aktivierung des Alarms nicht den armed-Status des HC2, sondern ein eigenes Skript, welches in Abhängikeit der Variable “alarm an/aus” den Alarm auslöst. Der Vorteil, das Skript löst erst aus wenn zwei Bewegungen innerhalb 60sec von zwei Sensoren gemeldet wurden. Seither hab ich nicht einen Fehlalarm mehr gehabt. Früher mindesten 1x die Woche
Das möchte ich ungern ersetzten. Hat jemand eine Lösung für meine Frage?
für TTS habe ich node-sonos-http-api auf einem extra Server laufen und dann das entsprechende Virtual Device dafür installiert. Viel besser als alles andere was ich vorher hatte! Google mal danach. Gibt es 1-2 gute Seiten inkl. How-to Anleitung. Lohnt sich.