Ulanzi Stream Deck D200 with Home Assistant

I bought this device just to mess around with it as a learning opportunity, and have been slowly figuring out how it talks to the app by decompiling a firmware update + decompiling the windows app + sniffing USB traffic. The only thing I haven’t done is take it apart yet.

Did you end up doing something similar and re-implement the USB protocol, or are you talking to the device in some other way? I am still figuring out stuff and haven’t started working on any real code, but am interested in seeing how your project works.

Very excited to see the code when it’s released!

1 Like

Yes I used Wireshark to sniff the USB traffic and then use Python to communicate with the deck. Luckily the communication is not encrypted and it’s really easy to understand.

I’ll release the project’s source code when it’s ready (2 more weeks?)

1 Like

Really appreciate the work you’re doing and very excited to see the first release of this.

This is why I love the HA community

2 Likes

Update: still working on the editor addon. Sorry for the slow progress because I’m busy with other things.

3 Likes

Update: successfully integrated the editor into Home Assistant UI. Next step: write document and prepare for the initial release.

2 Likes

The libary’s initial source code to communicate with the Ulanzi D200 has been released: GitHub - redphx/strmdck

Code for Home Assistant related projects will be released in the following days.

2 Likes

Writing documents. I hate doing this so much :expressionless:

2 Likes

Selfless work for the greater good. Appreciate your efforts and look forward to seeing the final docs.

1 Like

Source code are available (documents are not ready yet):

But I’m running into problem with the addon not being able to find the HomeDeck devices when the Home Assistant instance is connecting to multiple network interfaces.

3 Likes

The project isn’t dead. I was busy with my job and personal life. Still preparing for the document. All the code are available and you can actually use it right now.

I managed to add support for Material You color. You’ll only have to provide the base color with material_you_color, and then select which color role you want in icon_color, icon_background_color, icon_border_color or text_color.

presets:
  room:
    icon_size: 80
    icon_padding: 40
    icon_offset: 0 -100
    icon_border_radius: 20
    icon_border_width: 5
    icon_color: primary
    icon_background_color: primary-container

pages:
  $root:
    buttons:
      - name: ''
        presets: room
        tap_action:
          action: $page.go_to
          data: living-room
        icon: mdi:sofa-outline
        material_you_color: b9003e
        additional_icons:
          - text: "{{ states('sensor.ikea_vindstyrka_temperature', with_unit=True) }}"
            text_size: 20
            text_offset: 0 5
            material_you_color: b9003e
          - icon: "{{ binary_text('group.living_room_lights_nightlight', 'mdi:lightbulb', None) }}"
            material_you_color: FFEC27
            icon_color: primary
            icon_size: 30
            icon_offset: -100 120
          - icon: "{{ binary_text('fan.smartmi_fan', 'mdi:fan', None) }}"
            material_you_color: 29ADFF
            icon_color: primary
            icon_size: 30
            icon_offset: 0 120
4 Likes

Any updates regarding the docs? :sweat_smile:

Sorry, I’m away from home and don’t have access to the dock at the moment.
The document is mostly complete and I believe you can still use it. Check the example page for more info.

Which PCB are you using? OrangePi or RPi?

I’ve installed your Homedeck app onto a Pi, and the add-on onto HA - which can see the Pi homedeck server (can see & edit the configuration file). But I only get the default buttons on the D200 (i.e. the ones displayed when you power it up without connecting it to anything) rather than anything server up via Homedeck. What am I missing/doing wrong?

Is that the last status? Not working on a Pi? I thought, it should work on any linux device, but if it is just working on that orangepizero2w, then this should be clearly stated. Kernel Version 5 is not an option for me.

I gave it a try, but it’s imho not mature enough to play around with it.
Installng the add-on just raise an unknown error:

Logger: homeassistant.components.hassio
Quelle: components/hassio/websocket_api.py:145
Integration: Home Assistant Supervisor (Dokumentation, Probleme)
Erstmals aufgetreten: 11:39:28 (2 Vorkommnisse)
Zuletzt protokolliert: 11:44:27

Failed to to call /addons/9c87100e_homedeck_manager_ingress/start - Unknown error, see supervisor

As this whole project is more or less undocumented and full of bugs, it isn’t worth my time anymore, which is a pitty, as the idea was good.
But since nearly half a year, I see no progress anymore, so I think, the author has given up!

The project is not dead, it’s just on hold. I’ll come back to it in a 2-3 months. Sorry about that.

3 Likes

Had some trouble, but it’s working now. Lets playThanks!

1 Like

Thank you for keeping this project alive. Having waited for it for so long time. Please keep up the good work.

I am loving play with it.

1 Like

Do you find it easy to use/customize? Is it stable?