vielen Dank für Dein Feedback. Werde das heute bei mir so umsetzen. Die Informationen über das verwendete TAG kriegt man über die RFID-Reader properties nicht so einfach raus habe ich bemerkt. Für meine Szene wäre es noch hilfreich wenn ich das Tag resp. die Eingabe des Codes unterscheiden könnte. Hast Du dies bei Dir bereits so umgesetzt?
Ansonsten funktioniert das neue ZWave-Template für das Zipato auf der Beta super.
das funktioniert leider bei der offiziellen Integration nicht mehr, da dar Tagreader jetzt über Annahme/Ablehnung der Codes entscheidet. Das HC bekommt nur die Rückmeldung ob offen,geschlossen (zumindest in der API des Gerätes).
besten Dank für Deine Hilfe. Wäre noch cool gewesen wenn die Infos welche im Log-Bereich des HC2 angezeigt werden auch in Lua zur Verfügung stehen würden (unlock userid 2 etc. ).
Schärfen funktioniert. Die Value ist falsch. Diese wechselt zwischen 1 und 0.
secured(int) // 0 - status HOME; 255 - status AWAY
value(bool) // false - status HOME; true - status AWAY (mapped from property secured)
userCodes(array) // stores information about available users
Vielen Dank für Deine Hilfe. Dann scheint es noch einen Bug bei der Erstellung einer Blockszene zu geben. Denn der Wert 255 wurde ursprünglich von einer Blockszene gesetzt. Übrigens wird der Wert 255 durch die Blockszene auch bei der Bedingung eines geöffneten Modus ausgegeben.
Da ich kein Lua-Profi bin, noch eine Frage zum Workaround:
Mein Tür-/Fenstersensoren haben die obigen ID’s. Sieht der Code zum Entschärfen dann so aus:
--[[
%% autostart
%% properties
105 value
%% events
%% globals
--]]
local startSource = fibaro:getSourceTrigger();
if (
( tonumber(fibaro:getValue(105, "value")) == 0 )
)
then
function setArmedStatus(35)
local dev = api.get('/devices/' .. 35)
dev.properties.armed = false
api.put('/devices/' .. 35, dev)
end
function setArmedStatus(51)
local dev = api.get('/devices/' .. 51)
dev.properties.armed = false
api.put('/devices/' .. 51, dev)
end
--usw., usw.
setArmedStatus(403)
end
Nein, das ist eine Funktion, welche einmalig gesetzt wird. Bitte den %%autostart aus der Szene entfernen.
Es kommt dazu heute auch noch ein Artikel.
--[[
%% properties
105 value
%% events
%% globals
--]]
function setArmedStatus(deviceId)
local dev = api.get('/devices/' .. deviceId)
dev.properties.armed = false
api.put('/devices/' .. deviceId, dev)
end
local startSource = fibaro:getSourceTrigger();
if ((tonumber(fibaro:getValue(105, "value")) == 0 ))
then
setArmedStatus(53)
setArmedStatus(51)
end
habe mir den artikel angeschaut, schon mal vielen dank dafür! allerdings warte ich noch auf deine erweiterte szene… weil ich noch nicht weiß, wie die szene aussehen muss, wenn ich damit meine alarmanalge aktivieren bzw. deaktivieren möchte…
hier mal mein Code wie ich das umgesetzt habe. Viel Codeschnipsel per “copy&paste” von hier und da zusammen getragen. Vielleicht hilft es Dir ja.
--[[
%% properties
322 value
%% events
%% globals
--]]
[[
Abhängigkeiten:
* Module:
- Fibaro Steckdose mit LED
- Zipato Keypad
* Virtuelle Module:
* Ändern der LED Farbe für Fibar Plugs http://www.siio.de/connected-home/kleine-lua-scripte-teil-3-farbe-des-fibaro-wallplug-aendern/
]]
local trigger = fibaro:getSourceTrigger()
local rfid_value_status = ''
local deviceID=322
local countID = 1000 -- bis welche ID soll geprüft werden
local sensorID = {78, 106, 177, 180} -- IDs der Sensoren
--local sensorID = {78} -- IDs der Sensoren
local plugID = {28} -- aktiviert Steckdosen (z.B. für Kameras, Licht, etc)
local plugLEDID = {118} -- Ändert die Farbe einer Steckdose in rot/grün -- hier im Flur
local phoneID = {76} -- Handys auf den die PUSH gesendet wird
local Datum = os.date("%d.%m.%Y");
--- Workaround für unarm (bug in Firmware) ---
function setArmedStatus(deviceId2)
local dev = api.get('/devices/' .. deviceId2)
dev.properties.armed = false
api.put('/devices/' .. deviceId2, dev)
end
-----------------------------------------------
Debug = function ( color, message )
fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span"))
end
if (trigger['type'] == 'property') then
fibaro:debug('RFID-Szene 3.0a (Official) gestartet.')
local rfid_ID = tonumber(trigger['deviceID'])
local rfid_value = tonumber(fibaro:getValue(rfid_ID, 'value'))
if (rfid_value == 1) then
rfid_value_status = 'Away'
Debug('red', 'Status ' ..rfid_value_status.. ' gesetzt.')
-- Eigene Aktionen definieren
function actionsbeforeArmed()
fibaro:debug('Führe eigene Funktionen vor Schärfen aus')
end
for j=1, countID do
if sensorID[j] ~= nil then
if (tonumber(fibaro:getValue(sensorID[j], 'value')) == 0) then
fibaro:call(sensorID[j], 'setArmed', '1')
else
local sensorname = fibaro:getName(sensorID[j])
local sensorroom = fibaro:getRoomNameByDeviceID(sensorID[j])
fibaro:debug(Datum..': ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' nicht sicher. Sende Push.')
for k=1, countID do
if phoneID[k] ~= nil then
fibaro:call(phoneID[k], 'sendPush', 'ACHTUNG: ' .. sensorname .. ' im Raum: ' .. sensorroom .. ' nicht sicher.')
end
end
end
end
if plugID[j] ~= nil then
if (tonumber(fibaro:getValue(plugID[j], 'value')) == 0) then
fibaro:call(plugID[j], 'turnOn');
end
end
end
fibaro:call(311, "pressButton", "3") -- Ändert Steckdose in Farbe rot für Kennzeichnung ALARM aktiv
elseif (rfid_value == 0) then
rfid_value_status = 'Home'
Debug('green', 'Status ' ..rfid_value_status.. ' gesetzt.')
-- Eigene Aktionen definieren
local startSource = fibaro:getSourceTrigger();
if ((tonumber(fibaro:getValue(deviceID, "value")) == 0 ))
then
for j=1, countID do
if sensorID[j] ~= nil then
-- if (tonumber(fibaro:getValue(sensorID[j], 'value')) == 0) then
fibaro:debug(Datum..': unarm Device '..sensorID[j])
fibaro:call(sensorID[j], 'setArmed', '0')
setArmedStatus(sensorID[j]) -- workaround Firmware Bug
end
if plugID[j] ~= nil then
if (tonumber(fibaro:getValue(plugID[j], 'value')) == 1) then
fibaro:debug(Datum..': turnOff Device '..plugID[j])
fibaro:call(plugID[j], 'turnOff');
end
end
end
end
fibaro:call(311, "pressButton", "4") -- Ändert Steckdose in Farbe rot für Kennzeichnung ALARM aktiv
end
end