Got an Elgato StreamDeck? Then let Homey meet StreamDeck! StreamDeck can now control anything your Homey can control.
How does this work?
The StreamDeck cannot be recognized as a device directly as it requires to be connected to a computer. This app provides the service layer only. To make it work, you also need to install the StreamDeck plugin. The plugin for the StreamDeck is available through the Plugin Store of the StreamDeck itself.
Supported Device Features
Toggle device on/off
Toggle a device’s switch
Press any button of a device
Display any data of a device (one per StreamDeck button)
Display a logik variable
Fire A Trigger
The Display Data Action In Detail
This action is implemented as a toggle on StreamDeck. However, pressing the button merily is ignored and the state is reset automatically on the next update cycle.
I chose to implement is a toggle so you can configure custom icons for boolean data.
Condition Setting
The condition setting enables you to implement different images for non boolean data.
Numeric Values
If you enter a numeric value the on state of the button will be set if the value is greater than what you entered in the condition.
Preceeding the condition with a ‘=’ character will change the check to match the exact value.
Enum and String Values
If you enter a text value the on state of the button will be set if the value contains the given text. This check is case sensitive.
Preceeding the condition with a ‘=’ character will change the check to match the exact text value.
Boolean Values
The condition is ignored for boolean values as those already provide the on/off info directly.
Automatic Line Break
The automatic line break setting is especially for text values. It will try to insert a line break at the closest whitespace character given by the setting’s value.
Flowcards
This app adds a “A Trigger was received from StreamDeck” trigger card.
You can set up a ‘Fire A Trigger’ button in StreamDeck and give it a trigger name.
With this trigger name you can now start flows using this trigger card. Just enter the name of the trigger into the card and done.
Optionally you can also enter a payload for the trigger. The payload can be text, a number or true/false. The payload will be available as tokens within the flow.
Setup
Install this app.
Install the StreamDeck plugin.
Set up your access key in this app’s settings page. The access key can be as simple or complex as you see fit. It just may not be empty. However, of course it would be advisable to not use anything easy to guess. Anyone with your key and your Homey’s Cloud ID would possibly be able to gain control access to your devices.
Add the Homey address and your access key from the Homey app’s settings page to your plugin’s action properties.
Have fun with StreamDeck!
Some Examples to give you an idea
Media Center
Room Control
Home Observation
Sensor Data
Heating & Climate
Feedback & Questions
If you have any feedback or suggestions please feel free to message me directly or use the support email given for the app.
Q: After restarting Homey the StreamDeck commands are working but the value displays are not updating? A: This is a known issue. Sometimes the realtime service does not start up due to the high process load, during Homey start up. You can workaround that by automatically restarting the app, delayed by the Homey has started trigger card. Try to delay the restart of the app to a point when you can be sure that all your other apps have started and initialized. In other words, best practice is to start the app as last app, for the time being.
Q: I set up a button and it works fine, but every few seconds it flashes an warning symbol regardless? A: This is most likely caused by a falsely cached Homey connection. The problem should vanish if you restart the StreamDeck app on your system. If this does not resolve this problem, please drop me a message.
Q: What is this realtime mode? A: Realtime mode is available if you are connecting to Homey over your local network only. Means if you supply your Homey’s hostname it will activate automatically. (requires App v1.3+ & Plugin v1.6+) Any changes, your Homey registers, will be reflected on your StreamDeck instantly. Unfortunately realtime is not available if you are using the cloud address instead of the hostname only. Cloud connections will rely on the state polling logic.
Q: Which port does the realtime connection require? A: You need to allow TCP traffic going from and to port 4693 of your Homey and the system your StreamDeck is connected to.
Q: Why does the confirmation icon flash up delayed some times? A: This actually differs based on the operation mode. In realtime mode the confirmation icon flashes as soon as the command was successfully sent to Homey. In polling mode it flashes after Homey has confirmed the command. In the end it depends on your Homey’s CPU load and network performance.
Q: Can I use my own icons? A: Yes. All features support the usual custom icon override.
Q: I added a value but the button is black with text only. A: Naturally. I added plenty icons for Homey’s default capabillities. So anything custom will most likely not show an icon automatically. Feel free to set your favorite icon instead.
Q: The device list stays empty after adding an action in the StreamDeck / Homey does not longer respond to commands / StreamDeck shows triangles for Homey buttons A1:Possible refresh issue: If this is the first item you add to the Streamdeck you might need to deselect the current button and reselect it, after entering the Homey Address and Key. A2:Connection setup is faulty: This means that you have not set up the connection properly. Make sure your Homey hostname and the access key for the app on Homey are set up correctly. A3:Homey is not reachable: Make sure your Homey is reachable from your system, to which your StreamDeck is connected. The communication could possibly be blocked by a VPN client or a VLAN configuration. This can also be caused if your Homey’s hostname cannot be resolved by your system. A4:Firewall Settings: If you are using any desktop firewall software, make sure the StreamDeck application is allowed to make outgoing connections. A5:MAC not resolving the hostname Often there is an issue for MAC users being unable to connect locally. If teaching your router to resolve Homey’s local hostname you can work around this by setting the hosts file on MAC.
Just add your Homey’s host name (as shown in the settings of the StreamDeck Integration app) and the IP to your local hosts file on your MAC: /etc/hosts
For this to work reliably, please also make sure your router or DHCP server always assigns the same IP address to your Homey.
Q: The hostname and key I entered are not saved. What’s wrong? A: Check if the data is saved when you click into the Title/Name input field before deselecting the button. If this does not work then the plugin installation might be faulty. Try uninstalling the plugin and reinstall it from the Elgato Plugin Store.
Q: Can I use multiple Homeys? A:: Yes. The Homey hostname and access key is cached so you do not need to enter it all the time when adding things. But they are stored per action. So you can address a different Homey for every action.
Q: Can I use Homey using the Homey Cloud instead of going locally by the hostname? A: For performance reasons I would not recommend using the detour over the cloud, and I do not officially support this. However, starting with plugin version 1.3.0 you can now use the cloud address instead of the local hostname. Simply add “.connect.athom.com” to your Homey’s hostname.
Q: When a new version of the StreamDeck plugin is released, do I have to update it? A:: No. StreamDeck automatically updates installed plugins once they got published by Elgato/Corsair.
Fixed: Trigger Button not working with advanced flows.
Homey App - v2.0.1
Fixed: Device selectors not being populated on initial setup
Updated: Trigger button card is now using a formatted title
Homey App - v2.0.0
Updated: Migrated Homey app to Homey App SDK v3
Homey App - v1.3.3
Fixed capability listners not cleaned up if a device is removed from Homey
Homey App - v1.3.2
Fixed a potential crash issue when the user has devices which are bound to manually disabled apps
Homey App - v1.3.1
Massively reduced the app footprint (RAM & CPU)
Greatly Improved API responsiveness
Super secret and nifty under the hood changes for future StreamDeck plugin updates
StreamDeck Plugin - v1.6.0
Added: Realtime Mode (LAN connections only)
The realtime mode activates automatically when using the LAN connection.
Homey App - v1.2.2
Improved API Robustness
Homey App - v1.2.1
Updated: API update for new logic variables feature
StreamDeck Plugin - v1.5.0
Added: ‘Display Logic Variable’ element. Works the same as ‘Display Data’ but for logic variables.
StreamDeck Plugin - v1.4.0
Improved: Buttons waiting on data, right after showing up, now indicate that with a little symbol of a certain ancient time measuring device.
Improved: Build-in graphics now show as soon as possible for a better visual experience. Previously those showed up after the initial refresh was successful only.
Homey App - v1.1.0
Updated: API update for new plugin version
StreamDeck Plugin - v1.3.0
Added: The configuratior now shows an error message if the communication with Homey cannot be established, including the reason if detectable.
Added: Support for cloud access has been added.
Homey App - v1.0.6
Improved API Robustness
Homey App - v1.0.3
Updated: athom-api to v3.2.3
StreamDeck Plugin - v1.2.1
Added: Antidote for twichy toggles → The button status should now be less bouncy when toggling a boolean value.
Homey App - v1.0.2
Maintenance only. No functional changes.
StreamDeck Plugin - v1.2.0
Fixed: Issue where percentage values are not showing correctly.
Added: The default mute capability toggle now shows the volume level if available.
Awesome work. Exactly what I was looking for. Till now I used webhooks to trigger Flows who will switch my devices on/off but this App is far superior to my solution.
I would be happy to support you with a small PayPal donation if you want.
Hey there,
sorry to hear you are having troubles. This might just be a refresh issue.
Make sure you entered the the exact name you see for Homey in the Homey app’s settings page. Compare it with what you entered for the Homey Address in the plugin.
Also recheck the key you entered. 1) Check if it was saved to the Homey app settings by opening the settings there again 2) Double check if it is matching with the plugin.
If all that is fine then you most likely have a refresh issue. Add any Homey item in the Streamdeck, enter the Homey Address and Key. Then select an empty button slot and reselect the one you just created. The device list should be forced to refresh.
@MarkL Thanks always glad to hear nice feedback.
Can you PM me your flow and a screenshot of your SD trigger button settings? It should actually work without issue. However, the trigger name and the payload are case sensitive. Also make sure you use the right payload token for comparison. The payload sent automatically gets cast to 3 different types of tokens (text, number & boolean)
Oh. I see the mistake in your setup. On the Trigger card, the “Respond to Trigger Name” has to be the name of the “Trigger Name” you entered in the StreamDeck. Your current trigger card responds to “Trigger Name” Zzzz, not sleep
Yes, that was it. I the name of the “respond to trigger name” in the flow has to be the same to the Trigger Name in Stream Deck and then you don’t even need the “And” part. Nice!