ADB -suspend Android TV

Wake or Suspend Android TV. (Tested with nVidia Shield) Requires ADB. (apt install android-tools-adb)

Option to shut down ADB-Server after last node, when used to chain nodes/events.

Remember to enable ADB Debugging via network (developer options).

Since this flow uses ADB and stops/starts the server, two flows cannot run at once. Chain them together instead like so: [android ADB] -> [android ADB] -> [android ADB + Kill ADB-Server]

[{"id":"57756168302a4ffd","type":"subflow","name":"Adb-Suspend","info":"","category":"Android","in":[{"x":100,"y":160,"wires":[{"id":"e575647c4b80dedc"}]}],"out":[{"x":1880,"y":120,"wires":[{"id":"7eff82b657d84189","port":0},{"id":"a05bdc7780c526c7","port":0}]}],"env":[{"name":"IP","type":"str","value":"127.0.0.1:5555","ui":{"label":{"en-US":"IP:Port"},"type":"input","opts":{"types":["str"]}}},{"name":"WantedState","type":"str","value":"Off","ui":{"label":{"en-US":"Turn tv?"},"type":"select","opts":{"opts":[{"l":{"en-US":"On"},"v":"On"},{"l":{"en-US":"Off"},"v":"Off"}]}}},{"name":"killadb","type":"bool","value":"true","ui":{"label":{"en-US":"Kill ADB-Server?"},"type":"input","opts":{"types":["bool"]}}},{"name":"","type":"str","value":"","ui":{"label":{"en-US":"Set 'Kill ADB' to TRUE on last node in chain"},"type":"none"}}],"meta":{},"color":"#FFCC66","inputLabels":["Anything"],"outputLabels":["Next TV"],"icon":"font-awesome/fa-tv","status":{"x":1240,"y":60,"wires":[{"id":"541587e443640cd3","port":0},{"id":"82a15c683aaf1324","port":0},{"id":"a099cf09852a253a","port":0},{"id":"a791dc3d9442c4d4","port":0},{"id":"95f2f52ab3264448","port":0},{"id":"89c48b5f18710d92","port":0}]}},{"id":"fd010189ab490152","type":"exec","z":"57756168302a4ffd","command":"adb connect","addpay":"payload","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"Connect","x":240,"y":240,"wires":[["ea2e3e9255e1dd26"],[],[]]},{"id":"da4c936a0c9ac393","type":"exec","z":"57756168302a4ffd","command":"adb shell input keyevent 26","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"SwitchPowerState","x":970,"y":520,"wires":[["03e28553c40a42ba"],[],[]]},{"id":"541587e443640cd3","type":"template","z":"57756168302a4ffd","name":"Already Off","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Already Off","output":"str","x":1030,"y":240,"wires":[[]]},{"id":"e575647c4b80dedc","type":"change","z":"57756168302a4ffd","name":"ADB Params","rules":[{"t":"set","p":"payload","pt":"msg","to":"IP","tot":"env"}],"action":"","property":"","from":"","to":"","reg":false,"x":250,"y":160,"wires":[["fd010189ab490152","89c48b5f18710d92"]]},{"id":"8efdb98edd641741","type":"exec","z":"57756168302a4ffd","command":"adb shell dumpsys activity | grep -c \"mWakefulness=Asleep\"","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"TVState","x":240,"y":320,"wires":[["d96616ade840b77c"],[],[]]},{"id":"d96616ade840b77c","type":"switch","z":"57756168302a4ffd","name":"TV On/Off?","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"0","vt":"str"},{"t":"cont","v":"1","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":430,"y":440,"wires":[["ea07b138ba400331"],["c5a3996e90e0e02a"]],"outputLabels":["On","Off"]},{"id":"82a15c683aaf1324","type":"template","z":"57756168302a4ffd","name":"Switched Off","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Switched to Off","output":"str","x":1030,"y":200,"wires":[[]]},{"id":"a099cf09852a253a","type":"template","z":"57756168302a4ffd","name":"Failed","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Connection failed","output":"str","x":1010,"y":120,"wires":[[]]},{"id":"ea2e3e9255e1dd26","type":"switch","z":"57756168302a4ffd","name":"Succes?","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"fail","vt":"str"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":460,"y":240,"wires":[["a099cf09852a253a","fad40632b0db0b40"],["8efdb98edd641741"]],"outputLabels":["Fail","Succes"]},{"id":"7eff82b657d84189","type":"template","z":"57756168302a4ffd","name":"Output","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Done\nRemember to kill ADB-server","output":"str","x":1570,"y":240,"wires":[[]]},{"id":"ea07b138ba400331","type":"switch","z":"57756168302a4ffd","name":"WantedState","property":"WantedState","propertyType":"env","rules":[{"t":"eq","v":"On","vt":"str"},{"t":"eq","v":"Off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":650,"y":480,"wires":[["a791dc3d9442c4d4","03e28553c40a42ba"],["da4c936a0c9ac393","82a15c683aaf1324"]],"outputLabels":["On","Off"]},{"id":"a791dc3d9442c4d4","type":"template","z":"57756168302a4ffd","name":"Already On","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Already On","output":"str","x":1030,"y":160,"wires":[[]]},{"id":"95f2f52ab3264448","type":"template","z":"57756168302a4ffd","name":"Switched On","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Switched to On","output":"str","x":1030,"y":280,"wires":[[]]},{"id":"c5a3996e90e0e02a","type":"switch","z":"57756168302a4ffd","name":"WantedState","property":"WantedState","propertyType":"env","rules":[{"t":"eq","v":"On","vt":"str"},{"t":"eq","v":"Off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":650,"y":520,"wires":[["da4c936a0c9ac393","95f2f52ab3264448"],["541587e443640cd3","03e28553c40a42ba"]],"outputLabels":["On","Off"]},{"id":"03e28553c40a42ba","type":"change","z":"57756168302a4ffd","name":"ADB Params","rules":[{"t":"set","p":"payload","pt":"msg","to":"IP","tot":"env"}],"action":"","property":"","from":"","to":"","reg":false,"x":950,"y":460,"wires":[["600527b5162d84e9"]]},{"id":"600527b5162d84e9","type":"exec","z":"57756168302a4ffd","command":"adb disconnect","addpay":"payload","append":"","useSpawn":"true","timer":"","winHide":false,"oldrc":false,"name":"Disconnect","x":1230,"y":460,"wires":[["fad40632b0db0b40"],[],[]]},{"id":"29c1b4bfded58617","type":"exec","z":"57756168302a4ffd","command":"adb kill-server","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"kill ADB","x":1540,"y":380,"wires":[["a05bdc7780c526c7"],[],[]]},{"id":"fad40632b0db0b40","type":"switch","z":"57756168302a4ffd","name":"KillAdb?","property":"killadb","propertyType":"env","rules":[{"t":"true"},{"t":"false"}],"checkall":"false","repair":false,"outputs":2,"x":1220,"y":380,"wires":[["29c1b4bfded58617"],["7eff82b657d84189"]],"outputLabels":["True","False"]},{"id":"a05bdc7780c526c7","type":"template","z":"57756168302a4ffd","name":"Output","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Done\nADB Killed","output":"str","x":1770,"y":280,"wires":[[]]},{"id":"89c48b5f18710d92","type":"template","z":"57756168302a4ffd","name":"Output","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Connecting...","output":"str","x":510,"y":140,"wires":[[]]}]

Flow Info

Created 3 years, 9 months ago
Rating: not yet rated

Owner

Actions

Rate:

Node Types

Core
  • change (x2)
  • exec (x5)
  • switch (x5)
  • template (x8)
Other
  • subflow (x1)

Tags

  • Android
  • TV
  • nVidia
  • ADB
Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option