Skip to content

TypeScript based Stream Deck plugin that adds support for some components of the HomeMatic home automation system

Notifications You must be signed in to change notification settings

lafe/Streamdeck-Homematic

Repository files navigation

Streamdeck-Homematic

This repository contains a Stream Deck plugin that adds support for some components of the HomeMatic home automation system.

This project is currently in an early prototype stage. It is not affiliated with eQ-3/HomeMatic or Elgato.

Requirements

The plugin connects to the HomeMatic CCU using the XML-API CCU Addon. The plugin therefore needs a HomeMatic setup that uses one of the supported CCU models by the XML-API. Currently, these are:

The plugin has been tested with version 2.3 of the XML-API Addon. It supports the use of a security token, that has to be created manually using the tokenregister.cgi script of the XML-API Addon. For further information, see the discussion in the Homematic Forum (unfortunately, only in German).

Supported devices

The software is currently only tested with the "normal" 15 key Stream Deck. It is assumed that other Stream Deck variants (like XL or Mini) are working as well, but this has not been tested.

The following HomeMatic devices are currently supported:

Development

The plugin uses Gulp as task runner and Webpack as bundler. The UI components are written in React. Main entry points are the app.ts/index.html that handles the events from the StreamDev device itself. Property Inspectors are implemented in their own files in the propertyInspector folder.

The plugin only uses some parts of the Elgato Stream Deck reference implementation. Most parts are newly implemented to use TypeScript and to leverage the power of modern application web based application development (even though it is a bit slower as a result).

To start development, perform the following steps:

  • Checkout source code

    git clone https://github.com/lafe/Streamdeck-Homematic.git
  • Install npm dependencies

    npm install
  • To build the software, you can use npm build. The result of the build process is located in the "dist" folder.

  • To debug the software, you can use npm run watch. This starts a gulp watcher that detects changes and starts a new compilation when a change is detected. The output is also placed in the "dist" folder and is copied to the folder "%AppData%\Elgato\StreamDeck\Plugins\dev.fernhomberg.streamdeck.homematic.sdPlugin" folder. This folder is the default folder of Stream Deck plugin.

Debugging

The official Stream Deck SDK has a short tutorial on how to debug the application.

The most important part is to add a new DWORD registry key html_remote_debugging_enabled to your registry (HKEY_CURRENT_USER\Software\Elgato Systems GmbH\StreamDeck) and set its value to 1. Afterwards, you have a debugging page on http://localhost:23654/ in Chrome/Microsoft Edge.

A new version of the plugin is only picked up, if the Stream Deck application itself is restarted. To make this easier, you can use the reloadStreamdeck.ps1 script in the "scripts" folder, which kills the running Streamdeck.exe process and restarts it. Combined with the behavior of the npm run watch script, this makes debugging and testing new versions easy.

About

TypeScript based Stream Deck plugin that adds support for some components of the HomeMatic home automation system

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published