{"id":46573846,"url":"https://github.com/gickowtf/pixoo-homeassistant","last_synced_at":"2026-03-07T09:20:13.999Z","repository":{"id":205660372,"uuid":"714757792","full_name":"gickowtf/pixoo-homeassistant","owner":"gickowtf","description":"Home Assistant Integration for Divoom Pixoo 64","archived":false,"fork":false,"pushed_at":"2025-09-01T20:48:33.000Z","size":21492,"stargazers_count":201,"open_issues_count":4,"forks_count":16,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-10-24T10:47:53.138Z","etag":null,"topics":["divoom","hacs-integration","home-assistant","pixoo64"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gickowtf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"buy_me_a_coffee":"gickowtf","custom":["https://paypal.me/gicko"]}},"created_at":"2023-11-05T19:16:34.000Z","updated_at":"2025-10-23T19:18:40.000Z","dependencies_parsed_at":"2024-02-07T20:30:32.816Z","dependency_job_id":"3c89e09f-41c7-403b-9eb1-ddc9a4109ba3","html_url":"https://github.com/gickowtf/pixoo-homeassistant","commit_stats":null,"previous_names":["gickowtf/pixoo-homeassistant"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/gickowtf/pixoo-homeassistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gickowtf%2Fpixoo-homeassistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gickowtf%2Fpixoo-homeassistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gickowtf%2Fpixoo-homeassistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gickowtf%2Fpixoo-homeassistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gickowtf","download_url":"https://codeload.github.com/gickowtf/pixoo-homeassistant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gickowtf%2Fpixoo-homeassistant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30210712,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T09:02:10.694Z","status":"ssl_error","status_checked_at":"2026-03-07T09:02:08.429Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["divoom","hacs-integration","home-assistant","pixoo64"],"created_at":"2026-03-07T09:20:12.682Z","updated_at":"2026-03-07T09:20:13.967Z","avatar_url":"https://github.com/gickowtf.png","language":"Python","funding_links":["https://buymeacoffee.com/gickowtf","https://paypal.me/gicko","https://www.buymeacoffee.com/gickowtf"],"categories":[],"sub_categories":[],"readme":"\u003cimg  src=\"https://github.com/gickowtf/pixoo-homeassistant/blob/main/images/logo.png?raw=true\"  title=\"Example of configuration.yaml\"  align=\"right\"  height=\"90\"  /\u003e\n\n  \n\n# Divoom Pixoo 64 Home Assistant Integration\n\n  \n\n[![hacs_badge](https://img.shields.io/badge/HACS-Default-orange.svg)](https://github.com/custom-components/hacs)\n[![Donate](https://img.shields.io/badge/donate-Coffee-yellow.svg)](https://www.buymeacoffee.com/gickowtf)\n![python badge](https://img.shields.io/badge/Made%20with-Python-orange)\n![last commit](https://img.shields.io/github/last-commit/gickowtf/pixoo-homeassistant?color=red)\n\n  \n  \n\nCustom component for easy use of a Pixoo64 within Home Assistant. With this integration you have the possibility to display different designs and personalize them with information from the Home Assistant. For example, you can use this integration to display several texts {{ templates }} and images on one page. You can also use this integration to determine how long you want to see a page, e.g. you can set the page to change every 15 seconds. In addition, you also have a light entity for switching the display on and off or changing the brightness. Last but not least, you can create automations with which you can use certain triggers to display the pages that are available to you as a push.\n\n  \n\n## Installation\n\nDivoom Pixoo 64 Home Assistant Integration can be installed via HACS, or by manually copying the divoom_pixoo directory to Home Assistant's config/custom_components/ directory.\n\n1. Install this integration with HACS or copy the contents of this repository's `custom_components/divoom_pixoo` directory into your `custom_components/divoom_pixoo` directory.\n\n    [![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=gickowtf\u0026repository=pixoo-homeassistant\u0026category=integration)\n\n2. Restart Home Assistant.\n\n3. Go to Settings / Integrations and add integration \"Divoom Pixoo 64\".\n\n    [![Add Integration to your Home Assistant\ninstance.](https://my.home-assistant.io/badges/config_flow_start.svg)](https://my.home-assistant.io/redirect/config_flow_start/?domain=divoom_pixoo)\n\n4. Please select a discovered Pixoo 64 device from the list or select 'Manual IP' to manually enter the device's IP yourself.\n\n  \n\n## Configuration\n\n  \n\n### Base\n\n*Settings \u003e Devices \u003e Divoom Pixoo \u003e Configure*\n\n  \n\n**IP address of the device:** discovered or manually entered IP\n\n  \n\n**Scan interval (in seconds):** The amount of time a page is displayed\n\n\n**List of pages in YAML:** See below (Optional)\n  \n\n# Page Types \u0026 Configurations\n\n  \n\nEach page type will have configuration options unique to it. **All configs should be written using YAML**\n*If you're new to this integration, we recommend starting with the components page type.*\n\nIn the YAML config, all pages are nested under `- page_type: XXX`\nWhen setting the default configuration. Multiple pages can be set. These will be rotated through using the \"duration\" tag, or by default the time set in \"scan interval\".\n\n**YAML Layout example**\n```yaml\n- page_type: channel\n  id: 0\n- page_type: clock\n  id: 182\n```\nIn addition, all page types can be dynamically set to Enable/Disable based on HA entities.\n\n\n| **Config Options** | **required** | **Default** | **Values**                                                            | \n|--------------------|:------------:|:-----------:|-----------------------------------------------------------------------|\n| enabled            |      No      |    true     | bool or {{ template }} *#expects  state = 'true', 'yes', 'on' or '1'* |\n\n```yaml\n- page_type: PAGE_TYPE\n  enabled: \"{{ states.input_boolean.YOURS.state }}\"\n```\n\nYou can also set the duration of a page in seconds. This will override the scan interval set in the device settings. Note that the duration is calculated via the template only when the page is displayed.\n\n| **Config Options** | **required** |     **Default**     | **Values**                                 | \n|--------------------|:------------:|:-------------------:|--------------------------------------------|\n| duration           |      No      | (The Scan Interval) | integer/float in seconds or {{ template }} |\n\n```yaml\n- page_type: PAGE_TYPE\n  duration: 10\n```\n\u003e [!NOTE]\n\u003e The enabled tag and duration tag only apply when used in the configuration. Therefore, they won't word in the service.\n\n## Page: Components\nA components page  turns your Pixoo into your canvas!  You can tie multiple text/image configs to a single page.\n\n```yaml\n- page_type: components\n  components:\n    - type: text\n      #[text config]\n    - type: text\n      #[text config]\n    - type: image\n      #[image config]\n    - type: rectangle\n      #[rectangle config]\n    - type: templatable\n      #[templatable config]\n```\n\u003cbr\u003e\n\n\u003e [!NOTE]\n\u003e Position X,Y coordinates will need to be manually configured for each component type\n\n#### XY Positioning\n\n\u003cimg  src=\"https://github.com/gickowtf/pixoo-homeassistant/blob/main/images/XY.png?raw=true\"  title=\"Example XY axis\"  height=\"300\"  /\u003e\n\n## Component Configurations\n-type: [ text | image | rectangle ]\n\n#### Component: Text\n\n \n| **Config Options** | **required** | **Default** | **Values**                                                              | \n|--------------------|:------------:|-------------|-------------------------------------------------------------------------|\n| position           |     Yes      |             | The text [position](#xy-positioning) on a XY axis at 64x64 pixel        |\n| content            |     Yes      |             | Your message! *{{ templates }} and [Newline](#newline) Support in text* |\n| font               |      No      | pico_8      | [Fonts](#fonts)                                                         |\n| color              |      No      | white       | [R, G, B] or [Colors](#color-presets)                                   |\n| align              |      No      | left        | left, right or center                                                   |\n\n  Example\n```yaml\n    - type: text\n      position: [0,0]\n      content: Welcome Home!\n```  \n\n#### Component: Image\n\n| **Config Options** | **required**  | **Default** | **Values**                                                                                                                          | \n|--------------------|:-------------:|-------------|-------------------------------------------------------------------------------------------------------------------------------------|\n| position           |      Yes      |             | The text [position](#xy-positioning) on a XY axis at 64x64 pixel                                                                    |\n| image_path         | Yes(pick one) |             | image path like /config/img/haus.png                                                                                                |\n| image_url          | Yes(pick one) |             | image url like template {{ entity image }} or https://raw.githubusercontent.com/gickowtf/pixoo-homeassistant/main/images/fuel.png   |\n| image_data         | Yes(pick one) |             | image data in base64. Convert images [here](https://base64.guru/converter/encode/image).                                            |\n| height             |      No       |             | If none is selected, the image will be at it's original size. If one is selected, it will become the longest side. Proportional     |\n| width              |      No       |             | If none is selected, the image will be at it's original size. If one is selected, it will become the longest side. Proportional     |\n| resample_mode      |      No       | `box`       | `box`, `nearest`, `bilinear`, `hamming`, `bicubic`, `lanczos`                                                                       |\n\nExample\n```yaml\n    - type: image\n      position: [5,5]\n      image_path: /config/image/haus.png\n      resample_mode: box\n      height: 64\n```\n\n\n#### Component: Rectangle\n\n| **Config Options** | **required** | **Default** | **Values**                                                           | \n|--------------------|:------------:|-------------|----------------------------------------------------------------------|\n| position           |     Yes      |             | The text [position](#xy-positioning) on a XY axis at 64x64 pixel     |\n| size               |     Yes      |             | final size of the rectangle. looks like [width, height]              |\n| color              |      No      |             | [R, G, B] or [Colors](#color-presets)                                |\n| filled             |      No      |             | boolean                                                              |\n\nExample\n```yaml\n    - type: rectangle\n      position: [20,  20]\n      size: [10,  10]\n      color: yellow\n      filled: \"{{ states.input_boolean.YOURS.state }}\"  #optional\n```\n\n#### Component: Templatable\n\n| **Config Options** | **required** | **Default** | **Values**      | \n|--------------------|:------------:|-------------|-----------------|\n| template           |     Yes      |             | jinja2 template |\n\nExample\n```yaml\n    - type: templatable\n      template: \u003e-\n        {% set entities = [[\"input_boolean.sw1\", \"input_boolean.sw2\"],\n        [\"input_boolean.sw2\"]] %} {% set origin = [1, 62] %}\n\n        {% set output = namespace(list=[], position_x = origin[0], position_y =\n        origin[1]) %} {% for entity_group in entities -%} {# {%- if loop.first\n        %}The {% elif loop.last %} and the {% else %}, the {% endif -%} #}\n\n        {% for entity in entity_group -%} {# {%- if loop.first %}The {% elif\n        loop.last %} and the {% else %}, the {% endif -%} #} {% set entity_state\n        = states(entity) %}\n\n        {## Select the color ##} {% if entity_state==\"off\" or\n        entity_state==\"not_home\" or entity_state == \"standby\" %} {% set\n        color=\"red\" %} {% elif entity_state==\"on\" or entity_state==\"home\" %} {%\n        set color=\"green\" %} {% elif entity_state==\"playing\" or\n        entity_state==\"idle\" or entity_state==\"paused\" %} {% set color=\"blue\" %}\n        {% else %} {% set color=\"white\" %} {% endif %}\n\n        {% set component = {\"type\": \"rectangle\", \"size\": [1,1], \"color\": color,\n        \"position\": [output.position_x, output.position_y]}%}\n\n        {## Make next pixel 2px higher ##} {% set output.position_y =\n        output.position_y - 2 %} {## Add to the output list##} {% set\n        output.list = output.list + [component] %}\n\n        {%- endfor %} {## Make next pixel 2px to the right ##} {% set\n        output.position_x = output.position_x + 2 %} {## reset y ##} {% set\n        output.position_y = origin[1] %} {%- endfor %} {{output.list}}\n```\n\n#### Variables (Optional) (Only for the components page)\nIf you wish for easier sharing of your custom component pages, you can define variables in the variables tag. These can then be used in any template.\n\n\u003e [!NOTE]\n\u003e The variables tag is not supported in the service call. For those, you have to use Home Assistant's variables feature (with automations/scripts)\n\n\nExample usage:\n```yaml\n- page_type: components\n  variables:\n    power: \"{{ states('input_number.power') }}\"\n    storage: \"{{ states('input_number.storage') }}\"\n  components:\n    - type: image\n      image_path: /config/custom_components/divoom_pixoo/img/sunpower.png\n      position: [2,1]\n    - type: text\n      content: \"{{ power }}\"\n      color: \"{{ [255,175,0] if power|int \u003e= 1 else [131,131,131] }}\"\n      font: gicko\n      position: [17,8]\n    - type: image\n      image_path: \"{{ '/config/custom_components/divoom_pixoo/img/akku80-100.png' if storage|int \u003e= 80 else '/config/custom_components/divoom_pixoo/img/akku60-80.png' if storage|int \u003e= 60 else '/config/custom_components/divoom_pixoo/img/akku40-60.png' if storage|int \u003e= 40 else '/config/custom_components/divoom_pixoo/img/akku20-40.png' if storage|int \u003e= 20 else '/config/custom_components/divoom_pixoo/img/akku00-20.png'}}\"\n      position: [2, 17]\n    - type: text\n      content: \"{{ storage }}\"\n      color: \"{{ [255,0,68] if storage|int \u003c= 0 else [4,204,2] }}\"\n      font: gicko\n      position: [17, 18]\n```\n\n--------------\n\n\n## Page: gif\n*Animated GIFs*\n\n1. Download the gif on your computer.\n2. Resize your gif to 16x16, 32x32 or 64x64. I know some websites say it's 64x64, but it has to actually be 64x64. You can resize gifs on multiple websites. Here's an example. (You only have to select manually the width and height of the size down the page).\n3. Re-download the gif.\n4. Re-upload the gif. You can use many image services like this one. (Make sure you use the gif file's link, and not the \"gif viewing page\". You can get that by right-clicking the gif on the website, and then clicking \"Copy Image Link\". The link in your clipboard probably now ends in .gif, like your file. (Although this might not be 100% the case.))\n\n| **Config Options** | **required** | **Default** | **Values** | \n|--------------------|:------------:|-------------|------------|\n| gif_url            |     Yes      |             | URL        |\n\nExample:\n```yaml\n- page_type: gif\n  gif_url: https://i.ibb.co/tKnvLs2/ezgif-5-30ff95e9ca.gif\n```\n\n--------------\n\n## Page: Channel\n*In Divoom app you can set three different custom channels which you can select here.*\n\n\u003e [!NOTE]\n\u003e The Divoom custom channel pic cycle rate must be set in the app itself.\n\n - Channel 1 = `id: 0`\n - Channel 2 = `id: 1`\n - Channel 3 = `id: 2`\n\n\n| **Config Options** | **required** | **Default** | **Values** | \n|--------------------|:------------:|-------------|------------|\n| id                 |     Yes      |             | Integer    |\n\nExample:\n```yaml\n- page_type: channel\n  id: 0\n```\n\n--------------\n\n\n## Page: Clock\n*In Divoom app, there's a big list of clocks that you can set to your device.*\n\n  \\- page_type: clock\n\n\n| **Config Options** | **required** | **Default** | **Values**                                                                                                 | \n|--------------------|:------------:|-------------|------------------------------------------------------------------------------------------------------------|\n| id                 |     Yes      |             | Clock ID [list of clock ID's](https://github.com/gickowtf/pixoo-homeassistant/blob/main/READMES/CLOCKS.md) |\n\nExample:\n```yaml\n- page_type: clock\n  id: 182\n```\n  \n### Alternative Method to find ClockFace ID's\n\n1. Navigate to settings \u003e integrations \u003e Divoom Pixoo 64 \n2. Activate debug logging\n3. Open the Divoom app on your smartphone and select your preferred ClockFace.\n4. As soon as this is displayed on your Pixoo64, you will find \"Device Data\" in the log and then \"CurClockId\".\n5. The CurClockId is the number you were looking for.\n\n## Page: Visualizer\nThis adds the visualizer page to the integration. \n\u003cbr\u003e\n\n| **Config Options** | **required** | **Default** | **Values**              | \n|--------------------|:------------:|-------------|-------------------------|\n| id                 |     Yes      |             | Clock (visualizer) ID   | \n\n\u003cbr\u003e\n\n*The id starts at zero and it represents the clocks from top left to bottom right as can be seen in the app.*\n\nExample: \n\n```yaml\n- page_type: visualizer\n  id: 2\n```\n\n\u003cimg  src=\"https://github.com/gickowtf/pixoo-homeassistant/blob/main/images/visualizer.png?raw=true\" height=\"400\"  width=\"400\"  /\u003e\n\n## Page: PV\nPhotovoltaic - PV is a pre-designed page. The icon changes depending on the battery capacity and the font color changes from red to green\n*Helper entities may have to be used here*\n\n\u003cimg  src=\"https://github.com/gickowtf/pixoo-homeassistant/blob/main/images/solar.png?raw=true\"  title=\"Example of configuration.yaml Solar\"  align=\"left\"  height=\"150\"  width=\"150\"  /\u003e\n\n```yaml \n- page_type: PV\n  enabled: \"{{ states.input_boolean.YOURS.state }}\"  #is only displayed if the state = 'true', 'yes', 'on' or '1'\n  power: \"{{ states.sensor.YOUR_SENSOR.state }}\"\n  storage: \"{{ states.sensor.YOUR_SENSOR.state }}\"\n  discharge: \"{{ states.sensor.YOUR_SENSOR.state }}\"\n  powerhousetotal: \"{{ states.sensor.YOUR_SENSOR.state }}\"\n  vomNetz: \"{{ states.sensor.YOUR_SENSOR.state }}\"\n  time: \"{{ now().strftime('%H:%M') }}\"\n```\n## Page: Progress Bar\n *Pre-designed page with a progress bar, for example, for the status of the dishwasher or for the charging status of the car*\n \n \\- page_type: progress_bar\n  \n  \n\u003cimg  src=\"https://github.com/gickowtf/pixoo-homeassistant/blob/main/images/progressbar.png?raw=true\"  title=\"Example of configuration.yaml ProgressBar\"  align=\"left\"  height=\"150\"  /\u003e\n\n| **Config Options**  | **required** | **Default** | **Values**                                       | \n|---------------------|:------------:|-------------|--------------------------------------------------|\n| header              |     Yes      |             | string or use {{ template }}  *e.g. Dishwasher*  |\n| progress            |     Yes      |             | integer or use {{ template }}                    |\n| footer              |     Yes      |             | string or use {{ template }}  *e.g. Date*        |\n| bg_color            |      No      | blue        | use \"[R, G, B]\" or [Colors](#color-presets)      |\n| header_offset       |      No      | 2           | integer                                          |\n| header_font_color   |      No      | white       | use \"[R, G, B]\" or [Colors](#color-presets)      |\n| progress_bar_color  |      No      | red         | use \"[R, G, B]\" or [Colors](#color-presets)      |\n| progress_text_color |      No      | white       | use \"[R, G, B]\" or [Colors](#color-presets)      |\n| time_color          |      No      | grey        | use \"[R, G, B]\" or [Colors](#color-presets)      |\n| footer_offset       |      No      | 2           | integer                                          |\n| footer_font_color   |      No      | white       | use \"[R, G, B]\" or [Colors](#color-presets)      |\n\nExample:\n\n```yaml\n- page_type: progress_bar\n  enabled: \u003e-\n  {% if is_state('sensor.DISHWASCHER_STATE', 'Run') %} true {% else %} false {% endif %}\n  header: DISHWASHER\n  progress: \"{{ states.sensor.DISHWASHER_PROGRESS.state }}\"\n  footer: ANY FOOTER\n  header_font_color: \"[255, 255, 255]\"\n```\n\n## Page: Fuel\n*Special Page for Gas Station Pricing. Helper entities may have to be used here*\n \n \\- page_type: fuel\n  \n  \n\u003cimg  src=\"https://github.com/gickowtf/pixoo-homeassistant/blob/main/images/gasstation.jpg?raw=true\"  title=\"Example of configuration.yaml Solar\"  /\u003e\n\n\u003cbr\u003e\n\n| **Config Options** | **required** | **Default**          | **Values**                                                                   | \n|--------------------|:------------:|----------------------|------------------------------------------------------------------------------|\n| title              |     Yes      |                      | string - can use {{ template }}  e.g. Gas Station Name                       |\n| name1              |     Yes      |                      | string - can use {{ template }} *e.g. fuel type*                             |   \n| price1             |     Yes      |                      | use {{ template }}   *e.g. fuel price*                                       |  \n| name2              |     Yes      |                      | string - can use {{ template }}                                              |   \n| price2             |     Yes      |                      | use {{ template }}                                                           |   \n| name3              |     Yes      |                      | string - can use {{ template }}                                              |       \n| price3             |     Yes      |                      | use {{ template }} eg. fuel price                                            |\n| status             |     Yes      |                      | string - can use {{ template }} Any extra field in my case an opening status |\n|                    |              |                      |                                                                              |\n| font_color         |      No      | white                | \"[R, G, B]\" or [Colors](#color-presets)                                      |       \n| bg_color           |      No      | yellow (255, 230, 0) | \"[R, G, B]\" or [Colors](#color-presets)                                      |              \n| price_color        |      No      | white                | \"[R, G, B]\" or [Colors](#color-presets)                                      |\n| title_color        |      No      | black                | \"[R, G, B]\" or [Colors](#color-presets)                                      |\n| stripe_color       |      No      | font_color           | \"[R, G, B]\" or [Colors](#color-presets)                                      |         \n| title_offset       |      No      | 2                    | integer *used to center the text*                                            |\n\nExample of the image:\n\n```yaml\n- page_type: Fuel\n  enabled: \"{{ states.input_boolean.YOURS.state }}\"\n  title: Classic\n  name1: Diesel\n  price1: \"{{ states.sensor.diesel.state }}\"\n  name2: Super\n  price2: \"{{ states.sensor.super.state }}\"\n  name3: E10\n  price3: \"{{ states.sensor.e10.state }}\"\n  status: \u003e-\n  {% if is_state('binary_sensor.status', 'on') %} Offen {%\n  else %} Geschlossen {% endif %}\n  title_offset: \"10\"\n  font_color: \"[255, 255, 255]\"\n```\n\n\n--------------\n### Newline\n\n  \n\n**Newline Support** in `content:` example:\n\n```yaml\ncontent: |-\ntext 1\n{{ states.*.state }}\n```\n\n*There is no limit to the maximum newlines except for 64 pixels ;)*\n\n--------------\n\n# Services\n\n  \n  \n\n## Service: Send a page to Divoom Pixoo (show_message) Push Notification\n\n  \n\nYou can use it for Push Notifications. Trigger with anything! Call it with the Service \"Divoom Pixoo 64: Send a page to Divoom Pixoo\".\n\nYou can input in the _Page Data_ field the data of **one** page in the normal YAML format. It can be anything! \n\n\u003e [!NOTE]\n\u003e This is intended to be a temporary override of your default configuration. Any Enable/disable lines will not be respected here.\n\n  \n\nSome examples of **Page Data:**\n\n```yaml\npage_type: clock\nid: 182\n```\n\nor\n\n```yaml\npage_type: components\ncomponents:\n  - type: text\n    position: [10,  0]\n    content: 2 github/gickowtf\n    font: gicko\n    color: [255,  0,  0]\n  - type: image\n    image_path: /config/img/haus.png\n    position: [30,  30]\n```\n\n  \n\n\n\n## Service: Play a Buzzer\n\nPlay the buzzer on the Divoom Pixoo. Beware that this maybe could damage the device. Use at your own risk.\n\n  \n  \n**Buzzing Time per cycle.** in milliseconds `default: 500 milliseconds`\u003cbr\u003e\n\n*The working time of the buzzer per cycle. The buzzer will not buzz continuously; it will go on and off in cycles (duration in-between not controllable).*\n\n**Idle Time per cycle** in milliseconds `default: 500 milliseconds`\u003cbr\u003e\n\n*Idle time of the buzzer per cycle.*\n\n  \n\n**Total Time** in milliseconds `default: 3000 milliseconds`\u003cbr\u003e\n\n*The total time the buzzer will be working.*\n\n  \n\n\u003cbr\u003e\n\n \n## Service: Restart the Divoom Pixoo\n\n\nRestart the Divoom Pixoo device. (It has a little bit of delay. Be patient.)\n\n  \n  \n\n\u003cbr\u003e\n\n  \n--------------\n\n# Templates\n\nAs mentioned above, templates allow you to bring Entity states and attributes directly to your Pixoo! (eg. Temperature, brightness, presence, entity on/off). They can be used in most settings in the integration. *For a deep dive see [https://www.home-assistant.io/docs/configuration/templating/](https://www.home-assistant.io/docs/configuration/templating/) or even [https://jinja.palletsprojects.com/en/latest/templates/](https://jinja.palletsprojects.com/en/latest/templates/) (The language behind templates)*\n\nYou can find the entity ID in HA under Developer \u003e States (Although you shouldn't need this.)\n  \n# Example usages of templates\n## Report Raw Sensor Readings\n\n  \n\nBinary sensors are the easiest to start with, as they simply live in one of two states, On or Off.\n\n```yaml\n- page_type: components\n  components:\n    - type: text\n      position: [0,0]\n      color: white\n      content: \"Motion-FL1: {{ states('binary_sensor.MotionDetector') }}\"\n```\n\n  \n\nIn the above example, the Pixoo would display\n\nMotion-FL1: [on/off]\n\n  \n\n## Conditionally replacing text based on sensor readings\n\n  \n  \n\nWhat if you want to change *on -\u003e detected* and *off -\u003e clear*?\n\n  \n\nOne way is to use a combination of If/then/else (short form below) and a state comparator (is_state)\n\n  \n\n```yaml\ncontent: \u003e-\nMotion-FL1: {{ 'Detected' if\nis_state('binary_sensor.MotionDetector', ['on']) else\n'clear' }}\n```\n\nYou might say \"well that's pretty nifty, but I also want to dynamically change the color because *a e s t h e t i c s*.\n\n  \n\nWell I've got great news for you!\n\n  \n\n## Using templates to dynamically change text color\n\nWe can take the exact same concept used for the text, and apply it to color. All we need to do is swap text for color codes.\n\n  \n\nIf Motion Detected, color = red *(255,0,0)*; else color = green (0,255,0)\n\n  \n ```yaml\ncolor: \u003e-\n{{ [255,0,0] if is_state('binary_sensor.motionDetector',\n['on']) else [0,255,0] }}\n```\n\n## Animations through automations \n\n\u003e [!NOTE]\n\u003e In this example we're using a count helper to act as a countdown. This also uses an automation and not the config.\n\n```yaml\nalias: pixoo64 - auto-ani\ndescription: \"\"\ntrigger: []\ncondition: []\naction:\n  - service: counter.reset\n    metadata: {}\n    data: {}\n    target:\n      entity_id: counter.pixoo_5s_count_down\n  - repeat:\n      count: 20\n      sequence:\n        - service: divoom_pixoo.show_message\n          target:\n            entity_id: sensor.divoom_pixoo_64_current_page\n          data:\n            page_data:\n              page_type: components\n              components:\n                - type: text\n                  position:\n                    - 0\n                    - 30\n                  content: \"Auth Check in: {{ states('counter.pixoo_5s_count_down') }}\"\n                  font: pico_8\n                  color: white\n                - type: image\n                  image_url: https://pub.inflowbogie.dev/lock_closed.png\n                  position:\n                    - 0\n                    - 40\n                  resample_mode: box\n                  height: 20\n                - type: image\n                  image_url: https://pub.inflowbogie.dev/key.png\n                  position:\n                    - \"{{ 2 * states('counter.pixoo_5s_count_down') }}\"\n                    - 50\n                  resample_mode: box\n                  height: 7\n        - service: counter.decrement\n          metadata: {}\n          data: {}\n          target:\n            entity_id: counter.pixoo_5s_count_down\n        - delay:\n            hours: 0\n            minutes: 0\n            seconds: 1\n            milliseconds: 0\n        - if:\n            - condition: state\n              entity_id: counter.pixoo_5s_count_down\n              state: \"0\"\n          then:\n            - service: counter.reset\n              metadata: {}\n              data: {}\n              target:\n                entity_id: counter.pixoo_5s_count_down\nmode: single\n\n```\n\n\n![animated](images/authCheck.gif) \n\n# References\n\n## Fonts\n\n| Font       | Image                                      |\n|------------|--------------------------------------------|\n| gicko      | ![FONT_GICKO.png](images%2FFONT_GICKO.png) |\n| five_pix   | ![five_pix.png](images%2Ffive_pix.png)     |\n| pico_8     | ![PICO_8.png](images%2FPICO_8.png)         |\n| eleven_pix | ![eleven_pix.png](images%2Feleven_pix.png) |\n| clock      | ![CLOCK.png](images%2FCLOCK.png)           |\n\n\n\u003cbr\u003e\n\n\n--------------\n\n  \n\n## Color Presets\nThe colors in this chart can be used as presets to replace the [R,G,B] color coding.\n\n\u003cimg  src=\"https://github.com/gickowtf/pixoo-homeassistant/blob/main/images/colors.png?raw=true\"  title=\"colors\"  /\u003e\n\n\u003cbr\u003e\n\n  \n\n\n--------------\n\n## Issues\n\n  \n\nSometimes the display crashes, especially with animated images. I have often read on the Internet that this is due to the power supply being too weak or the brightness being too high. I now have the display permanently set to **90%** and it no longer crashes.\n\n  \n\n\u003cbr\u003e\n\n  \n\n--------------\n\n  \n  \n\n## Discussions\n\n  \n\nI would be happy if you present your own configuration/usages of the integration or ask questions in the discussions!\n\nhttps://github.com/gickowtf/pixoo-homeassistant/discussions\n\n  \n\n\u003cbr\u003e\n\n  \n\n--------------\n\n  \n\n## Disclaimer\n\nThis is not official software from Divoom.\n\nIt is a custom integration created by me (gickowtf) and therefore Divoom is not responsible for any damages/problems caused by this integration, nor does Divoom provide any end-user support for the integration.\n\nUse this integration at your own risk.\n\n  \n\n\u003cbr\u003e\n\n  \n\n--------------\n\n  \n  \n\n## ❤️ Many thanks to\n\n[@SB2DD](https://github.com/SB2DD) - Thanks for the conversion to config flow and many many more\u003cbr\u003e\n[SmartHome yourself](https://www.youtube.com/watch?v=lHtrDga7piI) - A German YouTuber who has created a video about this integration\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgickowtf%2Fpixoo-homeassistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgickowtf%2Fpixoo-homeassistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgickowtf%2Fpixoo-homeassistant/lists"}