[{"id":"8e08a0d2.af2b88","type":"tab","label":"atvscript","disabled":false,"info":""},{"id":"fbc3c7d0.0bfe78","type":"trigger","z":"8e08a0d2.af2b88","name":"1.5 s buffer","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"1500","extend":true,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":1210,"y":440,"wires":[[]]},{"id":"d00519cf.0eb3d8","type":"link in","z":"8e08a0d2.af2b88","name":"Apple TV 4K Playing","links":["5d7f200b.d9681"],"x":1015,"y":320,"wires":[["fbc3c7d0.0bfe78","a08dc8a1.0716f","f426aee1.7cb068","ed5d6838.859a38","2b051f65.a0192","5a84171a.8fe87","992977fd.dc536","e8b0a9eb.5b3368","9252e16f.c9d318","a9a26859.01fd6","105d9c96.2dc3cb"]]},{"id":"6bda53be.e1b004","type":"comment","z":"8e08a0d2.af2b88","name":"Dashboard","info":"","x":1120,"y":200,"wires":[]},{"id":"f426aee1.7cb068","type":"ui_text","z":"8e08a0d2.af2b88","group":"36fa2c95.b281cc","order":2,"width":0,"height":0,"name":"","label":"Device State","format":"{{msg.payload.device_state}}","layout":"col-center","x":1210,"y":280,"wires":[]},{"id":"ed5d6838.859a38","type":"ui_text","z":"8e08a0d2.af2b88","group":"36fa2c95.b281cc","order":3,"width":0,"height":0,"name":"","label":"Title","format":"{{msg.payload.title}}","layout":"col-center","x":1190,"y":320,"wires":[]},{"id":"2b051f65.a0192","type":"ui_text","z":"8e08a0d2.af2b88","group":"36fa2c95.b281cc","order":4,"width":0,"height":0,"name":"","label":"App Name","format":"{{msg.payload.app}}","layout":"col-center","x":1210,"y":360,"wires":[]},{"id":"5a84171a.8fe87","type":"ui_text","z":"8e08a0d2.af2b88","group":"36fa2c95.b281cc","order":5,"width":0,"height":0,"name":"","label":"App","format":"{{msg.payload.app_id}}","layout":"col-center","x":1190,"y":400,"wires":[]},{"id":"a08dc8a1.0716f","type":"ui_text","z":"8e08a0d2.af2b88","group":"36fa2c95.b281cc","order":1,"width":0,"height":0,"name":"","label":"Media Type","format":"{{msg.payload.media_type}}","layout":"col-center","x":1210,"y":240,"wires":[]},{"id":"debaba18.e59f48","type":"comment","z":"8e08a0d2.af2b88","name":"ATVSCRIPT","info":"","x":110,"y":220,"wires":[]},{"id":"78c3aa90.c26144","type":"change","z":"8e08a0d2.af2b88","name":"sigterm","rules":[{"t":"set","p":"kill","pt":"msg","to":"SIGTERM","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":240,"y":300,"wires":[["1cb21dd2.bc742a"]]},{"id":"5d7f200b.d9681","type":"link out","z":"8e08a0d2.af2b88","name":"Apple TV 4K Playing","links":["d00519cf.0eb3d8"],"x":840,"y":320,"wires":[],"l":true},{"id":"66e251f6.355538","type":"function","z":"8e08a0d2.af2b88","name":"Process","func":"let InPut = JSON.parse(msg.payload);\nlet powerMsg = null;\nlet mediaMsg = null;\nlet errMsg = null;\n\nif (InPut.power_state !== undefined){\n    powerMsg = {\n        payload: InPut.power_state,\n        topic: 'tvPower',\n        tv: 'appletv'\n    }\n} else if (InPut.media_type !== undefined){\n    mediaMsg = {\n        payload: InPut,\n        topic: 'tvPlaying',\n        tv: 'appletv'\n    }\n} else if (InPut.result === \"failure\"){\n    errMsg = {\n        payload: InPut\n    }\n} else {\n    node.error('Error: please use a valid payload');\n    node.warn(msg.payload);\n    return;\n}\n\n\nreturn [powerMsg,mediaMsg,errMsg];","outputs":3,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":300,"wires":[["d41b2e3e.82ef38"],["5d7f200b.d9681"],[]]},{"id":"ec1c9ea5.b1e6d","type":"trigger","z":"8e08a0d2.af2b88","name":"","op1":"true","op2":"false","op1type":"bool","op2type":"bool","duration":"30","extend":true,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":610,"y":380,"wires":[["c56b883f.ba2818"]]},{"id":"c56b883f.ba2818","type":"change","z":"8e08a0d2.af2b88","name":"Restart","rules":[{"t":"set","p":"BedATVStartup","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":380,"wires":[[]]},{"id":"d41b2e3e.82ef38","type":"link out","z":"8e08a0d2.af2b88","name":"Apple TV 4K Power","links":[],"x":830,"y":280,"wires":[],"l":true},{"id":"1cb21dd2.bc742a","type":"daemon","z":"8e08a0d2.af2b88","name":"Apple TV 4K","command":"atvscript","args":"-s 192.168.178.27 push_updates","autorun":true,"cr":false,"redo":true,"op":"lines","closer":"SIGTERM","x":410,"y":300,"wires":[["66e251f6.355538"],[],[]]},{"id":"992977fd.dc536","type":"debug","z":"8e08a0d2.af2b88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1210,"y":700,"wires":[]},{"id":"e8b0a9eb.5b3368","type":"debug","z":"8e08a0d2.af2b88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload.title","targetType":"msg","statusVal":"payload.title","statusType":"auto","x":1230,"y":500,"wires":[]},{"id":"9252e16f.c9d318","type":"debug","z":"8e08a0d2.af2b88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload.artist","targetType":"msg","statusVal":"payload.artist","statusType":"auto","x":1230,"y":560,"wires":[]},{"id":"a9a26859.01fd6","type":"debug","z":"8e08a0d2.af2b88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload.app","targetType":"msg","statusVal":"payload.app","statusType":"auto","x":1230,"y":620,"wires":[]},{"id":"105d9c96.2dc3cb","type":"function","z":"8e08a0d2.af2b88","name":"Awtrix: Message","func":"// if Apple Music is playing\nif (msg.payload.app == \"Musik\") {\n    // if Apple Music Songs / Alben / Playbook are playing\n    if (msg.payload.device_state == \"playing\" && msg.payload.artist != null){\n        msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":368,\"repeat\":2,\"text\":msg.payload.artist +\": \"+ msg.payload.title,\"color\":[51,204,51]};\n    }\n    // if Apple Music - Radio is playing\n    if (msg.payload.device_state == \"playing\" && msg.payload.artist == null){\n        msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":368,\"repeat\":2,\"text\":msg.payload.title,\"color\":[51,204,51]};\n    }\n    msg.headers = {\"content-type\": \"application/json\"};\n    return msg;\n}\n\n// if Podcasts is playing\nif (msg.payload.app == \"Podcasts\") {\n    if (msg.payload.device_state == \"playing\"){\n        msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":1341,\"repeat\":2,\"text\":msg.payload.artist +\": \"+ msg.payload.title,\"color\":[51,204,51]};\n    }\n    /*if (msg.payload.device_state == \"paused\"){\n        msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":1064,\"repeat\":1,\"text\":\"Musik aus\",\"color\":[51,204,51]};\n    }*/\n    msg.headers = {\"content-type\": \"application/json\"};\n    return msg;\n}\n\n// if a streaming app is playing\n        // if Magenta TV is playing\n        if (msg.payload.app == \"Magenta TV\") {\n            if (msg.payload.device_state == \"playing\"){\n                msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":131,\"repeat\":2,\"text\":msg.payload.artist +\": \"+ msg.payload.title,\"color\":[51,204,51]};\n                msg.headers = {\"content-type\": \"application/json\"};\n        return msg;\n            }\n        } \n        // if Netflix is playing\n        if (msg.payload.app == \"Netflix\") {\n                if (msg.payload.device_state == \"playing\" && msg.payload.title != null){\n                    msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":588,\"repeat\":2,\"text\":msg.payload.title,\"color\":[51,204,51]};\n                }\n                if (msg.payload.device_state == \"playing\" && msg.payload.title == null){\n                    msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":588,\"repeat\":2,\"text\":\"Netflix\",\"color\":[51,204,51]};    \n                }\n        msg.headers = {\"content-type\": \"application/json\"};\n        return msg;\n        }\n        // if Apple TV+ is playing\n        if (msg.payload.app == \"TV\") {\n                if (msg.payload.device_state == \"playing\" && msg.payload.title != null){\n                    msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":212,\"repeat\":2,\"text\":msg.payload.title,\"color\":[51,204,51]};\n                }\n                if (msg.payload.device_state == \"playing\" && msg.payload.title == null){\n                    msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":212,\"repeat\":2,\"text\":\"Apple TV+\",\"color\":[51,204,51]};\n                }\n        msg.headers = {\"content-type\": \"application/json\"};\n        return msg;\n        }\n        // if Amazon Prime Video is playing\n        if (msg.payload.app == \"Prime Video\") {\n                if (msg.payload.device_state == \"playing\" && msg.payload.title != null){\n                    msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":327,\"repeat\":2,\"text\":msg.payload.title,\"color\":[51,204,51]};\n                }\n                if (msg.payload.device_state == \"playing\" && msg.payload.title == null){\n                    msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":327,\"repeat\":2,\"text\":\"Prime Video\",\"color\":[51,204,51]};\n                }\n        msg.headers = {\"content-type\": \"application/json\"};\n        return msg;\n        }\n        // if Disney+ is playing\n        if (msg.payload.app_id == \"com.disney.disneyplus\") {\n                if (msg.payload.device_state == \"playing\" && msg.payload.title != null){\n                    msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":1052,\"repeat\":2,\"text\":msg.payload.title,\"color\":[51,204,51]};\n                }\n                if (msg.payload.device_state == \"playing\" && msg.payload.title == null){\n                    msg.payload = {\"name\":\"test\",\"force\":true,\"icon\":1052,\"repeat\":2,\"text\":\"Disney+\",\"color\":[51,204,51]};\n                }\n        msg.headers = {\"content-type\": \"application/json\"};\n        return msg;\n        }\n        // if infuse is playing\n        if (msg.payload.app_id == \"com.firecore.infuse\") {\n                if (msg.payload.device_state == \"playing\" && msg.payload.title != null){\n                    msg.payload = {\"name\":\"test\",\"force\":true,\"repeat\":2,\"text\":msg.payload.title,\"color\":[51,204,51]};\n                }\n                if (msg.payload.device_state == \"playing\" && msg.payload.title == null){\n                    msg.payload = {\"name\":\"test\",\"force\":true,\"repeat\":2,\"text\":\"infuse\",\"color\":[51,204,51]};\n                }\n        msg.headers = {\"content-type\": \"application/json\"};\n        return msg;\n        }\n\n// Icons:\n// 422, 588: Netflix\n// 368: Music\n// 1064, 1051, 1052: TV\n// 212: Apple","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1120,"y":780,"wires":[["3aaea06e.0b75b8","2638333b.4a4224"]]},{"id":"3aaea06e.0b75b8","type":"http request","z":"8e08a0d2.af2b88","name":"Awtrix/Notify","method":"POST","ret":"obj","paytoqs":"ignore","url":"http://192.168.178.48:7000/api/v3/notify","tls":"","persist":false,"proxy":"","authType":"","x":1370,"y":780,"wires":[[]]},{"id":"1181d3d1.a6879c","type":"inject","z":"8e08a0d2.af2b88","name":"send","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":540,"wires":[["78c3aa90.c26144"]]},{"id":"2638333b.4a4224","type":"debug","z":"8e08a0d2.af2b88","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1460,"y":920,"wires":[]},{"id":"36fa2c95.b281cc","type":"ui_group","name":"Apple TV 4K","tab":"c0f2bb5f.71ee7","order":3,"disp":true,"width":"6","collapse":false},{"id":"c0f2bb5f.71ee7","type":"ui_tab","name":"Control","icon":"dashboard","order":1,"disabled":false,"hidden":false}]