Rotary dimmer as volume control SOLVED

Hi, does anybody using a rotary dimmer as volume control? Which one please and how to set it up? :slight_smile: It would quite a help me.

Yes, I use the Ikea Symfonisk controller together with deconz. It works great

Is it available to buy alone without a speaker in your country? In CZE i do not see it on stock. I need to control the media players volume in home assistant by this.

Yup

Do you really need the gateway or the zigbee usb dongle is enough. What is the code? :slight_smile:

The symfonisk works with zigbee2mqtt.

This is how i use symfonisk controller as a volume controller for my chromecast audio.
If you like to try it, just save this as a file, like symfonisk.yaml and put in your package-folder.
The feel of the controller is great. Maybe a little to sensitive when you want to make small adjustments.


input_boolean:
  symfonisk_volume:
    name: Symfonisk Volume
    initial: off
  symfonisk_dummy_delay:

############ Rotate to adjust volume ###########
script:
  symfonisk_lower_volume:
    sequence:

      - condition: state
        entity_id: input_boolean.symfonisk_volume
        state: 'on'
    
      - service: input_boolean.turn_on
        entity_id: input_boolean.symfonisk_dummy_delay
      - service: input_boolean.turn_off
        entity_id: input_boolean.symfonisk_dummy_delay
      - service: input_boolean.turn_on
        entity_id: input_boolean.symfonisk_dummy_delay
      - service: input_boolean.turn_off
        entity_id: input_boolean.symfonisk_dummy_delay

      - service: media_player.volume_set
        entity_id: media_player.NAME_OF_MEDIAPLAYER
        data_template:
          volume_level: '{{ states.media_player.NAME_OF_MEDIAPLAYER.attributes.volume_level - 0.01 }}'

      - service: script.turn_off
        entity_id: script.symfonisk_lower_volume

      - service: script.turn_on
        entity_id: script.symfonisk_lower_volume

  symfonisk_raise_volume:
    sequence:

      - condition: state
        entity_id: input_boolean.symfonisk_volume
        state: 'off'

      - service: input_boolean.turn_on
        entity_id: input_boolean.symfonisk_dummy_delay
      - service: input_boolean.turn_off
        entity_id: input_boolean.symfonisk_dummy_delay
      - service: input_boolean.turn_on
        entity_id: input_boolean.symfonisk_dummy_delay
      - service: input_boolean.turn_off
        entity_id: input_boolean.symfonisk_dummy_delay

      - service: media_player.volume_set
        entity_id: media_player.NAME_OF_MEDIAPLAYER
        data_template:
          volume_level: '{{ states.media_player.NAME_OF_MEDIAPLAYER.attributes.volume_level + 0.01 }}'
  
      - service: script.turn_off
        entity_id: script.symfonisk_raise_volume

      - service: script.turn_on
        entity_id: script.symfonisk_raise_volume

automation:     
  - alias: symfonisk raise volume on
    initial_state: 'on'
    trigger:
      - platform: event
        event_type: deconz_event
        event_data:
          id: symfonisk_sound_controller
          event: 3001

    action:
      - service: input_boolean.turn_off
        entity_id: input_boolean.symfonisk_volume
      - service: script.turn_on
        entity_id: script.symfonisk_raise_volume
          
  - alias: symfonisk raise volume off
    initial_state: 'on'
    trigger:
      - platform: event
        event_type: deconz_event
        event_data:
          id: symfonisk_sound_controller
          event: 3003

    action:
      - service: input_boolean.turn_on
        entity_id: input_boolean.symfonisk_volume
          
  - alias: symfonisk lower volume on
    initial_state: 'on'
    trigger:
      - platform: event
        event_type: deconz_event
        event_data:
          id: symfonisk_sound_controller
          event: 2001

    action:
      - service: input_boolean.turn_on
        entity_id: input_boolean.symfonisk_volume
      - service: script.turn_on
        entity_id: script.symfonisk_lower_volume

  - alias: symfonisk lower volume off
    initial_state: 'on'
    trigger:
      - platform: event
        event_type: deconz_event
        event_data:
          id: symfonisk_sound_controller
          event: 2003

    action:
      - service: input_boolean.turn_off
        entity_id: input_boolean.symfonisk_volume

################# Push ############
##This switch an input boolean that start my music in an other automation. This is not included in the package, just an example.

  - alias: symfonisk one click
    initial_state: 'on'
    trigger:
      - platform: event
        event_type: deconz_event
        event_data:
          id: symfonisk_sound_controller
          event: 1002


    action:
      service: input_boolean.toggle
      entity_id: input_boolean.play_pause_wall
      
 

