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

Heyo! Was wondering if you’ve made any progress on this. I’ve been playing with my Twists and if you need someone to test stuff for you I’m down.

GraceGRD, how do you feel about setting up GitHub support for the repo (or whichever other way you prefer) so people can pitch in to incentivize you to complete your project? Flic Twist is a fantastic hardware (from consumer perspective like myself) with terrible software lock-in. I’d gladly spend money supporting OSS firmware for it rather that crappy locked-in hub that then requires tinkering to get any integrations with HA.

From the the Flic twist is a nice product however the hardware design… (I’m not a fan :frowning: )

I reverse-engineered the schematic to get the rotation sensor to work. I expected it to be a simple rotary encoder however the output of the two hall effect sensors are not even at TTL level (cannot be read simply as 1/0, high/low). Meaning these sensors should be sampled using an ADC and I made a couple of attempts (not so familiar with silicon labs, their peripherals and SDK) without success.

Eventually I do believe I can make it work however for now I shifted my focus to other fun HA related projects.

If there is somebody that actually wants to develop software for this sensor I can make a readme page on how to connect a debugger etc.

TLDR: Project takes too much time and I lost my interest in this project.

@GraceGRD would appreciate if you could share instructions!

Thanks for this! Just a note that you’re missing a closing quote mark in your value_template line. In my version I’m controlling a spotify account so I’ve replaced the media_stop with media_pause, otherwise it’s working great!