Divoom Pixoo 64

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.

6 Likes

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.

2 Likes

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.

2 Likes

I created a version 0.0.1 :smile: of Pixxo Rest as an Home Assistant Add-on. Here is the link to the HA Add On Repo: GitHub - kmplngj/ha-addons: Addons for Home Assistant.

I will add some more readme and documentation in the next days. Perhaps someone wants to test it.

Add the repo url in the HA Add-On Store, install Pixoo Rest. Set the IP address and Screen Size of your Pixoo64 in the configuration, save this and then start the Add-On.

2 Likes

the data you have to use with this command is custompageindex (value 0, 1 or 2). But before doing this you have also set the channel to 3 (custom channel) to this the changes on the Pixoo. I created three input button helpers and a small automation to use them.

alias: Pixoo64 Button Set Custom Channel Pressed
description: ""
trigger:
  - platform: state
    entity_id:
      - input_button.pixoo64_set_custom_channel_1
    id: channel_1
  - platform: state
    entity_id:
      - input_button.pixoo64_set_custom_channel_2
    id: channel_2
  - platform: state
    entity_id:
      - input_button.pixoo64_set_custom_channel_3
    id: channel_3
condition: []
action:
  - service: rest_command.pixoo64_set_channel
    data:
      effect: 3
  - choose:
      - conditions:
          - condition: trigger
            id: channel_1
        sequence:
          - service: rest_command.pixoo64_set_custom_channel
            data:
              custompageindex: 0
      - conditions:
          - condition: trigger
            id: channel_2
        sequence:
          - service: rest_command.pixoo64_set_custom_channel
            data:
              custompageindex: 1
      - conditions:
          - condition: trigger
            id: channel_3
        sequence:
          - service: rest_command.pixoo64_set_custom_channel
            data:
              custompageindex: 2
    default: []
mode: single

Hey. Can I ask what exactly you selected in these tools to convert the gif? I am not able to get it running. The Pixoo always restarts when I send the data.

Nevermind, I figured it out.
For anyone stumbling upon this, here is the current documentation ShowDoc

You have to pay attention to all the parameters and the image has to have the same width and height.

For converting, you can use the tools listed above (select binary as input on the base64 encoding), or use imagemagick and openssl base64 encode.

1 Like

I there a way to set a specific clock face? I can set channel, but can’t figure out a specific face.

I updated my Pixoo-Rest HA Addon. I now use my fork of Pixoo-Rest while my pull request is open at the original source. I added a rest api call to sent an image to the display via an url.

I use this in an automation to display the cover art of the current playing song on my HomePod, Amp or Apple TV.

1 Like

I also updated the original gist from my first post to include more functions and also a rest command for pixxo-rest image url.

Here are also two scripts use the rest commands more easily.

alias: Pixoo - Display line of text
fields:
  id:
    description: the text id is unique and new text with the same ID will replace the old
    required: true
    default: 1
    example: 1
    selector:
      number:
        min: 1
        max: 20
        step: 1
  Text:
    description: the text string is utf8 string and lenght is smaller than 512
    required: true
    selector:
      text: null
  Color:
    description: Color of the message
    required: true
    selector:
      color_rgb: null
    default:
      - 255
      - 255
      - 255
  Speed:
    description: Scrolling Speed in ms
    required: true
    default: 50
    example: 50
    selector:
      number:
        min: 10
        max: 500
        step: 5
  x:
    description: the start x postion
    required: true
    default: 0
    example: 0
    selector:
      number:
        min: 0
        max: 64
        step: 1
  "y":
    description: the start y postion
    required: true
    default: 0
    example: 0
    selector:
      number:
        min: 0
        max: 64
        step: 1
  Direction:
    description: 0:scroll left, 1:scroll right
    required: true
    default: 0
    example: 0
    selector:
      number:
        min: 0
        max: 1
        step: 1
  Font:
    description: 0~7, app animation’s font
    required: true
    default: 2
    example: 2
    selector:
      number:
        min: 0
        max: 7
        step: 1
  TextWidth:
    description: the text width is based point and bigger than 16, smaller than 64
    required: true
    default: 64
    example: 64
    selector:
      number:
        min: 16
        max: 64
        step: 1
  Align:
    description: >-
      horizontal text alignment, 1=left; 2=middle; 3=right, it will support at
      90102 version
    required: true
    default: 2
    example: 2
    selector:
      number:
        min: 1
        max: 3
        step: 1
sequence:
  - service: rest_command.pixoo64_set_text
    data:
      id: "{{ id }}"
      x: "{{ x }}"
      "y": "{{ y }}"
      Direction: "{{ Direction }}"
      TextWidth: "{{ TextWidth }}"
      Text: "{{ Text }}"
      Speed: "{{ Speed }}"
      Font: "{{ Font }}"
      Align: "{{ Align }}"
      Color: "{{ \"#%02x%02x%02x\" | format(Color[0], Color[1], Color[2]) }}"
mode: queued
max: 3
alias: Pixoo - Sent Image via URL
fields:
  Imageurl:
    description: the complete URL to the Image with protocol
    required: true
    selector:
      text: null
  x:
    description: the x postion
    required: true
    default: 0
    example: 0
    selector:
      number:
        min: 0
        max: 64
        step: 1
  "y":
    description: the y postion
    required: true
    default: 0
    example: 0
    selector:
      number:
        min: 0
        max: 64
        step: 1
sequence:
  - service: rest_command.pixoo_rest_imageurl
    data:
      Imageurl: "{{ Imageurl }}"
      x: "{{ x }}"
      "y": "{{ y }}"
mode: queued
max: 3
1 Like

Do you have any code for this?

I installed add-on v0.0.2 but it’s not completely starting. The log appears to show it started successfully but the add-on info page shows the status as red and the “Start” button looping.

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[10:13:49] INFO: Reading Config from Home Asssitant Addon...
[10:13:50] INFO: Starting Pixoo-Rest server...
[2023-09-04 10:13:50 +0900] [109] [INFO] Starting gunicorn 20.1.0
[2023-09-04 10:13:50 +0900] [109] [INFO] Listening at: http://0.0.0.0:5000 (109)
[2023-09-04 10:13:50 +0900] [109] [INFO] Using worker: sync
[2023-09-04 10:13:50 +0900] [110] [INFO] Booting worker with pid: 110

Which OS and which hardware do you use to run Home Assistant?

I’m running Home Assistant Supervised on an x86. Somehow, after some time it just started, so it’s working fine now. Thank you for the response.

Howdy, new to HA so wondering if you can help me.

Got the addon working great and I can test things in Swagger and update the Pixoo, how do I now create scripts to automate things. I’m guessing I need to somehow add the swagger endpoints somewhere into HA to access them but I’m not sure the best way. Hoping there is something to quickly translate them all over. Thank you

I am using your addon, and love it!

Would you make your addon so that we can have multiple instances of it?
I have many 64’s in my house, and would love to control them all this way.

Thanks for your time!