# Homey Apps SDK

## Homey Apps SDK

- [Welcome to the Homey Apps SDK 👋](https://apps.developer.homey.app/readme.md): Learn how to build great apps that run on Homey.
- [Getting Started](https://apps.developer.homey.app/the-basics/getting-started.md): How to create your first Homey app.
- [Homey CLI](https://apps.developer.homey.app/the-basics/getting-started/homey-cli.md): This page contains an overview of all Homey CLI commands.
- [App](https://apps.developer.homey.app/the-basics/app.md): The essential concepts of a Homey App.
- [Manifest](https://apps.developer.homey.app/the-basics/app/manifest.md): The basic properties of the App Manifest.
- [Internationalization](https://apps.developer.homey.app/the-basics/app/internationalization.md): Homey Apps support internationalization so that users can use your app in their native language.
- [Permissions](https://apps.developer.homey.app/the-basics/app/permissions.md): Homey Apps require permissions for certain functionality, learn which permissions exist and how to request them.
- [Persistent Storage](https://apps.developer.homey.app/the-basics/app/persistent-storage.md): There are various ways to store persistent data within your app.
- [Drivers & Devices](https://apps.developer.homey.app/the-basics/devices.md): In Homey Apps the Device classes represent the physical devices paired with Homey.
- [Pairing](https://apps.developer.homey.app/the-basics/devices/pairing.md): Pairing allows users to add new devices to Homey.
- [System Views](https://apps.developer.homey.app/the-basics/devices/pairing/system-views.md): The pairing templates are built with HTML, CSS and JavaScript. Most drivers will suffice using the system templates that are provided by Homey.
- [Devices List](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/devices-list.md): This view will show a list of selectable devices to the user. Devices that have already been paired with Homey will automatically be filtered out, based on their data property.
- [Add Devices](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/add-devices.md): This view will simply add the devices as selected by list\_devices, and finish the pairing session.
- [OAuth2 Login](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/oauth2-login.md): This view can be used for devices that need OAuth2 authorization. When it's successful, it will automatically proceed to the next view.
- [Credentials Login](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/credentials-login.md): This pair template shows a username & password view where the user can enter credentials.
- [Pincode](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/pincode.md): This pair template shows a pincode input. When the pincode is correct, it will proceed to the next view.
- [Loading](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/loading.md): This view will show a loading indicator. It's usually useful to show this view when an asynchronous operation needs to be made.
- [Done](https://apps.developer.homey.app/the-basics/devices/pairing/system-views/done.md): This view will automatically close the pair session.
- [Custom Views](https://apps.developer.homey.app/the-basics/devices/pairing/custom-views.md)
- [Capabilities](https://apps.developer.homey.app/the-basics/devices/capabilities.md): A capability is a programmatic representation of a device's state.
- [Energy](https://apps.developer.homey.app/the-basics/devices/energy.md): By defining the energy (kWh) and power (W) usage or generation of the devices your app supports, Homey can provide detailed reports and insights into their energy consumption.
- [Settings](https://apps.developer.homey.app/the-basics/devices/settings.md): Device settings allow users to customize the behaviour of their devices from Homey.
- [Best practices](https://apps.developer.homey.app/the-basics/devices/best-practices.md): Device best practices that your app should follow.
- [Lights](https://apps.developer.homey.app/the-basics/devices/best-practices/lights.md): Best practices for lights.
- [Window coverings](https://apps.developer.homey.app/the-basics/devices/best-practices/window-coverings.md): Window coverings device best practices.
- [Battery status](https://apps.developer.homey.app/the-basics/devices/best-practices/battery-status.md): Best practices for devices with batteries.
- [Flow](https://apps.developer.homey.app/the-basics/flow.md): Flow cards allow users to create advanced home automations using your the devices from your app.
- [Arguments](https://apps.developer.homey.app/the-basics/flow/arguments.md): Flow arguments allow Flow cards to ask for user input.
- [Tokens](https://apps.developer.homey.app/the-basics/flow/tokens.md): Flow Tokens allow users to pass information between different Flow cards when creating their Flows.
- [Widgets](https://apps.developer.homey.app/the-basics/widgets.md): Widgets enable the creation of custom webviews for user dashboards.
- [Settings](https://apps.developer.homey.app/the-basics/widgets/settings.md): Widget settings allow users to customize the behaviour of their dashboard widgets from Homey.
- [Styling](https://apps.developer.homey.app/the-basics/widgets/styling.md): Styling your widget with the provided CSS variables and classes helps it fit nicely alongside other widgets on the user’s dashboard.
- [Debugging](https://apps.developer.homey.app/the-basics/widgets/debugging.md)
- [Wi-Fi](https://apps.developer.homey.app/wireless/wi-fi.md): Homey connects over 2.4 GHz to your Wi-Fi network, and your app can access devices on the LAN.
- [Discovery](https://apps.developer.homey.app/wireless/wi-fi/discovery.md): Discover LAN devices using mDNS-SD, SSDP or Manufacturer's MAC address (ARP).
- [Bluetooth LE](https://apps.developer.homey.app/wireless/bluetooth.md): Bluetooth Low Energy is a wireless communication standard with reduced power consumption compared to classic Bluetooth. Bluetooth Low Energy uses the 2.4GHz radio frequency.
- [Z-Wave](https://apps.developer.homey.app/wireless/z-wave.md): Z-Wave is a two-way wireless communication standard on the 868 MHz - 915 MHz band. It is very similar to Zigbee.
- [Z-Wave Firmware Updates](https://apps.developer.homey.app/wireless/z-wave/z-wave-firmware-updates.md): Allow Homey to update the firmware of Z-Wave devices using the Firmware Update Metadata Command Class.
- [Zigbee](https://apps.developer.homey.app/wireless/zigbee.md): Zigbee is a wireless communication standard that extends the IEEE 802.15.4  standard, it uses 2 different frequencies (2.4GHz, 869-915MHz), and is very  similar to Z-Wave.
- [Zigbee Firmware Updates](https://apps.developer.homey.app/wireless/zigbee/zigbee-firmware-updates.md): Allow Homey to update the firmware of Zigbee devices using the Zigbee Over-the-Air Upgrade Cluster.
- [433 MHz](https://apps.developer.homey.app/wireless/rf-433mhz-868mhz.md): Homey is capable of sending and receiving 433 MHz radio-signals for controlling remote appliances like wireless switches and thermostats.
- [Infrared](https://apps.developer.homey.app/wireless/infrared.md): You can create Homey apps that use Infrared signals to control devices. This allows you to automate devices such as TVs and speakers that don't have "smart" capabilities.
- [Matter](https://apps.developer.homey.app/wireless/matter.md): Matter is a smart-home communication protocol. It is build upon Wi-Fi, Ethernet and Thread. It is available on Homey Pro (Early 2023, 2026, mini) and Homey Self-Hosted Server.
- [OAuth2](https://apps.developer.homey.app/cloud/oauth2.md): Authorise Homey to use a Web API with OAuth2.
- [Webhooks](https://apps.developer.homey.app/cloud/webhooks.md): Subscribe to incoming events with webhooks.
- [Guidelines](https://apps.developer.homey.app/app-store/guidelines.md): Before publishing your app your should read the Homey App Store guidelines to avoid getting your app submission rejected.
- [Publishing](https://apps.developer.homey.app/app-store/publishing.md): Publishing your app in the Homey App Store allows you to share it with other Homey users.
- [Verified Developer](https://apps.developer.homey.app/app-store/verified-developer.md)
- [Updating](https://apps.developer.homey.app/app-store/updates.md): After fixing bugs or adding new features you can to release an update to the Homey App Store. Read this article for useful tips and considerations.
- [Custom Views](https://apps.developer.homey.app/advanced/custom-views.md): Custom views allow you to create interfaces specific to your app.
- [App Settings](https://apps.developer.homey.app/advanced/custom-views/app-settings.md): App Settings allow you to add custom HTML pages, that users can view to modify your app's settings. App Settings can be used for global configuration parameters for your app.
- [Custom Pairing Views](https://apps.developer.homey.app/advanced/custom-views/custom-pairing-views.md): Most drivers will suffice using the provided pairing templates. Some advanced drivers however can benefit from creating their own views.
- [HTML & CSS Styling](https://apps.developer.homey.app/advanced/custom-views/html-and-css-styling.md): The Homey Style Library is the key to a consistent user experience across all Homey Apps. We recommend to use this library above custom styling.
- [Web API](https://apps.developer.homey.app/advanced/web-api.md): Exposing and consuming a custom REST API for your Homey App with support for real-time events.
- [Images](https://apps.developer.homey.app/advanced/images.md): Images can be used in various places throughout Homey, such as album art for speakers, camera devices and in Flows.
- [Videos](https://apps.developer.homey.app/advanced/videos.md): Devices can add support for streaming video, which can be viewed from the mobile app & dashboards.
- [LED Ring](https://apps.developer.homey.app/advanced/ledring.md): Homey's LED ring consists of 24 RGB LED's that apps can control and supply new animations for.
- [Homey Compose](https://apps.developer.homey.app/advanced/homey-compose.md): Homey Compose makes developing Homey Apps easier by splitting up the App Manifest into multiple smaller manifests.
- [Homey Cloud](https://apps.developer.homey.app/guides/homey-cloud.md): Everything you need to know to make your apps compatible with Homey Cloud.
- [Breaking Changes](https://apps.developer.homey.app/guides/how-to-breaking-changes.md): This guide gives hints and guidance in the case that you need to make a change to your app that might break functionality for current users.
- [Tools](https://apps.developer.homey.app/guides/tools.md): In this section we have some recommendations for tools that can make your development easier. Some of these are specific to Homey but others help you develop high quality JavaScript applications.
- [Bluetooth LE](https://apps.developer.homey.app/guides/tools/bluetooth.md): We have created the BLE Developer Tool to support you in the creation of Bluetooth Low Energy apps. This tool makes it easy to explore the functionality of a device without having to write code.
- [Zigbee](https://apps.developer.homey.app/guides/tools/zigbee.md): To support developers in creating drivers for Zigbee devices the Zigbee Developer Tools have been created. This page will explain the functionality of the Zigbee Developer Tools.
- [TypeScript](https://apps.developer.homey.app/guides/tools/typescript.md): TypeScript allows you to catch bugs in your JavaScript code without having to run your Homey Apps. The Homey CLI makes it easy to get started developing Homey Apps with TypeScript.
- [Using ESM in Homey Apps](https://apps.developer.homey.app/guides/using-esm-in-homey-apps.md)
- [Hardware Discount](https://apps.developer.homey.app/guides/hardware-discount.md)
- [Node.js 22 Upgrade Guide](https://apps.developer.homey.app/upgrade-guides/node-22.md)
- [Homey v6.0.0](https://apps.developer.homey.app/upgrade-guides/changelog-homey-6.md): How to upgrade to Homey v6.0.0
- [Upgrading to SDK v3](https://apps.developer.homey.app/upgrade-guides/upgrading-to-sdk-v3.md): How to upgrade to SDK v3 introduced in Homey v5.0.0
- [Zigbee Apps](https://apps.developer.homey.app/upgrade-guides/upgrading-to-sdk-v3/upgrading-zigbee.md): How to upgrade your Zigbee App to the new Zigbee API introduced in Homey 5.0.0
- [Device Capabilities](https://apps.developer.homey.app/upgrade-guides/device-capabilities.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://apps.developer.homey.app/readme.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
