How to connect Flic Twist to Home Assistant on a Synology NAS

That’s great news! I had almost given up hope and was preparing to sell my 4 flic twists and hub on Facebook just to get rid!
I’ll hold on for a little while longer. Thanks

Any updates on this? I see there haven’t been changes in the software recently, and no instructions for use, so I presume it is still incomplete?

Really excited to use this and start using the two Twists that I have gathering dust on my desk!

The Flic hardware is a bit tricky to get it to work as the rotary encoder output is not TTL level and cannot be implemented as a standard encoder and must be analog sampled :frowning: .

It took me many nights and attempts to conclude that the the encoder cannot be processed digitally.

I do have limited time for this and I prioritized another integration however I do plan on releasing an initial version in the coming months (no promises).

Thanks, appreciate the update. Looking forward to a release - even just the ability to link the button without the twist function would be better than nothing!

Hello,
I can confirm that it’s now finally OK to use the Flic Twist thanks to the Matterbridge project and its HA addon (GitHub - t0bst4r/matterbridge-home-assistant).

I managed to use On/Off, Dimming with Twisting, but also “Advanced Dimming” and “Selector” with “Push Twist”.

Install the Matterbridge and just pair it with the Flic app as a Matter device by scanning the QR code or entering the PIN code on the left. In my case, I’ve restricted the domain to “light” in the addon configuration. It’s a bit messy in the Flic app because the devices are not ordered alphabetically.

I also have a trick to control anything in HA such as volume of device players, blind / cover position… I created a dummy MQTT light, and when this one is “on”, you can control its brightness and convert the brightness from 0-255 to 0-100 or 0-1.

mqtt:
  light:
      name: "Flic Twist 1 MQTT"
      state_topic: "office/rgb1/light/status"
      command_topic: "office/rgb1/light/switch"
      brightness_state_topic: "office/rgb1/brightness/status"
      brightness_command_topic: "office/rgb1/brightness/set"
      qos: 0
      payload_on: "ON"
      payload_off: "OFF"
      optimistic: true

I also tried with a light template, but it does not work. I don’t know if this could work with updates.

light:
  - platform: template
    lights:
      flic_twist_1:
        friendly_name: "Flic Twist 1"
        turn_on:
        turn_off:
        set_level:
        set_temperature:
        set_color:
        supports_transition_template: "{{ true }}"

Example of automation to control volume of a media player:

alias: Flic Twist 1 to Volume control
description: ""
trigger:
  - platform: state
    entity_id:
      - light.flic_twist_1_mqtt
condition: []
action:
  - action: media_player.volume_set
    metadata: {}
    data:
      volume_level: |
        {{state_attr('light.flic_twist_1_mqtt','brightness')/255}}
    target:
      entity_id: media_player.mini_salle_de_bain
mode: single

Alternative template to go from 0 to 100:
{{(state_attr('light.flic_twist_1_mqtt','brightness')|int(0)/255*100)|int(0)}}
The first int(0) is to avoid errors if brightness is null.

Thanks for this, was able to use this to build a standard light template, and control the volume of a media_player device using the Flic Twist.
My resulting template:

light:
  - platform: template
    lights:
      volume_control_light:
        friendly_name: "Volume Control Light"
        level_template: "{{ state_attr('media_player.lsx_ii', 'volume_level') | float * 255 }}"
        value_template: "{{ state_attr('media_player.lsx_ii, 'volume_level') | float > 0 }}"
        turn_on:
          service: media_player.volume_set
          target:
            entity_id: media_player.lsx_ii
          data:
            volume_level: "{{ brightness / 255 }}"
        turn_off:
          service: media_player.media_stop
          target:
            entity_id: media_player.lsx_ii
        set_level:
          service: media_player.volume_set
          target:
            entity_id: media_player.lsx_ii
          data:
            volume_level: "{{ brightness / 255 }}"
        supports_transition_template: "{{ false }}"
1 Like