På min GitHub där jag lägger upp koden till EventRunner finns en underkatalog som heter /scenesER
och där finns en scen some heter Supervisor.lua. Den är uppe i v2.0, fix B3.
Supervisor är ER baserad scen som ser till att hålla liv i andra ER scener. Den scannar alla installerade scener
och om de är ER baserade så börjar den pinga de i tur och ordning. Om någon inte svarar så försöker den
starta om scenen. Om scenen inte svarar på ping efter 3 omstarter så avaktiverar den scenen.
Jag utvecklade den här scenen när HC2:an var lite instabil men den har visat sig vara ganska bra att ha. Den kan notifiera till mobil om ngn scen strejkar (måste konfigureras i Supervisor.lua)
Iden är att utveckla Supervisor att göra fler saker, och nu har jag lagt till en början till log funktion.
Problemet med loggen i scenfönstret är att det finns inte kvar om scenen startar om, och dessutom skrivs det ofta data som inte är helt nödvändigt att spara där men gör att scenloggen blir full och automatiskt rensas (efter ca 500 rader).
Om man från en scen (med sceneID 4) ger kommandot
Code: Select all
rule("88:isOn => publish(#ERLog{msg="Device 88 turned On"})")
så kommer det kommer att skrivas i loggen som
Code: Select all
["10:51:13/05/26/19","Scene:4","Device 88 turned On"],
Anta att man vill logga när ett antal device ändrar tillstånd
Code: Select all
devices = {hall.lamp,bedroom.lamp, kitchen.sensor}
rule("devices:value => publish(#ERLog{msg=frm('%s=%s',idname(env.event.id),env.event.value)})")
Supervisor skriver loggen i en annan scen som skapas och heter "EventRunner Log". Den är normalt "hidden" men man kan ändra status på den om man alltid vill se den.
Den skriver upp till 2000 entries och sedan klipps den ner till 1000, och så börjar det om.
Om man öppnar scenen och tittar på koden så ser den ut som
Code: Select all
[
["10:51:13/05/26/19","Scene:4","Hello:455"],
["10:51:17/05/26/19","Scene:4","Hello:456"],
["10:51:21/05/26/19","Scene:4","Hello:457"],
["10:51:25/05/26/19","Scene:4","Hello:458"],
["10:51:29/05/26/19","Scene:4","Hello:459"],
["10:51:33/05/26/19","Scene:4","Hello:460"],
["10:51:37/05/26/19","Scene:4","Hello:461"],
["10:51:41/05/26/19","Scene:4","Hello:462"],
["10:51:45/05/26/19","Scene:4","Hello:463"],
["10:51:49/05/26/19","Scene:4","Hello:464"],
["10:51:53/05/26/19","Scene:4","Hello:465"],
["10:51:57/05/26/19","Scene:4","Hello:466"],
["10:52:01/05/26/19","Scene:4","Hello:467"],
["10:52:05/05/26/19","Scene:4","Hello:468"],
["10:52:09/05/26/19","Scene:4","Hello:469"]
]