Divoom Pixoo 64


I added my Divoom Pixoo 64 as a light template. Feel free to help me optimise this.

Rest API description could be found here: http://doc.divoom-gz.com/web/#/12?page_id=196



Thanks for this, got it installed and talking to my Pixoo64 as well, will have a play and see what to suggest!

1 Like

Thank you!

Any chance you can help with being able to set the custom channel? I’m just a novice but I’ve been trying to adapt your YAML code to accomplish this. I was planning on adding the custom channels to effect_list_template but hit a roadblock at differentiating between setting the channel (Faces, Cloud, Visualizer, Custom REST: SelectIndex) and setting the custom channel (1, 2, 3 REST: CustomPageIndex) as set_effect is directly tied to the SelectIndex command.

I’m wondering if this could be handled by an if statement in the payload section of your pixoo64_set_channel REST command, but this is where my inexperience is showing because I don’t know how to properly format this even after reading through the HA documentation.

I think there is no way to get the state of the current custom channel. So I would not include this in the light template.

I would just add three buttons that fires the rest command to set the custom channel page. Would that help?

Is there any other way to use the Divoom? Maybe as a 64x64 display?

I’ve been trying to figure out if it’s worth writing a custom integration

You could display what ever you want with the api but you have to create the graphics for this on the fly. I think I have seen some libs on Github that are doing stuff like this.

Perhaps you could write to [email protected]. He is nice and helps. I’ve already suggested to him if they don’t want to write a Home Assistant extension theirself. I think they would sell a good number of displays to Home Assistant users.


Thanks, I installed your code: I can get all the data (on/off status…) but when I try to change something, there is no effect on the device. What did I miss ?
Update: It’s working when I call the service :slight_smile: (but not by modifying the state)


I added these REST commands to control the whole display:

    url: !secret pixoo_post_address
    method: POST
    payload: '{"Command":"Draw/SendHttpText", "TextId":{{ id }}, "x":0, "y":{{ y }}, "dir":0, "font":8, "TextWidth":64, "speed":50, "TextString":"{{ text }}", "color":"{{ color }}", "align":2}'
    content_type:  'application/json; charset=utf-8'  
    url: !secret pixoo_post_address
    method: POST
    payload: '{"Command":"Draw/ResetHttpGifId"}'
    content_type:  'application/json; charset=utf-8'  
    url: !secret pixoo_post_address
    method: POST
    payload: '{"Command":"Draw/SendHttpGif", "PicNum":1, "PicWidth":64, "PicOffset":0, "PicID":0, "PicSpeed":100, "PicData":"{{ gif }}"}'
    content_type:  'application/json; charset=utf-8'

First, you have to call reset_gif then send_gif and send_text.

To create a GIF data, I use these 2 converters step by step:
Convertir GIF en RGB (En ligne et Gratuit) — Convertio
Base64 Encode Online (rapidtables.com)

1 Like

@kmplng how do I use those exactly?

For example with this:

    url: !secret pixoo_post_address
    method: POST
    payload: '{"Command":"Channel/SetIndex", "SelectIndex":"{{ effect }}"}'
    content_type:  'application/json; charset=utf-8'    

in dev tools, I post following, but without any effect:

Am I doing something wrong?

Hi! Looks like that everything is fine it works for me. I can send gif, send text.
Original clock face take data from external server, gif file dynamicaly compiled according to basic data as I understood. The idea is to send data frome HA current temperature or the status of something but I need to compile data to gif and I dont know how it is possible.
For now I can send messege to DP64 according to several steps:

  1. Switch to prsonal channel
  2. Reset Gif
  3. Send Gif (important!!!)
  4. Send text

What do you mean by switch to ‘personal channel’?

I am able to reset gif, send gif (now there is a black screen), but send txt is not working?
This is what I’m sending.

service: rest_command.pixoo64_set_text
TextId: 4
x: 0
y: 0
dir: 0
font: 5
TextWidth: 50
speed: 50
TextString: “Hello World”
color: “#FFFF00
align: 2

hi all, sorry for the noob question, how do i incorporate the pixoo64.yaml into my config? Do i create a new file in my directory and name it pixoo64.yaml or does all of this get pasted directly into configuration.yaml.


@Carlyle I’m not sure if this is the best way to do it, but what I did was create the pixoo64.yaml file in the same directory as my other yaml files, then added it as a package to my configuration.yaml file. This seemed like a pretty clean way of adding it.

# configuration.yaml

    pixoo64: !include pixoo64.yaml

# etc

thanks!! ill give it a try

Well, I think as a woman developer I have different perspective and use case for this life saver Pixoo 64 :smiley:

I bought it to use as a personal assistant so I placed it on the wall where I can always see it during the day. I use home assistant also as my personal assistant so now it has a screen of it’s own with funny pixel images and gifs! For example, here are some use cases:

  1. I have an automation that send my phone notification when the washing machine or the dryer has finished working but not yet emptied. Notification is nice, but not on my face enough and forgettable. Now I have this super funny washing machine gif that starts playing right after the automation until I empty it. When its emptied it switches off.

  2. all the important birthdays that i usually forget are now being played there in the morning with rainbow cake gif and persons name until i press the ‘switch off’ helper button on my phone meaning ‘I wrote them!’.

  3. On the days that trash should go out, it shows plastic or paper etc depending on which trash. Again as funny gif so there is no way i miss it in the morning.


Hey, are you able to share your setup for the Pixoo 64? I’ve got one on order and have plans to whip up a notification system for stuff around the house (e.g. washing and trash reminders like you’re using, but also doorbell / Frigate notifications, and probably a way to write persistent notifications to the display) and I’d like to make a head start on getting things ready for when it arrives.

Also, when you empty the washing machine, does the notification get dismissed automatically, or do you need to hit the button? And if it’s automatic, is that a feature of your washing machine, or are you using something else to detect that, like a repurposed door sensor?

Sure it is worth to write a custom component. There is a nice Python library that should be already usable for this as a base. GitHub - 4ch1m/pixoo-rest: A RESTful API to easily interact with the Wi-Fi enabled Divoom Pixoo devices.

Hello David,

I indeed have aqara door sensors and smart plugs that are part of my smart meter set (homewizard). That’s how I monitor dryer and washing machine to change status between empty, running and needs to be emptied.

I will send the setup I have for Pixoo 64, I used the GitHub Jan shared as the starting point and adjusted for having it automatically turn off when I empty the wash or when I press the notification button for the trash. I am now out of the country so I can share it with you in a few days.


Did you ever figure this out?

I figured out how to send text and created a Blueprint so you don’t have to struggle with this. Also added two more REST commands, playing a buzzer and rotating the screen.