Pi Zero + Rotary Encoder as Hass Volume Controller & Play-Pause Toggle (no soldering required)

Just an update for anyone using Node RED:

The below will replace the automation.yaml entry listed above, also it requires one line changed in the code to read:

  remote.set_state(api, 'input_number.rotary_encoder_value', new_state=ro_count / 100)

[{"id":"fe6f5094.196098","type":"server-state-changed","z":"bebbe41b.7676e8","name":"input_number.rotary_encoder_value","server":"5c978c05.6f28cc","entityidfilter":"input_number.rotary_encoder_value","haltifstate":"unknown","x":340,"y":200,"wires":[["60b44e4.acf68b"]]},{"id":"32721c7d.7a8f94","type":"function","z":"bebbe41b.7676e8","name":"Parse New Volume Level","func":"newmsg = Object();\n\nold_vol = parseFloat(msg.payload);\nnew_vol = old_vol;\n\nnewmsg.payload = { data: { 'entity_id': 'media_player.hifi_pi','volume_level': new_vol } }\n\nreturn newmsg;","outputs":1,"noerr":0,"x":870,"y":280,"wires":[["7bc11ecf.de3c28"]]},{"id":"7bc11ecf.de3c28","type":"api-call-service","z":"bebbe41b.7676e8","name":"Adjust Volume","server":"d644e1ec.bf7188","service_domain":"media_player","service":"volume_set","data":"{\"entity_id\":\"media_player.hifi_pi\"}","x":1100,"y":320,"wires":[]},{"id":"60b44e4.acf68b","type":"api-current-state","z":"bebbe41b.7676e8","name":"Retrieve New Value","server":"d644e1ec.bf7188","halt_if":"","entity_id":"input_number.rotary_encoder_value","x":620,"y":240,"wires":[["32721c7d.7a8f94"]]},{"id":"efa4f374.ff13b","type":"comment","z":"bebbe41b.7676e8","name":"Adjust Volume with Rotary Encoder","info":"","x":340,"y":142,"wires":[]},{"id":"5c978c05.6f28cc","type":"server","z":"","name":"Home Assistant","url":"http://192.168.178.113:8123","pass":""},{"id":"d644e1ec.bf7188","type":"server","z":"","name":"Home Assistant","url":"http://localhost:8123","pass":"YOURPASS"}]

Many thanks to @oakbrad whose guides are the absolute business for getting to know Node Red with Hass :slight_smile: