{"version":1,"pages":[{"id":"-MPk9gCOYph4VAMNoIHz","title":"Welcome to the Homey Apps SDK 👋","pathname":"/","siteSpaceId":"sitesp_ysgte","description":"Learn how to build great apps that run on Homey."},{"id":"-MWOOa9CAHYdGtAE4ZrE","title":"Getting Started","pathname":"/the-basics/getting-started","siteSpaceId":"sitesp_ysgte","description":"How to create your first Homey app.","breadcrumbs":[{"label":"The Basics"}]},{"id":"-M_0paOpJUxjBiQR_QDw","title":"Homey CLI","pathname":"/the-basics/getting-started/homey-cli","siteSpaceId":"sitesp_ysgte","description":"This page contains an overview of all Homey CLI commands.","breadcrumbs":[{"label":"The Basics"},{"label":"Getting Started"}]},{"id":"-MWdHNw4mqB6t3ogwvDa","title":"App","pathname":"/the-basics/app","siteSpaceId":"sitesp_ysgte","description":"The essential concepts of a Homey App.","breadcrumbs":[{"label":"The Basics"}]},{"id":"-MWdB31Roc8MjJuI0j5f","title":"Manifest","pathname":"/the-basics/app/manifest","siteSpaceId":"sitesp_ysgte","description":"The basic properties of the App Manifest.","breadcrumbs":[{"label":"The Basics"},{"label":"App"}]},{"id":"-MWdBAdwDRttE0KkWl48","title":"Internationalization","pathname":"/the-basics/app/internationalization","siteSpaceId":"sitesp_ysgte","description":"Homey Apps support internationalization so that users can use your app in their native language.","breadcrumbs":[{"label":"The Basics"},{"label":"App"}]},{"id":"-MXCDM7-iF1CXO1HD7FX","title":"Permissions","pathname":"/the-basics/app/permissions","siteSpaceId":"sitesp_ysgte","description":"Homey Apps require permissions for certain functionality, learn which permissions exist and how to request them.","breadcrumbs":[{"label":"The Basics"},{"label":"App"}]},{"id":"QdJWPhV8h0DkJGTp5prY","title":"Persistent Storage","pathname":"/the-basics/app/persistent-storage","siteSpaceId":"sitesp_ysgte","description":"There are various ways to store persistent data within your app.","breadcrumbs":[{"label":"The Basics"},{"label":"App"}]},{"id":"-MWPA-qeWzSqSzFgLer2","title":"Drivers & Devices","pathname":"/the-basics/devices","siteSpaceId":"sitesp_ysgte","description":"In Homey Apps the Device classes represent the physical devices paired with Homey.","breadcrumbs":[{"label":"The Basics"}]},{"id":"-MWPA8agCCTvj0s32S8m","title":"Pairing","pathname":"/the-basics/devices/pairing","siteSpaceId":"sitesp_ysgte","description":"Pairing allows users to add new devices to Homey.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"}]},{"id":"3xfpAwWmV0GJcbc4zWKn","title":"System Views","pathname":"/the-basics/devices/pairing/system-views","siteSpaceId":"sitesp_ysgte","description":"The pairing templates are built with HTML, CSS and JavaScript. Most drivers will suffice using the system templates that are provided by Homey.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Pairing"}]},{"id":"Md8Fb8YLMnUBDpSu7CAF","title":"Devices List","pathname":"/the-basics/devices/pairing/system-views/devices-list","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Pairing"},{"label":"System Views"}]},{"id":"RBzbzHLKKRVpx53NcZxU","title":"Add Devices","pathname":"/the-basics/devices/pairing/system-views/add-devices","siteSpaceId":"sitesp_ysgte","description":"This view will simply add the devices as selected by list_devices, and finish the pairing session.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Pairing"},{"label":"System Views"}]},{"id":"tP5F2ODmStSNh5F04HZ7","title":"OAuth2 Login","pathname":"/the-basics/devices/pairing/system-views/oauth2-login","siteSpaceId":"sitesp_ysgte","description":"This view can be used for devices that need OAuth2 authorization. When it's successful, it will automatically proceed to the next view.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Pairing"},{"label":"System Views"}]},{"id":"o7dnMnPfKGaPdWhkWdqT","title":"Credentials Login","pathname":"/the-basics/devices/pairing/system-views/credentials-login","siteSpaceId":"sitesp_ysgte","description":"This pair template shows a username & password view where the user can enter credentials.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Pairing"},{"label":"System Views"}]},{"id":"nke6pGcRPtGy2kspPHrg","title":"Pincode","pathname":"/the-basics/devices/pairing/system-views/pincode","siteSpaceId":"sitesp_ysgte","description":"This pair template shows a pincode input. When the pincode is correct, it will proceed to the next view.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Pairing"},{"label":"System Views"}]},{"id":"iTR43AkzIUDozivYFmSx","title":"Loading","pathname":"/the-basics/devices/pairing/system-views/loading","siteSpaceId":"sitesp_ysgte","description":"This view will show a loading indicator. It's usually useful to show this view when an asynchronous operation needs to be made.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Pairing"},{"label":"System Views"}]},{"id":"DXZXCGFExdlqHY8nnCOn","title":"Done","pathname":"/the-basics/devices/pairing/system-views/done","siteSpaceId":"sitesp_ysgte","description":"This view will automatically close the pair session.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Pairing"},{"label":"System Views"}]},{"id":"Rt3CsFOeItDcPmTVW179","title":"Custom Views","pathname":"/the-basics/devices/pairing/custom-views","siteSpaceId":"sitesp_ysgte","description":"","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Pairing"}]},{"id":"-MWOPIoLpgLFc8Q1fIuW","title":"Capabilities","pathname":"/the-basics/devices/capabilities","siteSpaceId":"sitesp_ysgte","description":"A capability is a programmatic representation of a device's state.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"}]},{"id":"-MWOSki3S4NiS0-pMiO6","title":"Energy","pathname":"/the-basics/devices/energy","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"}]},{"id":"-MXandFXAXSdGyMgVmZo","title":"Settings","pathname":"/the-basics/devices/settings","siteSpaceId":"sitesp_ysgte","description":"Device settings allow users to customize the behaviour of their devices from Homey.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"}]},{"id":"-MYPV9tIWyyawFnazYS6","title":"Best practices","pathname":"/the-basics/devices/best-practices","siteSpaceId":"sitesp_ysgte","description":"Device best practices that your app should follow.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"}]},{"id":"-MWOUD86EGo6yleSW_27","title":"Lights","pathname":"/the-basics/devices/best-practices/lights","siteSpaceId":"sitesp_ysgte","description":"Best practices for lights.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Best practices"}]},{"id":"-MWOUI2mHUD4IFz28p2Q","title":"Window coverings","pathname":"/the-basics/devices/best-practices/window-coverings","siteSpaceId":"sitesp_ysgte","description":"Window coverings device best practices.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Best practices"}]},{"id":"-MWORc69bQbhxQ75DF1A","title":"Battery status","pathname":"/the-basics/devices/best-practices/battery-status","siteSpaceId":"sitesp_ysgte","description":"Best practices for devices with batteries.","breadcrumbs":[{"label":"The Basics"},{"label":"Drivers & Devices"},{"label":"Best practices"}]},{"id":"-MWOPPE7Qp4ipf8Evtj8","title":"Flow","pathname":"/the-basics/flow","siteSpaceId":"sitesp_ysgte","description":"Flow cards allow users to create advanced home automations using your the devices from your app.","breadcrumbs":[{"label":"The Basics"}]},{"id":"-MZlZqrhriA0i1OTt7jZ","title":"Arguments","pathname":"/the-basics/flow/arguments","siteSpaceId":"sitesp_ysgte","description":"Flow arguments allow Flow cards to ask for user input.","breadcrumbs":[{"label":"The Basics"},{"label":"Flow"}]},{"id":"-MZlZqriQJVAa0Z5OP0L","title":"Tokens","pathname":"/the-basics/flow/tokens","siteSpaceId":"sitesp_ysgte","description":"Flow Tokens allow users to pass information between different Flow cards when creating their Flows.","breadcrumbs":[{"label":"The Basics"},{"label":"Flow"}]},{"id":"XyArR9HsPghISLXQ4wdP","title":"Widgets","pathname":"/the-basics/widgets","siteSpaceId":"sitesp_ysgte","description":"Widgets enable the creation of custom webviews for user dashboards.","breadcrumbs":[{"label":"The Basics"}]},{"id":"UmpNckHiYsl87IetxohE","title":"Settings","pathname":"/the-basics/widgets/settings","siteSpaceId":"sitesp_ysgte","description":"Widget settings allow users to customize the behaviour of their dashboard widgets from Homey.","breadcrumbs":[{"label":"The Basics"},{"label":"Widgets"}]},{"id":"KAh4r9fY1sL17NxO17Er","title":"Styling","pathname":"/the-basics/widgets/styling","siteSpaceId":"sitesp_ysgte","description":"Styling your widget with the provided CSS variables and classes helps it fit nicely alongside other widgets on the user’s dashboard.","breadcrumbs":[{"label":"The Basics"},{"label":"Widgets"}]},{"id":"SVMLe4vZOCSBs61VGgsm","title":"Debugging","pathname":"/the-basics/widgets/debugging","siteSpaceId":"sitesp_ysgte","description":"","breadcrumbs":[{"label":"The Basics"},{"label":"Widgets"}]},{"id":"-MWP6YtwBiVFucOZQ5RY","title":"Wi-Fi","pathname":"/wireless/wi-fi","siteSpaceId":"sitesp_ysgte","description":"Homey connects over 2.4 GHz to your Wi-Fi network, and your app can access devices on the LAN.","breadcrumbs":[{"label":"Wireless"}]},{"id":"-MZwO0gc2AlXOoKuQRbl","title":"Discovery","pathname":"/wireless/wi-fi/discovery","siteSpaceId":"sitesp_ysgte","description":"Discover LAN devices using mDNS-SD, SSDP or Manufacturer's MAC address (ARP).","breadcrumbs":[{"label":"Wireless"},{"label":"Wi-Fi"}]},{"id":"-MTAHzHiPd7TOzq4eWH-","title":"Bluetooth LE","pathname":"/wireless/bluetooth","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"Wireless"}]},{"id":"-MWOQNYE6LhSo9mAseb3","title":"Z-Wave","pathname":"/wireless/z-wave","siteSpaceId":"sitesp_ysgte","description":"Z-Wave is a two-way wireless communication standard on the 868 MHz - 915 MHz band. It is very similar to Zigbee.","breadcrumbs":[{"label":"Wireless"}]},{"id":"-MWP60x71UdE1hvSvNwn","title":"Zigbee","pathname":"/wireless/zigbee","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"Wireless"}]},{"id":"-MWOQhYxzaVtHmsnYle9","title":"433 MHz","pathname":"/wireless/rf-433mhz-868mhz","siteSpaceId":"sitesp_ysgte","description":"Homey is capable of sending and receiving 433 MHz radio-signals for controlling remote appliances like wireless switches and thermostats.","breadcrumbs":[{"label":"Wireless"}]},{"id":"-MX25sMD2PDIGJdPDmwN","title":"Infrared","pathname":"/wireless/infrared","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"Wireless"}]},{"id":"YiQuLnoka6Ph2Y1MO2GK","title":"Matter","pathname":"/wireless/matter","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"Wireless"}]},{"id":"-MWOQQKC7UCCdniiKIaQ","title":"OAuth2","pathname":"/cloud/oauth2","siteSpaceId":"sitesp_ysgte","description":"Authorise Homey to use a Web API with OAuth2.","breadcrumbs":[{"label":"Cloud"}]},{"id":"-MX2N-hcspuuyhjUmmFG","title":"Webhooks","pathname":"/cloud/webhooks","siteSpaceId":"sitesp_ysgte","description":"Subscribe to incoming events with webhooks.","breadcrumbs":[{"label":"Cloud"}]},{"id":"-MWOPi9AQ4_R9f5UnnjY","title":"Guidelines","pathname":"/app-store/guidelines","siteSpaceId":"sitesp_ysgte","description":"Before publishing your app your should read the Homey App Store guidelines to avoid getting your app submission rejected.","breadcrumbs":[{"label":"App Store"}]},{"id":"-MWOPsYxeFzEN1aUZX2V","title":"Publishing","pathname":"/app-store/publishing","siteSpaceId":"sitesp_ysgte","description":"Publishing your app in the Homey App Store allows you to share it with other Homey users.","breadcrumbs":[{"label":"App Store"}]},{"id":"hA5HzSllF4eY25TRN60T","title":"Verified Developer","pathname":"/app-store/verified-developer","siteSpaceId":"sitesp_ysgte","description":"","breadcrumbs":[{"label":"App Store"}]},{"id":"-MWOQ1ZAU66WMtaqE4yw","title":"Updating","pathname":"/app-store/updates","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"App Store"}]},{"id":"-MYtKbojzzh3CUmyOBel","title":"Custom Views","pathname":"/advanced/custom-views","siteSpaceId":"sitesp_ysgte","description":"Custom views allow you to create interfaces specific to your app.","breadcrumbs":[{"label":"Advanced"}]},{"id":"-MWORiDwURDrP3t0v7ay","title":"App Settings","pathname":"/advanced/custom-views/app-settings","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"Advanced"},{"label":"Custom Views"}]},{"id":"-MYtLHyrt9YP8RPcKPCu","title":"Custom Pairing Views","pathname":"/advanced/custom-views/custom-pairing-views","siteSpaceId":"sitesp_ysgte","description":"Most drivers will suffice using the provided pairing templates. Some advanced drivers however can benefit from creating their own views.","breadcrumbs":[{"label":"Advanced"},{"label":"Custom Views"}]},{"id":"jcx6OKtRnkMWjOp0UaEH","title":"HTML & CSS Styling","pathname":"/advanced/custom-views/html-and-css-styling","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"Advanced"},{"label":"Custom Views"}]},{"id":"-MWdCPs9Ki5hVKIfQ0Zg","title":"Web API","pathname":"/advanced/web-api","siteSpaceId":"sitesp_ysgte","description":"Exposing and consuming a custom REST API for your Homey App with support for real-time events.","breadcrumbs":[{"label":"Advanced"}]},{"id":"-MWOSoLYaRXDl2qvCPKV","title":"Images","pathname":"/advanced/images","siteSpaceId":"sitesp_ysgte","description":"Images can be used in various places throughout Homey, such as album art for speakers, camera devices and in Flows.","breadcrumbs":[{"label":"Advanced"}]},{"id":"Fy9gSB7YPfbTcrf1WyBb","title":"Videos","pathname":"/advanced/videos","siteSpaceId":"sitesp_ysgte","description":"Devices can add support for streaming video, which can be viewed from the mobile app & dashboards.","breadcrumbs":[{"label":"Advanced"}]},{"id":"-MWOT5T9IEyrJxuZfFZX","title":"LED Ring","pathname":"/advanced/ledring","siteSpaceId":"sitesp_ysgte","description":"Homey's LED ring consists of 24 RGB LED's that apps can control and supply new animations for.","breadcrumbs":[{"label":"Advanced"}]},{"id":"-MZI2A2D1AfSB7pXqeUP","title":"Homey Compose","pathname":"/advanced/homey-compose","siteSpaceId":"sitesp_ysgte","description":"Homey Compose makes developing Homey Apps easier by splitting up the App Manifest into multiple smaller manifests.","breadcrumbs":[{"label":"Advanced"}]},{"id":"-MizFyJ9gakIdl0JXQN0","title":"Homey Cloud","pathname":"/guides/homey-cloud","siteSpaceId":"sitesp_ysgte","description":"Everything you need to know to make your apps compatible with Homey Cloud.","breadcrumbs":[{"label":"Guides"}]},{"id":"-MXCVikUO-vOe3P4znDd","title":"Breaking Changes","pathname":"/guides/how-to-breaking-changes","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"Guides"}]},{"id":"-MZHzAisy_vI3g0Q3la1","title":"Tools","pathname":"/guides/tools","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"Guides"}]},{"id":"-MYPZUPzbxOW-VVyh7ha","title":"Bluetooth LE","pathname":"/guides/tools/bluetooth","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"Guides"},{"label":"Tools"}]},{"id":"-MYAMYirNAf8scG6AfNM","title":"Zigbee","pathname":"/guides/tools/zigbee","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"Guides"},{"label":"Tools"}]},{"id":"-MYPMXjmPTSbWkYWe-BW","title":"TypeScript","pathname":"/guides/tools/typescript","siteSpaceId":"sitesp_ysgte","description":"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.","breadcrumbs":[{"label":"Guides"},{"label":"Tools"}]},{"id":"HXw78pBIbyWAWZXvvq1P","title":"Using ESM in Homey Apps","pathname":"/guides/using-esm-in-homey-apps","siteSpaceId":"sitesp_ysgte","description":"","breadcrumbs":[{"label":"Guides"}]},{"id":"EW2wvtlyFBcgbt9oi1MX","title":"Hardware Discount","pathname":"/guides/hardware-discount","siteSpaceId":"sitesp_ysgte","description":"","breadcrumbs":[{"label":"Guides"}]},{"id":"5erGgni9WyA28qf69kVB","title":"Node.js 22 Upgrade Guide","pathname":"/upgrade-guides/node-22","siteSpaceId":"sitesp_ysgte","description":"","breadcrumbs":[{"label":"Upgrade Guides"}]},{"id":"-MTAIKv6V-7gOK-TumqL","title":"Homey v6.0.0","pathname":"/upgrade-guides/changelog-homey-6","siteSpaceId":"sitesp_ysgte","description":"How to upgrade to Homey v6.0.0","breadcrumbs":[{"label":"Upgrade Guides"}]},{"id":"-MWOUhnTs1rembFfj2wY","title":"Upgrading to SDK v3","pathname":"/upgrade-guides/upgrading-to-sdk-v3","siteSpaceId":"sitesp_ysgte","description":"How to upgrade to SDK v3 introduced in Homey v5.0.0","breadcrumbs":[{"label":"Upgrade Guides"}]},{"id":"-MYAZpvANS_QjRQfsp1W","title":"Zigbee Apps","pathname":"/upgrade-guides/upgrading-to-sdk-v3/upgrading-zigbee","siteSpaceId":"sitesp_ysgte","description":"How to upgrade your Zigbee App to the new Zigbee API introduced in Homey 5.0.0","breadcrumbs":[{"label":"Upgrade Guides"},{"label":"Upgrading to SDK v3"}]},{"id":"6NftAZbPqeaOgjoX1DB9","title":"Device Capabilities","pathname":"/upgrade-guides/device-capabilities","siteSpaceId":"sitesp_ysgte","description":"","breadcrumbs":[{"label":"Upgrade Guides"}]}]}