When spotted Symfonisk Sound Remote I started to have a desire to mount them next to regular light switches and use like dimmers. Most wall-switches in my house uses ABB Tango line. If you use the same this article might be for you straight line. Otherwise it may be an inspiration.
Initially I though I can use original Tango cover for their dimmer but the latter has a few mm smaller diameter. I bought Tango full cover (blindfold) in order to drill a hole for IKEA dimmer but at the end I use this as a source for modelling only.
You can find the model in onShape querying for Symfonisk (exact name is ABB Tango for IKEA Symfonisk)
I’m not providing STL right now (not decided share method).
I printed it with 0.2mm vertical precision on Prusa Mini using PETG. Both parts clicks into each other tightly still giving option to split them apart. Also bottom parts clicks to wall-switch plate without noticeable clearance. But all those things might vary depending on printer, incl its settings, filament etc.
2 things are worth to mention in order to achieve as smooth front face as possible. The first one is smooth bed plate (which is kind of harder to be used with PETG). The second is proper first layer calibration. Too high results in more visible strings of filament.
The whole consists of two 3d-printed parts and a washer (18mm) and of course Tango frame. In my case double frame to fit wall-switch and the dimmer. Note, Tango’s horizontal frames differs from vertical ones.
The washer helps the remote to stay in the socket. At the same time the remote is removable if needed.
Main use-case for me is to augment my Shelly based installation with dimmer. While Shellies offer dimming by long-pressing, it’s inconvenient for long run. Especially doesn’t provide option to turn-on the light with minimum brightness which we found crucial to have.
Here is basic NodeRed automation offering dimming, toggling and turning on the light with minimal (actually 5%) brightness. Tested with Philips HUE and Shelly RGBW2.
To make intensity change smooth, transition time sent to light must somehow correlates with brightness step and commonly used rotation speed. I set it to 0.5 sec which roughly gave me the best results. Shellies don’t support custom transition time to be set with light attributes. Instead, the transition is configurable in Shelly device configuration.
[{"id":"c9a59fb9.3e10c","type":"server-state-changed","z":"8c9c8fbf.3ab448","name":"symfonisk1","server":"6cdd0bc8.b8e434","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.ikea_simfonisk1_action","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":true,"ignorePrevStateUnknown":true,"ignorePrevStateUnavailable":true,"ignoreCurrentStateUnknown":true,"ignoreCurrentStateUnavailable":true,"x":110,"y":230,"wires":[["856843a5.088d5"]]},{"id":"7da5812e.c3825","type":"switch","z":"8c9c8fbf.3ab448","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"rotate_right","vt":"str"},{"t":"eq","v":"rotate_left","vt":"str"},{"t":"eq","v":"play_pause","vt":"str"},{"t":"eq","v":"skip_forward","vt":"str"},{"t":"eq","v":"skip_backward","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":430,"y":240,"wires":[["1f43de75.c28d0a"],["dc215e82.40a0b"],["d35f77da.2e6dd8"],["835df986.44f8c8"],[]]},{"id":"d35f77da.2e6dd8","type":"api-call-service","z":"8c9c8fbf.3ab448","name":"Toggle","server":"6cdd0bc8.b8e434","version":1,"debugenabled":false,"service_domain":"light","service":"toggle","entityId":"{{ light_entity_id }}","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":610,"y":310,"wires":[["5d6362a7.b0fe74"]]},{"id":"1f43de75.c28d0a","type":"api-call-service","z":"8c9c8fbf.3ab448","name":"Dim up","server":"6cdd0bc8.b8e434","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"{{ light_entity_id }}","data":"{\"brightness_step_pct\":5,\"transition\":0.5}","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":620,"y":190,"wires":[["5d6362a7.b0fe74"]]},{"id":"35a890f7.ba0f88","type":"api-call-service","z":"8c9c8fbf.3ab448","name":"Dim down","server":"6cdd0bc8.b8e434","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"{{ light_entity_id }}","data":"{\"brightness_step_pct\":-5,\"transition\":0.5}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1150,"y":260,"wires":[[]]},{"id":"835df986.44f8c8","type":"api-call-service","z":"8c9c8fbf.3ab448","name":"Set max","server":"6cdd0bc8.b8e434","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"{{ light_entity_id }}","data":"{\"brightness_pct\":100,\"transition\":1}","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":620,"y":360,"wires":[["5d6362a7.b0fe74"]]},{"id":"dc215e82.40a0b","type":"api-current-state","z":"8c9c8fbf.3ab448","name":"If off","server":"6cdd0bc8.b8e434","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"{{ light_entity_id }}","state_type":"str","state_location":"","override_payload":"none","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":610,"y":250,"wires":[["1768a607.5e468a","e8c67a9c.e6772"],["fa541f9e.546d3"]]},{"id":"1768a607.5e468a","type":"api-call-service","z":"8c9c8fbf.3ab448","name":"Set min","server":"6cdd0bc8.b8e434","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"{{ light_entity_id }}","data":"{\"brightness_pct\":1,\"transition\":1}","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":810,"y":190,"wires":[[]]},{"id":"fa541f9e.546d3","type":"traffic","z":"8c9c8fbf.3ab448","name":"","property_allow":"semaphore","filter_allow":"allow","ignore_case_allow":false,"negate_allow":false,"send_allow":false,"property_stop":"semaphore","filter_stop":"stop","ignore_case_stop":false,"negate_stop":false,"send_stop":false,"default_start":true,"differ":false,"x":970,"y":260,"wires":[["35a890f7.ba0f88"]]},{"id":"e8c67a9c.e6772","type":"change","z":"8c9c8fbf.3ab448","name":"stop","rules":[{"t":"set","p":"semaphore","pt":"msg","to":"stop","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":240,"wires":[["fa541f9e.546d3"]]},{"id":"5d6362a7.b0fe74","type":"change","z":"8c9c8fbf.3ab448","name":"allow","rules":[{"t":"set","p":"semaphore","pt":"msg","to":"allow","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":800,"y":280,"wires":[["fa541f9e.546d3"]]},{"id":"856843a5.088d5","type":"change","z":"8c9c8fbf.3ab448","name":"Set light","rules":[{"t":"set","p":"light_entity_id","pt":"msg","to":"light.childroom","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":270,"y":230,"wires":[["7da5812e.c3825"]]},{"id":"6cdd0bc8.b8e434","type":"server","name":"Home Assistant"}]