Just change the name to match your media player and your symfonisk controller.
Maybe you, @Robban make this happend in an easier way?

1 Like

Which integration are you using?

I use deconz.

1 Like

I plan on creating a new type of automations that can have a scenario e.g. control media player with symfonisk controller.

In the mean time it is much easier to use Appdaemon to create an application like this

2 Likes

Guys I so much happy for your responses. Going to try all that when Ikea controller is in the Czech market. I am little bit worried to make it work through zigbee aliexpres USB dongle.

aliexpress is not a brand, it is a marketplace. Start a thread, point to the exact device on aliexpress and people may be able to advise if it will work.

Sorry, do not have access while in work. It’s CC2531 dongle.

OK so you will be using zigbee2mqtt. See Rotary dimmer as volume control SOLVED and https://www.zigbee2mqtt.io/devices/E1744.html

I am completely lost. I brought a Symfonisk. Whenever I rotate the knob the Raspbery just freezes for a couple of seconds. Seems I receive one command four times. Signal is good.

The automation for the test works, but it is damn slow. Copied one from:
https://github.com/Koenkk/zigbee2mqtt/issues/653 and made few changes. Anybody has ideas why it is so damn slow and frezees the PI?

- alias: 'Test'
  trigger:
  - platform: mqtt
    topic: 'zigbee2mqtt/symfonisk'
  condition:
  - condition: template
    value_template: "{{ 'action' in trigger.payload }}"
  action:
  - service: input_number.set_value
    data_template:
      entity_id: input_number.test
      value: '{{ trigger.payload_json.brightness }}'

Just few rows of my output:

zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":177,"linkquality":84,"rate":195,"battery":100,"action":""}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":178,"linkquality":84,"rate":195,"battery":100,"action":"rotate_right"}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":178,"linkquality":84,"rate":195,"battery":100,"action":""}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":179,"linkquality":84,"rate":195,"battery":100,"action":"rotate_right"}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":179,"linkquality":84,"rate":195,"battery":100,"action":""}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":180,"linkquality":84,"rate":195,"battery":100,"action":"rotate_right"}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":180,"linkquality":84,"rate":195,"battery":100,"action":""}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":181,"linkquality":84,"rate":195,"battery":100,"action":"rotate_right"}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":181,"linkquality":84,"rate":195,"battery":100,"action":""}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":182,"linkquality":84,"rate":195,"battery":100,"action":"rotate_right"}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":182,"linkquality":84,"rate":195,"battery":100,"action":""}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":183,"linkquality":84,"rate":195,"battery":100,"action":"rotate_right"}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":183,"linkquality":84,"rate":195,"battery":100,"action":""}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":184,"linkquality":84,"rate":195,"battery":100,"action":"rotate_right"}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":184,"linkquality":84,"rate":195,"battery":100,"action":""}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":185,"linkquality":84,"rate":195,"battery":100,"action":"rotate_stop"}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":185,"linkquality":84,"rate":195,"battery":100,"action":""}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":185,"linkquality":60,"rate":195,"battery":100,"action":"rotate_stop"}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":185,"linkquality":60,"rate":195,"battery":100,"action":""}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":187,"linkquality":84,"rate":195,"battery":100,"action":"rotate_stop"}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":187,"linkquality":84,"rate":195,"battery":100,"action":""}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":187,"linkquality":63,"rate":195,"battery":100,"action":"rotate_stop"}'
zigbee2mqtt:info  2019-11-28T21:24:48: MQTT publish: topic 'zigbee2mqtt/symfonisk', payload '{"brightness":187,"linkquality":63,"rate":195,"battery":100,"action":""}'

I use rotary encoder up to an Arduino which is similar, I can set it so it adjusts volume.

What I did was that I shut off the the grafana and unfluxDB plugin. Also in config.yaml instead of exluding entities (this one was not exluded yesterdas) a used only include for some (so this Symofonisk one is excluded. Now it is not so freezing. Still it creates lag. The input number change on the slider is like 5 sec lag.

Anybody with a solution? Running hassio on Raspberry 4.

Consider it solved. Added debounce: 0.01 to devices.yaml of zigbee2mqtt. Lag as **** but works without aby freezes.

Interresting! But I can’t even make my symfonisk controller connect with deconz! How do you do it?

I can’t connect my symfonisk sound controller to my deCONZ. How’s it done?