{"name":"Backup HeatPanel","type":"virtual_device","properties":{"deviceIcon":64,"currentIcon":"64","log":"22:46:45 28.03.17","logTemp":"TxtGreen","mainLoop":"---------------------------------------\n--########## Sonnenposition ##########\n---------------------------------------\nlocal Frequence = fibaro:get(fibaro:getSelfId(),\"TCPPort\")\nFrequence = tonumber(Frequence)\n-- si TCPPort est vide, la valeur par défaut retournée est 80\nif Frequence == 80 or Frequence <= 10 then \n Frequence = 60 \nend\n\nfibaro:call(fibaro:getSelfId(), \"pressButton\", \"12\")\nfibaro:sleep(Frequence*1000) -- exécuter toutes les Frequence secondes\n---------------------------------------\n--########## Sonnenposition ##########\n---------------------------------------","ui.Label4.value":"","ui.Label9.value":"","ui.LabelAzimut.value":"316.73°","ui.Labelaktualisiert.value":"22:46:45 28.03.17","ui.Labelhoehe.value":"-29.04°","ui.Schicht.value":"Zuhause","ui.Zustand.value":"AN","ui.label_15_0.value":"","ui.message.value":"Zuhause 22:46:45","visible":"true","rows":[{"type":"label","elements":[{"id":1,"lua":false,"waitForResponse":false,"caption":"Aktuelle = ","name":"Schicht","favourite":false,"main":false}]},{"type":"label","elements":[{"id":2,"lua":false,"waitForResponse":false,"caption":"Heizung =","name":"Zustand","favourite":false,"main":false}]},{"type":"button","elements":[{"id":3,"lua":true,"waitForResponse":false,"caption":"Zuhause","name":"restore","empty":false,"msg":"----------------------------------\n-- User Settings\n----------------------------------\n\n-- Backup vom : 05/02/17 -- 20:37:38\n-- Heitzplan fuer ->> Zuhause <<\n\n\nlocal ListeHP = {\n-- id, \"name\", \n5, \"WohnZimmer\",\n6, \"Küche\",\n7, \"Bad\",\n8, \"Schlafzimmer\",\n56, \"Frur und WC\",\n}\n\n-- Backup configuration des Heating Panls vom : 05/02/17 -- 20:37:38\n\nlocal ConfigHP = {\n-- \"name\", \"day\", \"part\", \"hour\", \"minute\", \"temperature\", \n\"WohnZimmer\", \n\"monday\", \"morning\", \"1\", \"0\", \"20.5\", \"day\", \"8\", \"0\", \"23.5\", \"evening\", \"17\", \"0\", \"23.5\", \"night\", \"22\", \"0\", \"23.5\", \n\"tuesday\", \"morning\", \"4\", \"0\", \"20.5\", \"day\", \"9\", \"0\", \"23\", \"evening\", \"17\", \"0\", \"23.5\", \"night\", \"22\", \"0\", \"23.5\", \n\"wednesday\", \"morning\", \"4\", \"0\", \"20.5\", \"day\", \"9\", \"0\", \"23\", \"evening\", \"17\", \"0\", \"23.5\", \"night\", \"22\", \"0\", \"23.5\", \n\"thursday\", \"morning\", \"4\", \"0\", \"20.5\", \"day\", \"9\", \"0\", \"23\", \"evening\", \"17\", \"0\", \"23.5\", \"night\", \"22\", \"0\", \"23.5\", \n\"friday\", \"morning\", \"4\", \"0\", \"20.5\", \"day\", \"9\", \"0\", \"23\", \"evening\", \"17\", \"0\", \"23.5\", \"night\", \"22\", \"0\", \"23.5\", \n\"saturday\", \"morning\", \"4\", \"0\", \"20.5\", \"day\", \"9\", \"0\", \"23\", \"evening\", \"17\", \"0\", \"23.5\", \"night\", \"22\", \"0\", \"23.5\", \n\"sunday\", \"morning\", \"4\", \"0\", \"20.5\", \"day\", \"9\", \"0\", \"23\", \"evening\", \"17\", \"0\", \"23.5\", \"night\", \"22\", \"0\", \"23.5\", \n\"Küche\", \n\"monday\", \"morning\", \"0\", \"0\", \"21\", \"day\", \"8\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21.5\", \n\"tuesday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"10\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21.5\", \n\"wednesday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"10\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21.5\", \n\"thursday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"10\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21.5\", \n\"friday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"10\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21.5\", \n\"saturday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"10\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21.5\", \n\"sunday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"10\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21.5\", \n\"Bad\", \n\"monday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"16\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"tuesday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"16\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"wednesday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"16\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"thursday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"16\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"friday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"16\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"saturday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"16\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"sunday\", \"morning\", \"4\", \"0\", \"21\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"16\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"Schlafzimmer\", \n\"monday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"tuesday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"wednesday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"thursday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"friday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"saturday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"sunday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"Frur und WC\", \n\"monday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"tuesday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"wednesday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"thursday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"friday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"saturday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"sunday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n}\n\n\n--##########################################################################################\n--############## ####### ############################################################\n--########### ### ### ## ##############################################################\n--########### ##### #### #############################################################\n--########### ####### ##### ##############################################################\n--############ ############ ################################################################\n--############# ########## ##################################################################\n--############### ####### #####################################################################\n--################# ### #####################################################################\n--################### #######################################################################\n--#################### #####################################################################\n--##################### ####################################################################\n--##########################################################################################\n\n----------------------------------\n-- DO not change bellow this line\n----------------------------------\n--Days = {\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"}\n--DayParts = {\"morning\", \"day\", \"evening\", \"night\"}\n--Parameters = {\"temperature\", \"minute\", \"hour\"}\n \n----------------\n-- FUNCTIONS\n----------------\nfunction Debug(Color, Message)\n fibaro:debug('' ..Message.. '')\nend\n----------------\n-- END FUNCTIONS\n----------------\n \nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", \"Wiederherstellung gestartet\")\nDebug(\"white\", \"Wiederherstellung gestartet\")\n \nmsg = \"Fehler: ID nicht gefunden:\"\n \nHC2 = Net.FHttp(\"127.0.0.1\", 11111)\n \n-- renomer les heating panels & remettre les bons horaires\nfor i = 1, #ConfigHP, 120 do -- parcourir les HP\n HPindex = i\n -- parcourir la table ConigHP et retrouver l'id dans ListeHP\n HPid = 0\n for j = 1, #ListeHP, 2 do \n if ConfigHP[i] == ListeHP[j+1] then HPid = ListeHP[j] end\n end\n if HPid ~= 0 \n then \n Debug(\"blue\", \"nom : \" ..ConfigHP[i].. \" - ID : \" ..HPid)\n jsonInput = '{\"name\":\"'..ConfigHP[i]..'\",\"properties\":{'\n for j = i+1, i+119, 17 do -- parcourir les jours\n HPday = j -- jour du HP\n if j > i+1 then jsonInput = jsonInput..'},' end\n jsonInput = jsonInput..'\"'..ConfigHP[HPday]..'\":{'\n for k = j+1, j+16, 4 do -- parcourir les partir de jour\n HPpart = k -- partie du jour\n HPtemperature = ConfigHP[k+3]\n HPminute = ConfigHP[k+2]\n HPhour = ConfigHP[k+1]\n if k > j+1 then jsonInput = jsonInput..',' end\n jsonInput = jsonInput..'\"'..ConfigHP[HPpart]..'\":{\"hour\":'..HPhour..',\"minute\":'..HPminute..',\"temperature\":'..HPtemperature..'}'\n end\n end\n jsonInput = jsonInput..'}}}'\n Debug(\"white\", jsonInput)\n response, status, error = HC2:PUT(\"/api/panels/heating/\" ..HPid, jsonInput)\n Debug(\"green\",\"status = \" ..status..\" - error = \"..error)\n else\n Debug(\"red\", \"Fehler: ID nicht gefunden:\".. ConfigHP[i]) \n msg = msg.. ConfigHP[i]..\", \"\n end\nend\n \nif msg == \"Fehler: ID nicht gefunden:\" then\n msg = \"Zuhause Wiederherstelt.\"\n Debug(\"green\", \"Wiederherstellung ohne Fehler beendet\")\nend\n \nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", msg)\n------------------------------------------------------------------\n--------------------------------------------------------------------------\nfibaro:call(66, \"setProperty\", \"ui.Zustand.value\", \"AN\");\nfibaro:setGlobal(\"ZustandDesHauses\", \"Zuhause\");\nlocal ZustandDesHauses = fibaro:getGlobalValue(\"ZustandDesHauses\")\nfibaro:call(66, \"setProperty\", \"ui.Schicht.value\", ZustandDesHauses);\n\n\n--############################################################\n---####### Urlaub reset\n---######################################################################\n--------------------------------\n-- User Settings Urlaub reset.\n----------------------------------\n-- ID des HeatingPanels Hier Traegt man ein was zurück gestelt werden soll.\n\n\nlocal hpID = {\n \"WohnZimmer\", 5,\n \"Küche\", 6,\n \"Bad\", 7,\n \"Schlafzimmer\", 8,\n \"Frur und WC\", 56,\n}\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Zuhause (ECS)\nlocal hp0 = {\n\t\"WohnZimmer\",\n \"Küche\",\n \"Bad\",\n \"Schlafzimmer\",\n \"Frur und WC\",\n }\nfibaro:debug (\"#hp0 = \" ..#hp0)\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Ausgeschlossen (SdB)\nlocal hp1 = {\n }\nfibaro:debug (\"#hp1 = \" ..#hp1)\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Urlaub (Oui)\nlocal hp2 = {\n\t\"WohnZimmer\",\n \"Küche\",\n \"Bad\",\n \"Schlafzimmer\",\n \"Frur und WC\",\n }\nfibaro:debug (\"#hp2 = \" ..#hp2)\n \n \n----------------------------------\n-- DO not change bellow this line\n---------------------------------\nlocal HC2 = Net.FHttp(\"127.0.0.1\",11111)\n \n-- Ermitteln der Firmware-Version\nlocal GETheating = \"\"\npayload = \"/api/settings/info\"\nresponse, status, errorCode = HC2:GET(payload)\nif tonumber(status) == 200 \n then\n\tjsonTable = json.decode(response)\n\tif tonumber(jsonTable.softVersion) >= 4 \n then\n--\t\tversion = \"4.x\"\n GETheating = \"/api/panels/heating/\"\n else\n--\t\tversion = \"3.x\"\n GETheating = \"/api/panels/heating?id=\"\n\tend\n else\n\tfibaro:debug('status='..status..', errorCode='..errorCode..', payload='..payload..', response='..response..'')\nend\n \n-- Funktion Update-Flächenheizung.\n-- und handTemperature == 0, dann ist es schon im automatik.\nfunction HeatPanel(id,HandTmp)\n jsonpanel = HC2:GET(GETheating ..id)\n jsontable = json.decode(jsonpanel)\n handTimestamp = jsontable.properties.handTimestamp\n handTemperature = jsontable.properties.handTemperature\n name = jsontable.name\n NouveauPanel = ('{\"id\":' ..id.. ',\"name\":\"'..name.. '\",\"properties\":{\"handTemperature\":' ..handTemperature.. ',\"handTimestamp\": ' ..handTimestamp.. ',\"vacationTemperature\":' ..HandTmp.. '}}')\n HC2:PUT(GETheating ..id, NouveauPanel)\nend\n \n-- Funktion zu finden ID von heating panel.\nfunction HeatPanelID()\n fibaro:debug(\"hpName = \" ..hpName)\n for j = 1, #hpID, 2 do\n fibaro:debug(hpID[j])\n if hpName == hpID[j] then hpId = hpID[j+1] end\n end\nend\n \nhpName = \"\" -- nom du HP verarbeiteten.\nhpId = 0 -- ID du HP verarbeiteten.\n\n-----#################################################\n\n -- ECS Hier wird die heizung ausgeschaltet..\n hpId = 0\n for i = 1, #hp0 do\n hpName = hp0[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n \n -- SdB Hier werden Zimmer ausgeschlossen.\n hpId = 0\n for i = 1, #hp1 do\n hpName = hp1[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n \n -- Oui Die Heizung ist im ganzen Haus.\n hpId = 0\n for i = 1, #hp2 do\n hpName = hp2[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n--###################################################","buttonIcon":64,"favourite":false,"main":false}]},{"type":"button","elements":[{"id":4,"lua":true,"waitForResponse":false,"caption":"Frueschicht","name":"Button41","empty":false,"msg":"----------------------------------\n-- User Settings\n----------------------------------\n\n-- Backup vom : 10/02/17 -- 20:10:56\n-- >> Heitzplan fuer Frueschicht <<\n\nlocal ListeHP = {\n-- id, \"name\", \n5, \"WohnZimmer\",\n6, \"Küche\",\n7, \"Bad\",\n8, \"Schlafzimmer\",\n56, \"Frur und WC\",\n}\n\n-- Backup configuration des Heating Panls vom : 10/02/17 -- 20:10:56\n\nlocal ConfigHP = {\n-- \"name\", \"day\", \"part\", \"hour\", \"minute\", \"temperature\", \n\"WohnZimmer\", \n\"monday\", \"morning\", \"1\", \"0\", \"21\", \"day\", \"12\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"20\", \"0\", \"21\", \n\"tuesday\", \"morning\", \"1\", \"0\", \"21\", \"day\", \"12\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"20\", \"0\", \"23\", \n\"wednesday\", \"morning\", \"1\", \"0\", \"21\", \"day\", \"12\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"20\", \"0\", \"23\", \n\"thursday\", \"morning\", \"1\", \"0\", \"21\", \"day\", \"12\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"20\", \"0\", \"23\", \n\"friday\", \"morning\", \"1\", \"0\", \"21\", \"day\", \"12\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"20\", \"0\", \"23\", \n\"saturday\", \"morning\", \"1\", \"0\", \"21\", \"day\", \"8\", \"0\", \"23.5\", \"evening\", \"18\", \"0\", \"23.5\", \"night\", \"22\", \"0\", \"23.5\", \n\"sunday\", \"morning\", \"1\", \"0\", \"21\", \"day\", \"8\", \"0\", \"23.5\", \"evening\", \"18\", \"0\", \"23.5\", \"night\", \"22\", \"0\", \"23.5\", \n\"Küche\", \n\"monday\", \"morning\", \"1\", \"0\", \"21\", \"day\", \"13\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"21\", \"0\", \"21\", \n\"tuesday\", \"morning\", \"1\", \"0\", \"22\", \"day\", \"13\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"22\", \"0\", \"22\", \n\"wednesday\", \"morning\", \"1\", \"0\", \"22\", \"day\", \"13\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"22\", \"0\", \"22\", \n\"thursday\", \"morning\", \"1\", \"0\", \"22\", \"day\", \"13\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"22\", \"0\", \"22\", \n\"friday\", \"morning\", \"1\", \"0\", \"22\", \"day\", \"13\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"22\", \"0\", \"22\", \n\"saturday\", \"morning\", \"1\", \"0\", \"21\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"22.5\", \n\"sunday\", \"morning\", \"6\", \"0\", \"22\", \"day\", \"8\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22\", \"night\", \"22\", \"0\", \"20\", \n\"Bad\", \n\"monday\", \"morning\", \"2\", \"0\", \"23\", \"day\", \"4\", \"0\", \"21.5\", \"evening\", \"13\", \"0\", \"22.5\", \"night\", \"21\", \"0\", \"21\", \n\"tuesday\", \"morning\", \"2\", \"0\", \"23\", \"day\", \"4\", \"0\", \"21.5\", \"evening\", \"13\", \"0\", \"22.5\", \"night\", \"21\", \"0\", \"21\", \n\"wednesday\", \"morning\", \"2\", \"0\", \"23\", \"day\", \"4\", \"0\", \"21.5\", \"evening\", \"13\", \"0\", \"22.5\", \"night\", \"21\", \"0\", \"21\", \n\"thursday\", \"morning\", \"2\", \"0\", \"23\", \"day\", \"4\", \"0\", \"21.5\", \"evening\", \"13\", \"0\", \"22.5\", \"night\", \"21\", \"0\", \"21\", \n\"friday\", \"morning\", \"2\", \"0\", \"23\", \"day\", \"4\", \"0\", \"21.5\", \"evening\", \"13\", \"0\", \"22.5\", \"night\", \"21\", \"0\", \"21\", \n\"saturday\", \"morning\", \"1\", \"0\", \"21\", \"day\", \"8\", \"0\", \"20.5\", \"evening\", \"13\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"21.5\", \n\"sunday\", \"morning\", \"2\", \"0\", \"22.5\", \"day\", \"4\", \"0\", \"22\", \"evening\", \"9\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"Schlafzimmer\", \n\"monday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"tuesday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"wednesday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"thursday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"friday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"saturday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"sunday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"Frur und WC\", \n\"monday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"tuesday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"wednesday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"thursday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"friday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"saturday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"sunday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n}\n\n--##########################################################################################\n--############## ####### ############################################################\n--########### ### ### ## ##############################################################\n--########### ##### #### #############################################################\n--########### ####### ##### ##############################################################\n--############ ############ ################################################################\n--############# ########## ##################################################################\n--############### ####### #####################################################################\n--################# ### #####################################################################\n--################### #######################################################################\n--#################### #####################################################################\n--##################### ####################################################################\n--##########################################################################################\n\n----------------------------------\n-- DO not change bellow this line\n----------------------------------\n--Days = {\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"}\n--DayParts = {\"morning\", \"day\", \"evening\", \"night\"}\n--Parameters = {\"temperature\", \"minute\", \"hour\"}\n\nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", \"Restore démarré\")\nmsg = \"Erreur : pas d'id trouvé pour : \"\n\nHC2 = Net.FHttp(\"127.0.0.1\", 11111)\n\n----------------------------------\n-- DO not change bellow this line\n----------------------------------\n--Days = {\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"}\n--DayParts = {\"morning\", \"day\", \"evening\", \"night\"}\n--Parameters = {\"temperature\", \"minute\", \"hour\"}\n \n----------------\n-- FUNCTIONS\n----------------\nfunction Debug(Color, Message)\n fibaro:debug('' ..Message.. '')\nend\n----------------\n-- END FUNCTIONS\n----------------\n \nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", \"Wiederherstellung gestartet\")\nDebug(\"white\", \"Wiederherstellung gestartet\")\n \nmsg = \"Fehler: ID nicht gefunden:\"\n \nHC2 = Net.FHttp(\"127.0.0.1\", 11111)\n \n-- renomer les heating panels & remettre les bons horaires\nfor i = 1, #ConfigHP, 120 do -- parcourir les HP\n HPindex = i\n -- parcourir la table ConigHP et retrouver l'id dans ListeHP\n HPid = 0\n for j = 1, #ListeHP, 2 do \n if ConfigHP[i] == ListeHP[j+1] then HPid = ListeHP[j] end\n end\n if HPid ~= 0 \n then \n Debug(\"blue\", \"nom : \" ..ConfigHP[i].. \" - ID : \" ..HPid)\n jsonInput = '{\"name\":\"'..ConfigHP[i]..'\",\"properties\":{'\n for j = i+1, i+119, 17 do -- parcourir les jours\n HPday = j -- jour du HP\n if j > i+1 then jsonInput = jsonInput..'},' end\n jsonInput = jsonInput..'\"'..ConfigHP[HPday]..'\":{'\n for k = j+1, j+16, 4 do -- parcourir les partir de jour\n HPpart = k -- partie du jour\n HPtemperature = ConfigHP[k+3]\n HPminute = ConfigHP[k+2]\n HPhour = ConfigHP[k+1]\n if k > j+1 then jsonInput = jsonInput..',' end\n jsonInput = jsonInput..'\"'..ConfigHP[HPpart]..'\":{\"hour\":'..HPhour..',\"minute\":'..HPminute..',\"temperature\":'..HPtemperature..'}'\n end\n end\n jsonInput = jsonInput..'}}}'\n Debug(\"white\", jsonInput)\n response, status, error = HC2:PUT(\"/api/panels/heating/\" ..HPid, jsonInput)\n Debug(\"green\",\"status = \" ..status..\" - error = \"..error)\n else\n Debug(\"red\", \"Fehler: ID nicht gefunden:\".. ConfigHP[i]) \n msg = msg.. ConfigHP[i]..\", \"\n end\nend\n \nif msg == \"Fehler: ID nicht gefunden:\" then\n msg = \"Frueschicht Wiederherstelt.\"\n Debug(\"green\", \"Wiederherstellung ohne Fehler beendet\")\nend\n \nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", msg)\n------------------------------------------------------------------\n--------------------------------------------------------------------------\nfibaro:call(66, \"setProperty\", \"ui.Zustand.value\", \"AN\");\nfibaro:setGlobal(\"ZustandDesHauses\", \"Frueschicht\");\nlocal ZustandDesHauses = fibaro:getGlobalValue(\"ZustandDesHauses\")\nfibaro:call(66, \"setProperty\", \"ui.Schicht.value\", ZustandDesHauses);\n\n--############################################################\n---####### Urlaub reset\n---######################################################################\n--------------------------------\n-- User Settings Urlaub reset.\n----------------------------------\n-- ID des HeatingPanels Hier Traegt man ein was zurück gestelt werden soll.\n\n\nlocal hpID = {\n \"WohnZimmer\", 5,\n \"Küche\", 6,\n \"Bad\", 7,\n \"Schlafzimmer\", 8,\n \"Frur und WC\", 56,\n}\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Zuhause (ECS)\nlocal hp0 = {\n\t\"WohnZimmer\",\n \"Küche\",\n \"Bad\",\n \"Schlafzimmer\",\n \"Frur und WC\",\n }\nfibaro:debug (\"#hp0 = \" ..#hp0)\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Ausgeschlossen (SdB)\nlocal hp1 = {\n }\nfibaro:debug (\"#hp1 = \" ..#hp1)\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Urlaub (Oui)\nlocal hp2 = {\n\t\"WohnZimmer\",\n \"Küche\",\n \"Bad\",\n \"Schlafzimmer\",\n \"Frur und WC\",\n }\nfibaro:debug (\"#hp2 = \" ..#hp2)\n \n \n----------------------------------\n-- DO not change bellow this line\n---------------------------------\nlocal HC2 = Net.FHttp(\"127.0.0.1\",11111)\n \n-- Ermitteln der Firmware-Version\nlocal GETheating = \"\"\npayload = \"/api/settings/info\"\nresponse, status, errorCode = HC2:GET(payload)\nif tonumber(status) == 200 \n then\n\tjsonTable = json.decode(response)\n\tif tonumber(jsonTable.softVersion) >= 4 \n then\n--\t\tversion = \"4.x\"\n GETheating = \"/api/panels/heating/\"\n else\n--\t\tversion = \"3.x\"\n GETheating = \"/api/panels/heating?id=\"\n\tend\n else\n\tfibaro:debug('status='..status..', errorCode='..errorCode..', payload='..payload..', response='..response..'')\nend\n \n-- Funktion Update-Flächenheizung.\n-- und handTemperature == 0, dann ist es schon im automatik.\nfunction HeatPanel(id,HandTmp)\n jsonpanel = HC2:GET(GETheating ..id)\n jsontable = json.decode(jsonpanel)\n handTimestamp = jsontable.properties.handTimestamp\n handTemperature = jsontable.properties.handTemperature\n name = jsontable.name\n NouveauPanel = ('{\"id\":' ..id.. ',\"name\":\"'..name.. '\",\"properties\":{\"handTemperature\":' ..handTemperature.. ',\"handTimestamp\": ' ..handTimestamp.. ',\"vacationTemperature\":' ..HandTmp.. '}}')\n HC2:PUT(GETheating ..id, NouveauPanel)\nend\n \n-- Funktion zu finden ID von heating panel.\nfunction HeatPanelID()\n fibaro:debug(\"hpName = \" ..hpName)\n for j = 1, #hpID, 2 do\n fibaro:debug(hpID[j])\n if hpName == hpID[j] then hpId = hpID[j+1] end\n end\nend\n \nhpName = \"\" -- nom du HP verarbeiteten.\nhpId = 0 -- ID du HP verarbeiteten.\n\n-----#################################################\n\n -- ECS Hier wird die heizung ausgeschaltet..\n hpId = 0\n for i = 1, #hp0 do\n hpName = hp0[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n \n -- SdB Hier werden Zimmer ausgeschlossen.\n hpId = 0\n for i = 1, #hp1 do\n hpName = hp1[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n \n -- Oui Die Heizung ist im ganzen Haus.\n hpId = 0\n for i = 1, #hp2 do\n hpName = hp2[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n--###################################################","buttonIcon":64,"favourite":false,"main":false}]},{"type":"button","elements":[{"id":5,"lua":true,"waitForResponse":false,"caption":"Spaetschicht","name":"Button51","empty":false,"msg":"----------------------------------\n-- User Settings\n----------------------------------\n\n-- Backup vom : 05/02/17 -- 21:16:13 \n-- Heitzplan fuer ->> Spaetschicht <<\n\nlocal ListeHP = {\n-- id, \"name\", \n5, \"WohnZimmer\",\n6, \"Küche\",\n7, \"Bad\",\n8, \"Schlafzimmer\",\n56, \"Frur und WC\",\n}\n\n-- Backup configuration des Heating Panls vom : 05/02/17 -- 21:16:13\n\nlocal ConfigHP = {\n-- \"name\", \"day\", \"part\", \"hour\", \"minute\", \"temperature\", \n\"WohnZimmer\", \n\"monday\", \"morning\", \"8\", \"0\", \"23\", \"day\", \"13\", \"0\", \"22\", \"evening\", \"20\", \"0\", \"23\", \"night\", \"22\", \"0\", \"20\", \n\"tuesday\", \"morning\", \"8\", \"0\", \"23\", \"day\", \"13\", \"0\", \"22\", \"evening\", \"20\", \"0\", \"23\", \"night\", \"22\", \"0\", \"20\", \n\"wednesday\", \"morning\", \"8\", \"0\", \"23\", \"day\", \"13\", \"0\", \"22\", \"evening\", \"20\", \"0\", \"23\", \"night\", \"22\", \"0\", \"20\", \n\"thursday\", \"morning\", \"8\", \"0\", \"23\", \"day\", \"13\", \"0\", \"22\", \"evening\", \"20\", \"0\", \"23\", \"night\", \"22\", \"0\", \"20\", \n\"friday\", \"morning\", \"8\", \"0\", \"23\", \"day\", \"13\", \"0\", \"22\", \"evening\", \"20\", \"0\", \"23\", \"night\", \"22\", \"0\", \"20\", \n\"saturday\", \"morning\", \"1\", \"0\", \"22\", \"day\", \"8\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"22\", \"0\", \"23\", \n\"sunday\", \"morning\", \"6\", \"0\", \"22\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"22\", \"0\", \"20\", \n\"Küche\", \n\"monday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"20\", \n\"tuesday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"20\", \n\"wednesday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"20\", \n\"thursday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"20\", \n\"friday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"20\", \n\"saturday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"22.5\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"20\", \n\"sunday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"22.5\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"20\", \n\"Bad\", \n\"monday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"21.5\", \"evening\", \"20\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"21\", \n\"tuesday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"21.5\", \"evening\", \"20\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"21\", \n\"wednesday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"21.5\", \"evening\", \"20\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"21\", \n\"thursday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"21.5\", \"evening\", \"20\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"21\", \n\"friday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"21.5\", \"evening\", \"20\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"21\", \n\"saturday\", \"morning\", \"8\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"22.5\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"21\", \n\"sunday\", \"morning\", \"6\", \"0\", \"22.5\", \"day\", \"13\", \"0\", \"21.5\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"Schlafzimmer\", \n\"monday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"tuesday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"wednesday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"thursday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"friday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"saturday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"sunday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"Frur und WC\", \n\"monday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"tuesday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19\", \n\"wednesday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19\", \n\"thursday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19\", \n\"friday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19\", \n\"saturday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"sunday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n}\n\n--##########################################################################################\n--############## ####### ############################################################\n--########### ### ### ## ##############################################################\n--########### ##### #### #############################################################\n--########### ####### ##### ##############################################################\n--############ ############ ################################################################\n--############# ########## ##################################################################\n--############### ####### #####################################################################\n--################# ### #####################################################################\n--################### #######################################################################\n--#################### #####################################################################\n--##################### ####################################################################\n--##########################################################################################\n\n----------------------------------\n-- DO not change bellow this line\n----------------------------------\n--Days = {\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"}\n--DayParts = {\"morning\", \"day\", \"evening\", \"night\"}\n--Parameters = {\"temperature\", \"minute\", \"hour\"}\n\nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", \"Restore démarré\")\nmsg = \"Erreur : pas d'id trouvé pour : \"\n\nHC2 = Net.FHttp(\"127.0.0.1\", 11111)\n\n----------------------------------\n-- DO not change bellow this line\n----------------------------------\n--Days = {\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"}\n--DayParts = {\"morning\", \"day\", \"evening\", \"night\"}\n--Parameters = {\"temperature\", \"minute\", \"hour\"}\n \n----------------\n-- FUNCTIONS\n----------------\nfunction Debug(Color, Message)\n fibaro:debug('' ..Message.. '')\nend\n----------------\n-- END FUNCTIONS\n----------------\n \nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", \"Wiederherstellung gestartet\")\nDebug(\"white\", \"Wiederherstellung gestartet\")\n \nmsg = \"Fehler: ID nicht gefunden:\"\n \nHC2 = Net.FHttp(\"127.0.0.1\", 11111)\n \n-- renomer les heating panels & remettre les bons horaires\nfor i = 1, #ConfigHP, 120 do -- parcourir les HP\n HPindex = i\n -- parcourir la table ConigHP et retrouver l'id dans ListeHP\n HPid = 0\n for j = 1, #ListeHP, 2 do \n if ConfigHP[i] == ListeHP[j+1] then HPid = ListeHP[j] end\n end\n if HPid ~= 0 \n then \n Debug(\"blue\", \"nom : \" ..ConfigHP[i].. \" - ID : \" ..HPid)\n jsonInput = '{\"name\":\"'..ConfigHP[i]..'\",\"properties\":{'\n for j = i+1, i+119, 17 do -- parcourir les jours\n HPday = j -- jour du HP\n if j > i+1 then jsonInput = jsonInput..'},' end\n jsonInput = jsonInput..'\"'..ConfigHP[HPday]..'\":{'\n for k = j+1, j+16, 4 do -- parcourir les partir de jour\n HPpart = k -- partie du jour\n HPtemperature = ConfigHP[k+3]\n HPminute = ConfigHP[k+2]\n HPhour = ConfigHP[k+1]\n if k > j+1 then jsonInput = jsonInput..',' end\n jsonInput = jsonInput..'\"'..ConfigHP[HPpart]..'\":{\"hour\":'..HPhour..',\"minute\":'..HPminute..',\"temperature\":'..HPtemperature..'}'\n end\n end\n jsonInput = jsonInput..'}}}'\n Debug(\"white\", jsonInput)\n response, status, error = HC2:PUT(\"/api/panels/heating/\" ..HPid, jsonInput)\n Debug(\"green\",\"status = \" ..status..\" - error = \"..error)\n else\n Debug(\"red\", \"Fehler: ID nicht gefunden:\".. ConfigHP[i]) \n msg = msg.. ConfigHP[i]..\", \"\n end\nend\n \nif msg == \"Fehler: ID nicht gefunden:\" then\n msg = \"Spaetschicht Wiederherstelt.\"\n Debug(\"green\", \"Wiederherstellung ohne Fehler beendet\")\nend\n \nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", msg)\n------------------------------------------------------------------\n--------------------------------------------------------------------------\nfibaro:call(66, \"setProperty\", \"ui.Zustand.value\", \"AN\");\nfibaro:setGlobal(\"ZustandDesHauses\", \"Spaetschicht\");\nlocal ZustandDesHauses = fibaro:getGlobalValue(\"ZustandDesHauses\")\nfibaro:call(66, \"setProperty\", \"ui.Schicht.value\", ZustandDesHauses);\n\n\n--############################################################\n---####### Urlaub reset\n---######################################################################\n--------------------------------\n-- User Settings Urlaub reset.\n----------------------------------\n-- ID des HeatingPanels Hier Traegt man ein was zurück gestelt werden soll.\n\n\nlocal hpID = {\n \"WohnZimmer\", 5,\n \"Küche\", 6,\n \"Bad\", 7,\n \"Schlafzimmer\", 8,\n \"Frur und WC\", 56,\n}\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Zuhause (ECS)\nlocal hp0 = {\n\t\"WohnZimmer\",\n \"Küche\",\n \"Bad\",\n \"Schlafzimmer\",\n \"Frur und WC\",\n }\nfibaro:debug (\"#hp0 = \" ..#hp0)\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Ausgeschlossen (SdB)\nlocal hp1 = {\n }\nfibaro:debug (\"#hp1 = \" ..#hp1)\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Urlaub (Oui)\nlocal hp2 = {\n\t\"WohnZimmer\",\n \"Küche\",\n \"Bad\",\n \"Schlafzimmer\",\n \"Frur und WC\",\n }\nfibaro:debug (\"#hp2 = \" ..#hp2)\n \n \n----------------------------------\n-- DO not change bellow this line\n---------------------------------\nlocal HC2 = Net.FHttp(\"127.0.0.1\",11111)\n \n-- Ermitteln der Firmware-Version\nlocal GETheating = \"\"\npayload = \"/api/settings/info\"\nresponse, status, errorCode = HC2:GET(payload)\nif tonumber(status) == 200 \n then\n\tjsonTable = json.decode(response)\n\tif tonumber(jsonTable.softVersion) >= 4 \n then\n--\t\tversion = \"4.x\"\n GETheating = \"/api/panels/heating/\"\n else\n--\t\tversion = \"3.x\"\n GETheating = \"/api/panels/heating?id=\"\n\tend\n else\n\tfibaro:debug('status='..status..', errorCode='..errorCode..', payload='..payload..', response='..response..'')\nend\n \n-- Funktion Update-Flächenheizung.\n-- und handTemperature == 0, dann ist es schon im automatik.\nfunction HeatPanel(id,HandTmp)\n jsonpanel = HC2:GET(GETheating ..id)\n jsontable = json.decode(jsonpanel)\n handTimestamp = jsontable.properties.handTimestamp\n handTemperature = jsontable.properties.handTemperature\n name = jsontable.name\n NouveauPanel = ('{\"id\":' ..id.. ',\"name\":\"'..name.. '\",\"properties\":{\"handTemperature\":' ..handTemperature.. ',\"handTimestamp\": ' ..handTimestamp.. ',\"vacationTemperature\":' ..HandTmp.. '}}')\n HC2:PUT(GETheating ..id, NouveauPanel)\nend\n \n-- Funktion zu finden ID von heating panel.\nfunction HeatPanelID()\n fibaro:debug(\"hpName = \" ..hpName)\n for j = 1, #hpID, 2 do\n fibaro:debug(hpID[j])\n if hpName == hpID[j] then hpId = hpID[j+1] end\n end\nend\n \nhpName = \"\" -- nom du HP verarbeiteten.\nhpId = 0 -- ID du HP verarbeiteten.\n\n-----#################################################\n\n -- ECS Hier wird die heizung ausgeschaltet..\n hpId = 0\n for i = 1, #hp0 do\n hpName = hp0[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n \n -- SdB Hier werden Zimmer ausgeschlossen.\n hpId = 0\n for i = 1, #hp1 do\n hpName = hp1[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n \n -- Oui Die Heizung ist im ganzen Haus.\n hpId = 0\n for i = 1, #hp2 do\n hpName = hp2[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n--###################################################","buttonIcon":64,"favourite":false,"main":false}]},{"type":"button","elements":[{"id":6,"lua":true,"waitForResponse":false,"caption":"Nachtschicht","name":"Button61","empty":false,"msg":"----------------------------------\n-- User Settings\n----------------------------------\n\n-- Backup vom : 05/02/17 -- 21:29:16 \n-- Heitzplan fuer ->> Nachtschicht <<\n\nlocal ListeHP = {\n-- id, \"name\", \n5, \"WohnZimmer\",\n6, \"Küche\",\n7, \"Bad\",\n8, \"Schlafzimmer\",\n56, \"Frur und WC\",\n}\n\n-- Backup configuration des Heating Panls vom : 05/02/17 -- 21:29:16\n\nlocal ConfigHP = {\n-- \"name\", \"day\", \"part\", \"hour\", \"minute\", \"temperature\", \n\"WohnZimmer\", \n\"monday\", \"morning\", \"8\", \"0\", \"20\", \"day\", \"12\", \"0\", \"23\", \"evening\", \"18\", \"0\", \"23\", \"night\", \"20\", \"0\", \"20\", \n\"tuesday\", \"morning\", \"12\", \"0\", \"22\", \"day\", \"13\", \"0\", \"22.5\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"20\", \"0\", \"20\", \n\"wednesday\", \"morning\", \"12\", \"0\", \"22\", \"day\", \"13\", \"0\", \"22.5\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"20\", \"0\", \"20\", \n\"thursday\", \"morning\", \"12\", \"0\", \"22\", \"day\", \"13\", \"0\", \"22.5\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"20\", \"0\", \"20\", \n\"friday\", \"morning\", \"12\", \"0\", \"22\", \"day\", \"13\", \"0\", \"22.5\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"20\", \"0\", \"20\", \n\"saturday\", \"morning\", \"3\", \"0\", \"20\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"13\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"22.5\", \n\"sunday\", \"morning\", \"6\", \"0\", \"22\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"18\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"20\", \n\"Küche\", \n\"monday\", \"morning\", \"5\", \"0\", \"22\", \"day\", \"6\", \"0\", \"20\", \"evening\", \"13\", \"0\", \"22\", \"night\", \"20\", \"0\", \"20\", \n\"tuesday\", \"morning\", \"6\", \"0\", \"22\", \"day\", \"8\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22\", \"night\", \"22\", \"0\", \"20\", \n\"wednesday\", \"morning\", \"6\", \"0\", \"22\", \"day\", \"8\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22\", \"night\", \"22\", \"0\", \"20\", \n\"thursday\", \"morning\", \"6\", \"0\", \"22\", \"day\", \"8\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22\", \"night\", \"22\", \"0\", \"20\", \n\"friday\", \"morning\", \"6\", \"0\", \"22\", \"day\", \"8\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22\", \"night\", \"22\", \"0\", \"20\", \n\"saturday\", \"morning\", \"8\", \"0\", \"22\", \"day\", \"13\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22\", \"night\", \"23\", \"0\", \"20\", \n\"sunday\", \"morning\", \"6\", \"0\", \"22\", \"day\", \"8\", \"0\", \"22\", \"evening\", \"18\", \"0\", \"22\", \"night\", \"22\", \"0\", \"20\", \n\"Bad\", \n\"monday\", \"morning\", \"4\", \"0\", \"22.5\", \"day\", \"6\", \"0\", \"21\", \"evening\", \"13\", \"0\", \"22.5\", \"night\", \"19\", \"0\", \"21\", \n\"tuesday\", \"morning\", \"2\", \"0\", \"22.5\", \"day\", \"4\", \"0\", \"21.5\", \"evening\", \"9\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"wednesday\", \"morning\", \"2\", \"0\", \"22.5\", \"day\", \"4\", \"0\", \"21.5\", \"evening\", \"9\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"thursday\", \"morning\", \"2\", \"0\", \"22.5\", \"day\", \"4\", \"0\", \"21.5\", \"evening\", \"9\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"friday\", \"morning\", \"2\", \"0\", \"22.5\", \"day\", \"4\", \"0\", \"21.5\", \"evening\", \"9\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"saturday\", \"morning\", \"1\", \"0\", \"21\", \"day\", \"8\", \"0\", \"22.5\", \"evening\", \"13\", \"0\", \"22.5\", \"night\", \"23\", \"0\", \"22.5\", \n\"sunday\", \"morning\", \"2\", \"0\", \"22.5\", \"day\", \"4\", \"0\", \"22\", \"evening\", \"9\", \"0\", \"22.5\", \"night\", \"22\", \"0\", \"21\", \n\"Schlafzimmer\", \n\"monday\", \"morning\", \"6\", \"0\", \"20\", \"day\", \"12\", \"0\", \"20\", \"evening\", \"18\", \"0\", \"20\", \"night\", \"0\", \"0\", \"20\", \n\"tuesday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"wednesday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"thursday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"friday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"saturday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"sunday\", \"morning\", \"6\", \"0\", \"20.5\", \"day\", \"12\", \"0\", \"20.5\", \"evening\", \"18\", \"0\", \"20.5\", \"night\", \"0\", \"0\", \"20.5\", \n\"Frur und WC\", \n\"monday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"tuesday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19\", \n\"wednesday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19\", \n\"thursday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19\", \n\"friday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19\", \n\"saturday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n\"sunday\", \"morning\", \"6\", \"0\", \"19.5\", \"day\", \"12\", \"0\", \"19.5\", \"evening\", \"18\", \"0\", \"19.5\", \"night\", \"0\", \"0\", \"19.5\", \n}\n\n--##########################################################################################\n--############## ####### ############################################################\n--########### ### ### ## ##############################################################\n--########### ##### #### #############################################################\n--########### ####### ##### ##############################################################\n--############ ############ ################################################################\n--############# ########## ##################################################################\n--############### ####### #####################################################################\n--################# ### #####################################################################\n--################### #######################################################################\n--#################### #####################################################################\n--##################### ####################################################################\n--##########################################################################################\n\n----------------------------------\n-- DO not change bellow this line\n----------------------------------\n--Days = {\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"}\n--DayParts = {\"morning\", \"day\", \"evening\", \"night\"}\n--Parameters = {\"temperature\", \"minute\", \"hour\"}\n\nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", \"Restore démarré\")\nmsg = \"Erreur : pas d'id trouvé pour : \"\n\nHC2 = Net.FHttp(\"127.0.0.1\", 11111)\n\n----------------------------------\n-- DO not change bellow this line\n----------------------------------\n--Days = {\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"}\n--DayParts = {\"morning\", \"day\", \"evening\", \"night\"}\n--Parameters = {\"temperature\", \"minute\", \"hour\"}\n \n----------------\n-- FUNCTIONS\n----------------\nfunction Debug(Color, Message)\n fibaro:debug('' ..Message.. '')\nend\n----------------\n-- END FUNCTIONS\n----------------\n \nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", \"Wiederherstellung gestartet\")\nDebug(\"white\", \"Wiederherstellung gestartet\")\n \nmsg = \"Fehler: ID nicht gefunden:\"\n \nHC2 = Net.FHttp(\"127.0.0.1\", 11111)\n \n-- renomer les heating panels & remettre les bons horaires\nfor i = 1, #ConfigHP, 120 do -- parcourir les HP\n HPindex = i\n -- parcourir la table ConigHP et retrouver l'id dans ListeHP\n HPid = 0\n for j = 1, #ListeHP, 2 do \n if ConfigHP[i] == ListeHP[j+1] then HPid = ListeHP[j] end\n end\n if HPid ~= 0 \n then \n Debug(\"blue\", \"nom : \" ..ConfigHP[i].. \" - ID : \" ..HPid)\n jsonInput = '{\"name\":\"'..ConfigHP[i]..'\",\"properties\":{'\n for j = i+1, i+119, 17 do -- parcourir les jours\n HPday = j -- jour du HP\n if j > i+1 then jsonInput = jsonInput..'},' end\n jsonInput = jsonInput..'\"'..ConfigHP[HPday]..'\":{'\n for k = j+1, j+16, 4 do -- parcourir les partir de jour\n HPpart = k -- partie du jour\n HPtemperature = ConfigHP[k+3]\n HPminute = ConfigHP[k+2]\n HPhour = ConfigHP[k+1]\n if k > j+1 then jsonInput = jsonInput..',' end\n jsonInput = jsonInput..'\"'..ConfigHP[HPpart]..'\":{\"hour\":'..HPhour..',\"minute\":'..HPminute..',\"temperature\":'..HPtemperature..'}'\n end\n end\n jsonInput = jsonInput..'}}}'\n Debug(\"white\", jsonInput)\n response, status, error = HC2:PUT(\"/api/panels/heating/\" ..HPid, jsonInput)\n Debug(\"green\",\"status = \" ..status..\" - error = \"..error)\n else\n Debug(\"red\", \"Fehler: ID nicht gefunden:\".. ConfigHP[i]) \n msg = msg.. ConfigHP[i]..\", \"\n end\nend\n \nif msg == \"Fehler: ID nicht gefunden:\" then\n msg = \"Nachtschicht Wiederherstelt.\"\n Debug(\"green\", \"Wiederherstellung ohne Fehler beendet\")\nend\n \nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", msg)\n------------------------------------------------------------------\n-----------------------------------------------------------------\nfibaro:call(66, \"setProperty\", \"ui.Zustand.value\", \"AN\");\nfibaro:setGlobal(\"ZustandDesHauses\", \"Nachtschicht\");\nlocal ZustandDesHauses = fibaro:getGlobalValue(\"ZustandDesHauses\")\nfibaro:call(66, \"setProperty\", \"ui.Schicht.value\", ZustandDesHauses);\n\n\n--############################################################\n---####### Urlaub reset\n---######################################################################\n--------------------------------\n-- User Settings Urlaub reset.\n----------------------------------\n-- ID des HeatingPanels Hier Traegt man ein was zurück gestelt werden soll.\n\n\nlocal hpID = {\n \"WohnZimmer\", 5,\n \"Küche\", 6,\n \"Bad\", 7,\n \"Schlafzimmer\", 8,\n \"Frur und WC\", 56,\n}\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Zuhause (ECS)\nlocal hp0 = {\n\t\"WohnZimmer\",\n \"Küche\",\n \"Bad\",\n \"Schlafzimmer\",\n \"Frur und WC\",\n }\nfibaro:debug (\"#hp0 = \" ..#hp0)\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Ausgeschlossen (SdB)\nlocal hp1 = {\n }\nfibaro:debug (\"#hp1 = \" ..#hp1)\n \n-- HeatingPanels: Wert der Vareable Schichtarbeit = Urlaub (Oui)\nlocal hp2 = {\n\t\"WohnZimmer\",\n \"Küche\",\n \"Bad\",\n \"Schlafzimmer\",\n \"Frur und WC\",\n }\nfibaro:debug (\"#hp2 = \" ..#hp2)\n \n \n----------------------------------\n-- DO not change bellow this line\n---------------------------------\nlocal HC2 = Net.FHttp(\"127.0.0.1\",11111)\n \n-- Ermitteln der Firmware-Version\nlocal GETheating = \"\"\npayload = \"/api/settings/info\"\nresponse, status, errorCode = HC2:GET(payload)\nif tonumber(status) == 200 \n then\n\tjsonTable = json.decode(response)\n\tif tonumber(jsonTable.softVersion) >= 4 \n then\n--\t\tversion = \"4.x\"\n GETheating = \"/api/panels/heating/\"\n else\n--\t\tversion = \"3.x\"\n GETheating = \"/api/panels/heating?id=\"\n\tend\n else\n\tfibaro:debug('status='..status..', errorCode='..errorCode..', payload='..payload..', response='..response..'')\nend\n \n-- Funktion Update-Flächenheizung.\n-- und handTemperature == 0, dann ist es schon im automatik.\nfunction HeatPanel(id,HandTmp)\n jsonpanel = HC2:GET(GETheating ..id)\n jsontable = json.decode(jsonpanel)\n handTimestamp = jsontable.properties.handTimestamp\n handTemperature = jsontable.properties.handTemperature\n name = jsontable.name\n NouveauPanel = ('{\"id\":' ..id.. ',\"name\":\"'..name.. '\",\"properties\":{\"handTemperature\":' ..handTemperature.. ',\"handTimestamp\": ' ..handTimestamp.. ',\"vacationTemperature\":' ..HandTmp.. '}}')\n HC2:PUT(GETheating ..id, NouveauPanel)\nend\n \n-- Funktion zu finden ID von heating panel.\nfunction HeatPanelID()\n fibaro:debug(\"hpName = \" ..hpName)\n for j = 1, #hpID, 2 do\n fibaro:debug(hpID[j])\n if hpName == hpID[j] then hpId = hpID[j+1] end\n end\nend\n \nhpName = \"\" -- nom du HP verarbeiteten.\nhpId = 0 -- ID du HP verarbeiteten.\n\n-----#################################################\n\n -- ECS Hier wird die heizung ausgeschaltet..\n hpId = 0\n for i = 1, #hp0 do\n hpName = hp0[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n \n -- SdB Hier werden Zimmer ausgeschlossen.\n hpId = 0\n for i = 1, #hp1 do\n hpName = hp1[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n \n -- Oui Die Heizung ist im ganzen Haus.\n hpId = 0\n for i = 1, #hp2 do\n hpName = hp2[i]\n HeatPanelID()\n fibaro:debug(\"hpId = \" ..hpId)\n HeatPanel(hpId, 0)\n end\n--###################################################","buttonIcon":64,"favourite":false,"main":false}]},{"type":"label","elements":[{"id":7,"lua":false,"waitForResponse":false,"caption":"","name":"Label4","favourite":false,"main":false}]},{"type":"button","elements":[{"id":8,"lua":true,"waitForResponse":false,"caption":"Urlaub","name":"button_7_0","empty":false,"msg":"--------------------------------\n-- User Settings\n----------------------------------\n-- nom de la variable qui définit le niveau de Zuhause\nlocal tmpOff = 14 -- température pour HP Off\nlocal handTemperature = 0\nlocal handTimestamp = (os.time()+1*60*60)\n\n-- ID des HeatingPanels Hier Traegt man ein was zurück gestelt werden soll.\nlocal hpID = {\n \"WohnZimmer\", 5,\n \"Küche\", 6,\n \"Bad\", 7,\n \"Schlafzimmer\", 8,\n \"Frur und WC\", 56,\n}\n----------------------------------\n-- DO not change bellow this line\n---------------------------------\nlocal HC2 = Net.FHttp(\"127.0.0.1\",11111)\n \n-- Ermitteln der Firmware-Version\nlocal GETheating = \"/api/panels/heating/\"\npayload = \"/api/settings/info\"\nresponse, status, errorCode = HC2:GET(payload)\nif tonumber(status) == 200 \n then\n\tjsonTable = json.decode(response)\n--\t\tversion = \"4.x\"\n GETheating = \"/api/panels/heating/\"\n else\n\tfibaro:debug('status='..status..', errorCode='..errorCode..', payload='..payload..', response='..response..'')\nend\n\n-- Funktion Update-Flächenheizung.\n-- und handTemperature == 0, dann ist es schon im automatik.\nfunction HeatPanel(id,HandTmp)\n jsonpanel = HC2:GET(GETheating ..id)\n jsontable = json.decode(jsonpanel)\n --handTimestamp = jsontable.properties.handTimestamp\n --handTemperature = jsontable.properties.handTemperature\n name = jsontable.name\n NouveauPanel = ('{\"id\":' ..id.. ',\"name\":\"'..name.. '\",\"properties\":{\"handTemperature\":' ..handTemperature.. ',\"handTimestamp\": ' ..handTimestamp.. ',\"vacationTemperature\":' ..HandTmp.. '}}')\n HC2:PUT(GETheating ..id, NouveauPanel)\nend\nhpId = 0 -- ID du HP verarbeiteten.\nfor i = 1, #hpID, 2 do\n fibaro:debug(\"hpID[\" ..i.. \"] = \" ..hpID[i].. \" = \" ..hpID[i+1])\n HeatPanel(hpID[i+1], tmpOff)\nend\n------------------------------------------------------------------\n-----------------------------------------------------------------\nfibaro:call(66, \"setProperty\", \"ui.Zustand.value\", \"Aus\");\nfibaro:setGlobal(\"ZustandDesHauses\", \"Urlaub\");\nlocal ZustandDesHauses = fibaro:getGlobalValue(\"ZustandDesHauses\")\nfibaro:call(66, \"setProperty\", \"ui.Schicht.value\", ZustandDesHauses);\n\nlocal msg = \"Urlaub Wiederherstelt.\"\nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", msg);\n","buttonIcon":64,"favourite":false,"main":false}]},{"type":"button","elements":[{"id":9,"lua":true,"waitForResponse":false,"caption":"Sommer","name":"Button71","empty":false,"msg":"--------------------------------\n-- User Settings\n----------------------------------\n-- nom de la variable qui définit le niveau de Zuhause\nlocal tmpOff = 12 -- température pour HP Off\nlocal handTemperature = 0\nlocal handTimestamp = (os.time()+1*60*60)\n\n-- ID des HeatingPanels Hier Traegt man ein was zurück gestelt werden soll.\nlocal hpID = {\n \"WohnZimmer\", 5,\n \"Küche\", 6,\n \"Bad\", 7,\n \"Schlafzimmer\", 8,\n \"Frur und WC\", 56,\n}\n----------------------------------\n-- DO not change bellow this line\n---------------------------------\nlocal HC2 = Net.FHttp(\"127.0.0.1\",11111)\n \n-- Ermitteln der Firmware-Version\nlocal GETheating = \"/api/panels/heating/\"\npayload = \"/api/settings/info\"\nresponse, status, errorCode = HC2:GET(payload)\nif tonumber(status) == 200 \n then\n\tjsonTable = json.decode(response)\n--\t\tversion = \"4.x\"\n GETheating = \"/api/panels/heating/\"\n else\n\tfibaro:debug('status='..status..', errorCode='..errorCode..', payload='..payload..', response='..response..'')\nend\n\n-- Funktion Update-Flächenheizung.\n-- und handTemperature == 0, dann ist es schon im automatik.\nfunction HeatPanel(id,HandTmp)\n jsonpanel = HC2:GET(GETheating ..id)\n jsontable = json.decode(jsonpanel)\n --handTimestamp = jsontable.properties.handTimestamp\n --handTemperature = jsontable.properties.handTemperature\n name = jsontable.name\n NouveauPanel = ('{\"id\":' ..id.. ',\"name\":\"'..name.. '\",\"properties\":{\"handTemperature\":' ..handTemperature.. ',\"handTimestamp\": ' ..handTimestamp.. ',\"vacationTemperature\":' ..HandTmp.. '}}')\n HC2:PUT(GETheating ..id, NouveauPanel)\nend\nhpId = 0 -- ID du HP verarbeiteten.\nfor i = 1, #hpID, 2 do\n fibaro:debug(\"hpID[\" ..i.. \"] = \" ..hpID[i].. \" = \" ..hpID[i+1])\n HeatPanel(hpID[i+1], tmpOff)\nend\n------------------------------------------------------------------\n-----------------------------------------------------------------\nfibaro:call(66, \"setProperty\", \"ui.Zustand.value\", \"Aus\");\nfibaro:setGlobal(\"ZustandDesHauses\", \"Sommer\");\nlocal ZustandDesHauses = fibaro:getGlobalValue(\"ZustandDesHauses\")\nfibaro:call(66, \"setProperty\", \"ui.Schicht.value\", ZustandDesHauses);\n\nlocal msg = \"Sommer Wiederherstelt.\"\nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", msg);\n","buttonIcon":64,"favourite":false,"main":false}]},{"type":"label","elements":[{"id":10,"lua":false,"waitForResponse":false,"caption":"Status:","name":"message","favourite":false,"main":true}]},{"type":"label","elements":[{"id":11,"lua":false,"waitForResponse":false,"caption":"","name":"Label9","favourite":false,"main":false}]},{"type":"button","elements":[{"id":12,"lua":true,"waitForResponse":false,"caption":"Sonnenposition update:","name":"button_11_0","empty":false,"msg":"---########## Sonnenposition ###########################################\n---------------------------------\nlocal DateHeure = os.date(\"%H:%M:%S %d.%m.%y\", os.time())\n-- Bestimmungsfunktion, wenn Schaltjahr.\nfunction AnneeBissextile(annee)\n return annee%4==0 and (annee%100~=0 or annee%400==0)\nend\n---------------------------------\n-- Fonction Label-Ladefunktion\nfunction setDevicePropertyValue(id, label, value)\n fibaro:call(id, \"setProperty\", \"ui.\"..label..\".value\", value)\nend\n---------------------------------\n-- Fonction aufRunden\nfunction arrondir(num, dec)\n if num == 0 then\n return 0\n else\n \tlocal mult = 10^(dec or 0)\n \treturn math.floor(num * mult + 0.5) / mult\n end\nend\n---------------------------------\n---------------------------------\n-- Procedure principale\n---------------------------------\n-- API-Anfrage Loopback Breite und Länge HC2 Einstellungen abrufen\nlocal VDid = fibaro:getSelfId()\nloopback = Net.FHttp(\"127.0.0.1\",11111)\nlocal response = loopback:GET(\"/api/settings/location\")\njsonTable = json.decode(response)\nlocal Ville = (jsonTable.city)\nlocal Latitude = (jsonTable.latitude)\nlocal Longitude = (jsonTable.longitude)\n---------------------------------\n-- Début debug\nfibaro:debug(\"=====================================\")\nfibaro:debug(Ville .. \", \" .. Latitude .. \", \" .. Longitude)\n\n---Schaltjahr wird berechnet\nlocal An = os.date(\"%Y\")\nlocal NiemeJourDeLAnnee = os.date(\"%j\")\nfibaro:debug(\"Tag des Jahres = \" .. NiemeJourDeLAnnee)\nif AnneeBissextile(An) == true then\n\tfibaro:debug( An .. \" ist ein Schaltjahr.\")\nsetDevicePropertyValue(VDid, \"Labelschaltjahr\",( An .. \" ist ein Schaltjahr.\"))\n\tJourDansLAnnee = 366\nelse\n\tfibaro:debug( An .. \" es ist kein Schaltjahr.\")\nsetDevicePropertyValue(VDid, \"Labelschaltjahr\",( An .. \" ist kein Schaltjahr.\"))\n\tJourDansLAnnee = 365\nend\n---------------------------------\n-- Winkelgeschwindigkeit = Wieviel Grad pro Tag\nVitesseAngulaire = 360/365.25 ----Ein Tag im Jahr - oder etwa 365,25\nfibaro:debug(\"Winkelgeschwindigkeit = \" .. VitesseAngulaire .. \" pro Tag\")\n---------------------------------\n-- Erd neigung\nlocal Declinaison = math.deg(math.asin(0.3978 * math.sin(math.rad(VitesseAngulaire) *(NiemeJourDeLAnnee - (81 - 2 * math.sin((math.rad(VitesseAngulaire) * (NiemeJourDeLAnnee - 2))))))))\nfibaro:debug(\"Erd neigung = \" .. Declinaison .. \"°\")\n---------------------------------\n-- Weltzeit dezimal (UTC)\nTempsDecimal = (os.date(\"!%H\") + os.date(\"!%M\") / 60)\nfibaro:debug(\"Weltzeit decimal (UTC)\".. TempsDecimal ..\" H.dd\")\n---------------------------------\n-- Sonnenzeit\nHeureSolaire = TempsDecimal + (4 * Longitude / 60 )\nfibaro:debug(\"Sonnenzeit \".. HeureSolaire ..\" H.dd\")\n---------------------------------\n-- Stundenwinkel der Sonne\nAngleHoraire = 15 * ( 12 - HeureSolaire )\nfibaro:debug(\"Stundenwinkel = \".. AngleHoraire .. \"°\")\n---------------------------------\n-- Die Höhe der Sonne (Elevation oder Höhe)\nHauteurSoleil = math.deg(math.asin(math.sin(math.rad(Latitude))* math.sin(math.rad(Declinaison)) + math.cos(math.rad(Latitude)) * math.cos(math.rad(Declinaison)) * math.cos(math.rad(AngleHoraire))))\nfibaro:debug(\"Höhe der Sonne ueber den Horisont ist = \" .. string.format(\"%.1f\", HauteurSoleil) .. \"°\")\nfibaro:debug(\"Höhe der Sonne ueber den Horisont ist = \" .. arrondir(HauteurSoleil,2) .. \"°\")\nlocal Azimut = math.acos((math.sin(math.rad(Declinaison)) - math.sin(math.rad(Latitude)) * math.sin(math.rad(HauteurSoleil))) / (math.cos(math.rad(Latitude)) * math.cos(math.rad(HauteurSoleil) ))) * 180 / math.pi\nlocal SinAzimut = (math.cos(math.rad(Declinaison)) * math.sin(math.rad(AngleHoraire))) / math.cos(math.rad(HauteurSoleil))\nif(SinAzimut<0) then\n Azimut=360-Azimut\nend\nfibaro:debug(\"180° ist Sueden, Azimut der Sonne ist jetzt = \" .. string.format(\"%.2f\", Azimut) .. \"°\"); --11 stellle nach komma. \nfibaro:debug(\"180° ist Sueden, Azimut der Sonne ist jetzt = \" .. arrondir(Azimut,2) .. \"°\");\n---------------------------------\nsetDevicePropertyValue(VDid, \"LabelAzimut\", arrondir(Azimut,2)..\"°\" )\nfibaro:setGlobal(\"SonnenWinkel\", arrondir(Azimut,0));\nsetDevicePropertyValue(VDid, \"Labelhoehe\", arrondir(HauteurSoleil,2) .. \"°\" )\n--setDevicePropertyValue(VDid, \"Labeltagdesjahres\",NiemeJourDeLAnnee)\nsetDevicePropertyValue(VDid, \"Labelaktualisiert\",DateHeure)\n--fibaro:sleep(1*60*1000)\n--##########################################################\nlocal ZustandDesHauses = fibaro:getGlobalValue(\"ZustandDesHauses\")\nlocal msg = ZustandDesHauses ..' '.. os.date(\"%H:%M:%S\")\nfibaro:call(fibaro:getSelfId(), \"setProperty\", \"ui.message.value\", msg);\nfibaro:log(DateHeure)\n\n","buttonIcon":64,"favourite":false,"main":true}]},{"type":"label","elements":[{"id":13,"lua":false,"waitForResponse":false,"caption":"Sonnen winkel =","name":"LabelAzimut","favourite":false,"main":false}]},{"type":"label","elements":[{"id":14,"lua":false,"waitForResponse":false,"caption":"Sonnen Hoehe =","name":"Labelhoehe","favourite":false,"main":false}]},{"type":"label","elements":[{"id":15,"lua":false,"waitForResponse":false,"caption":"Aktualisiert:","name":"Labelaktualisiert","favourite":false,"main":false}]},{"type":"label","elements":[{"id":16,"lua":false,"waitForResponse":false,"caption":"","name":"label_15_0","favourite":false,"main":false}]},{"type":"button","elements":[{"id":17,"lua":true,"waitForResponse":false,"caption":"Backup nur im Debug!","name":"button_16_0","empty":false,"msg":"----------------------------------\n-- DO not change bellow this line\n----------------------------------\nDays = {\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"}\nDayParts = {\"morning\", \"day\", \"evening\", \"night\"}\nHC2 = Net.FHttp(\"127.0.0.1\", 11111)\n\n-- backup Liste des heating panels\nlocal response, status, error = HC2:GET(\"/api/panels/heating\")\njsonListe = json.decode(response)\n\nresult = \"

\" .. os.date(\"%d/%m/%y %X\")\nresult = result.. \"

local hpID = {\"\nfor k, v in pairs(jsonListe) do\n result = result ..'
\"'.. v.name ..'\", ' .. v.id ..','\nend\nresult = result .. \"
}\"\nfibaro:debug(result)\n\n--############################################################\n\n\nresult = \"

\" .. os.date(\"%d/%m/%y %X\")\nresult = result.. \"

local hpID = {\"\nfor k, v in pairs(jsonListe) do\n result = result ..'
\"'.. v.name ..'\", '\nend\nresult = result .. \"
}\"\nfibaro:debug(result)\n\n","buttonIcon":64,"favourite":false,"main":false}]},{"type":"button","elements":[{"id":18,"lua":true,"waitForResponse":false,"caption":"Backup","name":"Button81","empty":false,"msg":"----------------------------------\n-- DO not change bellow this line\n----------------------------------\nDays = {\"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\", \"sunday\"}\nDayParts = {\"morning\", \"day\", \"evening\", \"night\"}\nHC2 = Net.FHttp(\"127.0.0.1\", 11111)\n\n-- backup Liste des heating panels\n\nlocal response, status, error = HC2:GET(\"/api/panels/heating\")\njsonListe = json.decode(response)\n\n-----------------------------------------------------------------------\nresult = \"

-- Backup vom : \" .. os.date(\"%d/%m/%y --  %X\")\nresult = result.. '

local ListeHP = {
-- id, \"name\", '\nfor k, v in pairs(jsonListe) do\n result = result ..'
'.. v.id ..', \"' .. v.name ..'\",'\nend\nresult = result .. \"
}\"\nfibaro:debug(result)\n\n-- backup de la configuration des heating panels\nresult = result.. \"

-- Backup configuration des Heating Panls vom : \" .. os.date(\"%d/%m/%y --  %X\")\nresult = result.. '

local ConfigHP = {
-- \"name\", \"day\", \"part\", \"hour\", \"minute\", \"temperature\", '\nfor k, v in pairs(jsonListe) do\n jsonTable = api.get(\"/panels/heating/\"..v.id)\n result = result ..'
\"' .. jsonTable.name ..'\", '\n for _,Day in pairs(Days) do\n result = result ..'
\"'..Day..'\", '\n for _,Part in pairs(DayParts) do\n result = result .. '\"'..Part..'\", '\n result = result ..'\"'.. jsonTable.properties[Day][Part].hour ..'\", '\n result = result ..'\"'.. jsonTable.properties[Day][Part].minute ..'\", '\n result = result ..'\"'.. jsonTable.properties[Day][Part].temperature ..'\", '\n end -- DayParts\n end -- Days\nend\nresult = result .. \"
}\"\nfibaro:debug(result)\n------------------------------------------------------------\n","buttonIcon":64,"favourite":false,"main":false}]}]},"actions":{"pressButton":1,"setSlider":2,"setProperty":2}}