d03n3rfr1tz3 / hass-divoom

Divoom Integration for Home Assistant
MIT License
98 stars 10 forks source link

Add support for Pixoo Max #10

Closed ryoku-cha closed 6 months ago

ryoku-cha commented 1 year ago

The Pixoo has a resolution of 16x16 pixels while the Pixoo Max has 32x32. Not sure if anything else has changed (Protocol).

As far as i understand, this would be implemented with a new file for this device. Something link this: hass-divoom/tree/main/devices/pixoo-max.py

    def __init__(self, host=None, port=1, logger=None):
        self.type = "Pixoo-Max"
        self.size = 32

There might be more changed required further down the code, compared to pixoo.py.

ryoku-cha commented 1 year ago

I have only very basic coding know how, not sure if I can implement this on my own.

I plan to try the currently available code with my Divoom Max. Hoping that a least changing Channels is possible or turing on and off. I expect that sending pictures will need code adjustment (especially if 32x32 images will be used, but maybe 16x16 work ...)

d03n3rfr1tz3 commented 1 year ago

You could try it by changing that one line you already found to

self.size = 32

In the end it all comes down to the concrete protocol/structure that needs to be sent. If its enough to just send a 32x32 pixel image to the Pixoo Max, it already might work. But if they changed the underlying protocol (which is closed source and reverse engineered by other people) than it might get complicated, especially for someone who does not own the device.

For example I used a lot of code from people, who did a pretty good job with the Divoom Timebox. Channels and some other functions were different, but the image functionality luckily was the same. Most of it could be determined just by trial-and-error.

Just gimme a short notice, if increasing the size already worked. If yes, I can add some options or parameters so that it can be configured in yaml without changing the code.