{"name":"Sirenen","type":"com.fibaro.multilevelSensor","apiVersion":"1.1","initialProperties":{"viewLayout":{"$jason":{"body":{"header":{"style":{"height":"500"},"title":"quickApp_device_623"},"sections":{"items":[{"components":[{"name":"label1","style":{"weight":"1.2"},"text":"🔊 Sirenentest ! 🔊","type":"label"},{"style":{"weight":"0.5"},"type":"space"}],"style":{"weight":"1.2"},"type":"vertical"},{"components":[{"components":[{"name":"button1_1","style":{"weight":"0.50"},"text":"Türklingel EG","type":"button"},{"name":"button1_2","style":{"weight":"0.50"},"text":"Türklingel KG","type":"button"}],"style":{"weight":"1.2"},"type":"horizontal"},{"style":{"weight":"0.5"},"type":"space"}],"style":{"weight":"1.2"},"type":"vertical"},{"components":[{"name":"label2","style":{"weight":"1.2"},"text":"----------------------------------------","type":"label"},{"style":{"weight":"0.5"},"type":"space"}],"style":{"weight":"1.2"},"type":"vertical"},{"components":[{"name":"button2","style":{"weight":"1.2"},"text":"Alarm-Einbruch","type":"button"},{"style":{"weight":"0.5"},"type":"space"}],"style":{"weight":"1.2"},"type":"vertical"},{"components":[{"name":"button3","style":{"weight":"1.2"},"text":"Alarm Heizung","type":"button"},{"style":{"weight":"0.5"},"type":"space"}],"style":{"weight":"1.2"},"type":"vertical"},{"components":[{"name":"button4","style":{"weight":"1.2"},"text":"Alarm Brand/Rauch/Feuer","type":"button"},{"style":{"weight":"0.5"},"type":"space"}],"style":{"weight":"1.2"},"type":"vertical"},{"components":[{"name":"label3","style":{"weight":"1.2"},"text":"----------------------------------------","type":"label"},{"style":{"weight":"0.5"},"type":"space"}],"style":{"weight":"1.2"},"type":"vertical"},{"components":[{"components":[{"name":"button5_1","style":{"weight":"0.50"},"text":"Telefon EG","type":"button"},{"name":"button5_2","style":{"weight":"0.50"},"text":"Telefon KG","type":"button"}],"style":{"weight":"1.2"},"type":"horizontal"},{"style":{"weight":"0.5"},"type":"space"}],"style":{"weight":"1.2"},"type":"vertical"},{"components":[{"name":"label4","style":{"weight":"1.2"},"text":"----------------------------------------","type":"label"},{"style":{"weight":"0.5"},"type":"space"}],"style":{"weight":"1.2"},"type":"vertical"},{"components":[{"name":"button6","style":{"weight":"1.2"},"text":"Initialisieren","type":"button"},{"style":{"weight":"0.5"},"type":"space"}],"style":{"weight":"1.2"},"type":"vertical"}]}},"head":{"title":"quickApp_device_623"}}},"uiCallbacks":[{"callback":"betaetigt_1_1","eventType":"onReleased","name":"button1_1"},{"callback":"betaetigt_1_2","eventType":"onReleased","name":"button1_2"},{"callback":"betaetigt_2","eventType":"onReleased","name":"button2"},{"callback":"betaetigt_3","eventType":"onReleased","name":"button3"},{"callback":"betaetigt_4","eventType":"onReleased","name":"button4"},{"callback":"betaetigt_5_1","eventType":"onReleased","name":"button5_1"},{"callback":"betaetigt_5_2","eventType":"onReleased","name":"button5_2"},{"callback":"betaetigt_6","eventType":"onReleased","name":"button6"}],"mainFunction":"-- Multilevel sensor type have no actions to handle\n-- To update multilevel sensor state, update property \"value\" with integer\n-- Eg. self:updateProperty(\"value\", 37.21) \n\n-- To set unit of the sensor, update property \"unit\". You can set it on QuickApp initialization\n-- Eg. \n-- function QuickApp:onInit()\n-- self:updateProperty(\"unit\", \"KB\")\n-- end\n\n-- To update controls you can use method self:updateView(, , ). Eg: \n-- self:updateView(\"slider\", \"value\", \"55\") \n-- self:updateView(\"button1\", \"text\", \"MUTE\") \n-- self:updateView(\"label\", \"text\", \"TURNED ON\") \n\n-- This is QuickApp inital method. It is called right after your QuickApp starts (after each save or on gateway startup). \n-- Here you can set some default values, setup http connection or get QuickApp variables.\n-- To learn more, please visit: \n-- * https://manuals.fibaro.com/home-center-3/\n-- * https://manuals.fibaro.com/home-center-3-quick-apps/\n\n--[[\nSpeziell für die NEO-coolcam Sirene nötig !\n1 = Türklingel\n2 = Alarm Einbruch\n3 = Alarm Heizung\n4 = Alarm Brand/Rauch/Feuer\n5 = Telefon\n\nRegister der NEO-coolcam-sirene\n Register 1 -- Alarm Sound Volumen 1-3\n -- 1=Low\n -- 2=Middle\n -- 3=High\n Register 2 -- Alarm Sound Duration Time 0-3\n -- 0=Sirene is not on\n -- 1=30Sek.\n -- 2=1min\n -- 3=5min\n Register 3 -- Door Bell Sound Duration Time 1-127\n -- 0=Sirene is not on\n -- 1-127 Time\n Register 4 -- Door Bell Sound Volumen 1-3\n -- 1=Low\n -- 2=Middle\n -- 3=High\n Register 5 -- Alarm Sound Index 1-10\n -- There ar 10 different Sound\n Register 6 -- Door Bellsound Index 1-10\n -- There ar 10 different Sound\n Register 7 -- Default Siren On Mode 1-2\n -- 1=Alarm Sound Mode\n -- 2=Door Bell Sound Mode\n Register 8 -- Alarm LED Enable 0-1\n -- 0=LED will be disable\n -- 1=LED will de enable\n Regsiter 9 -- Boor Bell LED Enable 0-1\n -- 0=LED will be disable\n -- 1=LED will de enable\n\nBei der Aeotec-Sirene hat jeder Ton eine eigene ID !\n\nMögliche aufrufe !\n\n ID = ID der Quick-App\n fibaro.call(ID,\"Sirene_Tuerklingel_EG\")\n fibaro.call(ID,\"Sirene_Tuerklingel_KG\")\n fibaro.call(ID,\"Sirene_Alarm_Einbruch\")\n fibaro.call(ID,\"Sirene_Alarm_Rauchmelder\")\n fibaro.call(ID,\"Sirene_Telefon_EG\")\n fibaro.call(ID,\"Sirene_Telefon_KG\")\n\nTemp-Bereich\n--]]\n------------------------------------------------------------------------------------\n--Device-ID´s übergeben\n\nsirene1 = 454 --Basisadresse EG-Wohnzimmer (AEOTEC Doorbell 6)\n -- +0 = Türklingel\n -- +1 = Alarm Einbruch\n -- +5 = Alarm Heizung\n -- +6 = Alarm Rauch\n -- +7 = Telefon\nsirene2 = 464 --Basisadresse DG-Flur (AEOTEC Doorbell 6)\n -- +0 = Türklingel\n -- +1 = Alarm Einbruch\n -- +5 = Alarm Heizung\n -- +6 = Alarm Rauch\n -- +7 = Telefon\nsirene3 = 438 --KG-Wohnzimmer (NEO Coolcam Sirene)\n\n-- 3 Sirenen NEO coolcam habe ich paralell versucht das ist misslungen zu viele Sendungen zur gleichen Zeit die verhaspeln ich ! \n\nlocal neo_coolcam_register = {0,0,0,0,0,0,0,0,0}\n \n\n------------------------------------------------------------------------------------\n\n--================================================================================--\n--------------------------------- functionen Intern --------------------------------\n--================================================================================--\n\n------------------------------------------------------------------------------------\n--------------------- Beschreiben der Register der NEO-coolcam ---------------------\n------------------------------------------------------------------------------------\nfunction NEO_Register(neu_register) -- das soll reingeschrieben werden\nlocal alte_register = fibaro.getGlobalVariable(\"NEO_coolcam_Register\") -- das ist drin\nalte_register = json.decode(alte_register)\nlocal neuschreiben = 0 \n for i, v in pairs(neu_register) do\n --print(\"Register Nr. \",i,\" Alt = \",alte_register[i],\"Neu = \",tonumber(neu_register[i]))\n if alte_register[i] ~= neu_register[i] then --kontrolle ob die Register richtig sind\n fibaro.call(sirene3, \"setConfiguration\", i, 1, tonumber(neu_register[i]))\n neuschreiben = 1\n end\n end\n if neuschreiben == \"1\" then\n fibaro.sleep(2000) -- Wartezeit nach Initialisierung sonst kommt der Ton nicht richtig raus\n end\n fibaro.setGlobalVariable(\"NEO_coolcam_Register\",json.encode(neu_register))\nend --function\n------------------------------------------------------------------------------------\n--================================================================================--\n\n------------------------------------------------------------------------------------\n---------------------------------- Initialisierung ---------------------------------\n------------------------------------------------------------------------------------\nfunction QuickApp:onInit()\n self:debug(\"onInit\")\n -- Laden von Unsinn nur bei NEO-coolcam nötig\n neo_coolcam_register = {\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\"}\n fibaro.setGlobalVariable(\"NEO_coolcam_Register\",json.encode(neo_coolcam_register))\n -- Laden der Grundkunfiguration nur bei NEO-coolcam nötig\n NEO_Register({\"1\",\"1\",\"4\",\"3\",\"1\",\"9\",\"2\",\"1\",\"1\"}) -- beschreiben der Register 1-9\n --Tasten beschriften\n self:updateView(\"button1_1\", \"text\", \"Türklingel EG\")\n self:updateView(\"button1_2\", \"text\", \"Türklingel KG\")\n self:updateView(\"button2\", \"text\", \"Alarm Einbruch\")\n self:updateView(\"button3\", \"text\", \"Alarm Heizung\")\n self:updateView(\"button4\", \"text\", \"Alarm Brand/Rauch/Feuer\")\n self:updateView(\"button5_1\", \"text\", \"Telefon EG\")\n self:updateView(\"button5_2\", \"text\", \"Telefon KG\")\n self:updateView(\"button6\", \"text\", \"Itialisieren\")\n --Initialisierungtype in Globale Variablen schreiben\n fibaro.setGlobalVariable(\"Sirenen_Alarm_Ton\",\"0\")\n self:updateProperty(\"ergebnis\", \"OK\")\nend -- onInit\n------------------------------------------------------------------------------------\n\n------------------------------------------------------------------------------------\n---------------------------- Türklingel EG Karin & Frank ---------------------------\n------------------------------------------------------------------------------------\nfunction QuickApp:Sirene_Tuerklingel_EG()\n --print(\"Klingelort = EG Karin&Frank\")\n fibaro.call((sirene1+0),\"turnOn\")\n fibaro.call((sirene2+0),\"turnOn\")\n fibaro.sleep(4400)\n fibaro.call((sirene1+0),\"turnOff\")\n fibaro.call((sirene2+0),\"turnOff\")\nend -- function\n------------------------------------------------------------------------------------\n\n------------------------------------------------------------------------------------\n------------------------------- Türklingel KG Gertud -------------------------------\n------------------------------------------------------------------------------------\nfunction QuickApp:Sirene_Tuerklingel_KG()\n --print(\"Klingelort = KG Gertrud\")\n NEO_Register({\"1\",\"1\",\"10\",\"3\",\"4\",\"4\",\"2\",\"1\",\"1\"}) -- beschreiben der Register 1-9\n fibaro.call({sirene3},\"turnOn\")\n fibaro.sleep(4400)\n fibaro.call({sirene3},\"turnOff\")\nend -- function\n------------------------------------------------------------------------------------\n\n------------------------------------------------------------------------------------\n------------------------------ Sirene Alarm Einbruch -------------------------------\n------------------------------------------------------------------------------------\nfunction QuickApp:Sirene_Alarm_Einbruch()\n --print(\"Alarm Einbruch KG Gertrud\")\n NEO_Register({\"1\",\"1\",\"10\",\"3\",\"10\",\"9\",\"1\",\"1\",\"1\"}) -- beschreiben der Register 1-9\n fibaro.call({sirene3},\"turnOn\")\n fibaro.sleep(4400)\n fibaro.call({sirene3},\"turnOff\")\n\n --print(\"Alarm Einbruch EG Karin&Frank\")\n fibaro.call((sirene1+1),\"turnOn\")\n fibaro.call((sirene2+1),\"turnOn\")\n fibaro.sleep(4400)\n fibaro.call((sirene1+1),\"turnOff\")\n fibaro.call((sirene2+1),\"turnOff\")\nend -- function\n------------------------------------------------------------------------------------\n\n------------------------------------------------------------------------------------\n------------------------------ Sirene Alarm Heizung -------------------------------\n------------------------------------------------------------------------------------\nfunction QuickApp:Sirene_Alarm_Heizung()\n --print(\"Alarm Heizung KG Gertrud\")\n NEO_Register({\"1\",\"1\",\"10\",\"3\",\"9\",\"9\",\"1\",\"1\",\"1\"}) -- beschreiben der Register 1-9\n fibaro.call({sirene3},\"turnOn\")\n fibaro.sleep(4400)\n fibaro.call({sirene3},\"turnOff\")\n\n --print(\"Alarm Heizung EG Karin&Frank\")\n fibaro.call((sirene1+5),\"turnOn\")\n fibaro.call((sirene2+5),\"turnOn\")\n fibaro.sleep(4400)\n fibaro.call((sirene1+5),\"turnOff\")\n fibaro.call((sirene2+5),\"turnOff\")\nend -- function\n------------------------------------------------------------------------------------\n\n------------------------------------------------------------------------------------\n----------------------------- Sirene Alarm Rauchmelder -----------------------------\n------------------------------------------------------------------------------------\nfunction QuickApp:Sirene_Alarm_Rauchmelder()\n --print(\"Alarm Rauch KG Gertrud\")\n NEO_Register({\"1\",\"1\",\"10\",\"3\",\"2\",\"9\",\"1\",\"1\",\"1\"}) -- beschreiben der Register 1-9\n fibaro.call({sirene3},\"turnOn\")\n fibaro.sleep(4400)\n fibaro.call({sirene3},\"turnOff\")\n\n --print(\"Alarm Rauchmelder EG Karin&Frank\")\n fibaro.call((sirene1+6),\"turnOn\")\n fibaro.call((sirene2+6),\"turnOn\")\n fibaro.sleep(4400)\n fibaro.call((sirene1+6),\"turnOff\")\n fibaro.call((sirene2+6),\"turnOff\")\nend -- function\n------------------------------------------------------------------------------------\n\n-----------------------------------------------------------------------------------\n---------------------------- Telefonklingel EG Karin & Frank ---------------------------\n------------------------------------------------------------------------------------\nfunction QuickApp:Sirene_Telefon_EG()\n --print(\"Telefon = EG Karin&Frank\")\n fibaro.call((sirene1+7),\"turnOn\")\n fibaro.call((sirene2+7),\"turnOn\")\n fibaro.sleep(4400)\n fibaro.call((sirene1+7),\"turnOff\")\n fibaro.call((sirene2+7),\"turnOff\")\nend -- function\n------------------------------------------------------------------------------------\n\n------------------------------------------------------------------------------------\n------------------------------- Telefonklingel KG Gertud -------------------------------\n------------------------------------------------------------------------------------\nfunction QuickApp:Sirene_Telefon_KG()\n --print(\"Telefon\" = KG Gertrud\")\n NEO_Register({\"1\",\"1\",\"5\",\"3\",\"1\",\"9\",\"2\",\"1\",\"1\"}) -- beschreiben der Register 1-9\n fibaro.call({sirene3},\"turnOn\")\n fibaro.sleep(4400)\n fibaro.call({sirene3},\"turnOff\")\n fibaro.sleep(1000)\nend -- function\n------------------------------------------------------------------------------------\n\n\n--------------------------------------------------------------------------------------------------\n------------------- Abfrage der Tastenbetätigung und Reaktion darauf -----------------------------\n--------------------------------------------------------------------------------------------------\n-- Abfrage in der Szene per Trigger und dann der Wert als Tastennummer\n--Der Wert der Tastennummer bleibt für 500ms bestehen und geht dann auf 0\n\nfunction QuickApp:betaetigt_1_1() --Türklingel EG\n --self:debug(\"Tase - 1_1\")\n self:updateView(\"button1_1\", \"text\", \"betätigt\")\n fibaro.sleep(500) --Anzeigezeit für betätigt\n self:updateView(\"button1_1\", \"text\", \"Türklingel EG\")\n self:updateProperty('value', 1.1) -- binary switch on\n fibaro.sleep(500)\n self:updateProperty('value', 0.0) -- binary switch off\n self:Sirene_Tuerklingel_EG()\nend\nfunction QuickApp:betaetigt_1_2() --Türklingel KG\n --self:debug(\"Tase - 1_2\")\n self:updateView(\"button1_2\", \"text\", \"betätigt\")\n fibaro.sleep(500) --Anzeigezeit für betätigt\n self:updateView(\"button1_2\", \"text\", \"Türklingel KG\")\n self:updateProperty('value', 1.2) -- binary switch on\n fibaro.sleep(500)\n self:updateProperty('value', 0.0) -- binary switch off\n self:Sirene_Tuerklingel_KG()\nend\nfunction QuickApp:betaetigt_2() --Alarm Einbruch\n --self:debug(\"Tase - 2\")\n self:updateView(\"button2\", \"text\", \"betätigt\")\n fibaro.sleep(500) --Anzeigezeit für betätigt\n self:updateView(\"button2\", \"text\", \"Alarm Einbruch\")\n self:updateProperty('value', 2.0) -- binary switch on\n fibaro.sleep(500)\n self:updateProperty('value', 0.0) -- binary switch off\n self:Sirene_Alarm_Einbruch()\nend\nfunction QuickApp:betaetigt_3() --Alarm Heizung\n --self:debug(\"Tase - 3\")\n self:updateView(\"button3\", \"text\", \"betätigt\")\n fibaro.sleep(500) --Anzeigezeit für betätigt\n self:updateView(\"button3\", \"text\", \"Alarm Heizung\")\n self:updateProperty('value', 3.0) -- binary switch on\n fibaro.sleep(500)\n self:updateProperty('value', 0.0) -- binary switch off\n self:Sirene_Alarm_Heizung()\nend\nfunction QuickApp:betaetigt_4() --Alarm Brand/Rauch/Feuer\n --self:debug(\"Tase - 4\")\n self:updateView(\"button4\", \"text\", \"betätigt\")\n fibaro.sleep(500) --Anzeigezeit für betätigt\n self:updateView(\"button4\", \"text\", \"Alarm Brand/Rauch/Feuer\")\n self:updateProperty('value', 4.0) -- binary switch on\n fibaro.sleep(500)\n self:updateProperty('value', 0.0) -- binary switch off\n self:Sirene_Alarm_Rauchmelder()\nend\nfunction QuickApp:betaetigt_5_1() --Telefon EG\n --self:debug(\"Tase - 5_1\")\n self:updateView(\"button5_1\", \"text\", \"betätigt\")\n fibaro.sleep(500) --Anzeigezeit für betätigt\n self:updateView(\"button5_1\", \"text\", \"Telefon EG\")\n self:updateProperty('value', 5.1) -- binary switch on\n fibaro.sleep(500)\n self:updateProperty('value', 0.0) -- binary switch off\n self:Sirene_Telefon_EG()\nend\nfunction QuickApp:betaetigt_5_2() --Telefon KG\n --self:debug(\"Tase - 5_2\")\n self:updateView(\"button5_2\", \"text\", \"betätigt\")\n fibaro.sleep(500) --Anzeigezeit für betätigt\n self:updateView(\"button5_2\", \"text\", \"Telefon KG\")\n self:updateProperty('value', 5.2) -- binary switch on\n fibaro.sleep(500)\n self:updateProperty('value', 0.0) -- binary switch off\n self:Sirene_Telefon_KG()\nend\nfunction QuickApp:betaetigt_6() --Initialisieren\n --self:debug(\"Tase - 6\")\n self:updateView(\"button6\", \"text\", \"betätigt\")\n fibaro.sleep(500) --Anzeigezeit für betätigt\n self:updateView(\"button6\", \"text\", \"Initialisieren\")\n self:updateProperty('value', 6.0) -- binary switch on\n fibaro.sleep(500)\n self:updateProperty('value', 0.0) -- binary switch off\n self:onInit()\nend\n","quickAppVariables":[],"typeTemplateInitialized":true}}