sub init() m.top.setFocus(true) m.backend = m.top.findNode("backend") m.status = m.top.findNode("status") m.cameraNodes = [ m.top.findNode("cam1"), m.top.findNode("cam2"), m.top.findNode("cam3"), m.top.findNode("cam4") ] loadConfig() end sub sub loadConfig() raw = ReadAsciiFile("pkg:/config/cameras.json") config = ParseJson(raw) if type(config) <> "roAssociativeArray" then m.status.text = "Unable to parse cameras.json" return end if if config.doesExist("backend") and config.backend.doesExist("baseUrl") then m.backend.text = "Frigate: " + config.backend.baseUrl end if if not config.doesExist("cameras") then m.status.text = "No cameras found in config" return end if cameras = config.cameras m.status.text = cameras.count().toStr() + " cameras loaded from static config" for i = 0 to m.cameraNodes.count() - 1 node = m.cameraNodes[i] if i < cameras.count() then camera = cameras[i] label = camera.name if camera.doesExist("host") then label = label + chr(10) + camera.host end if if camera.doesExist("frigateCamera") then label = label + chr(10) + "Frigate ID: " + camera.frigateCamera end if node.text = label else node.text = "Empty slot" end if end for end sub