Button + (Release 0.5.5, Test 0.5.9)

Button +

Button + | Homey

Control Button + panels (https://button.plus/)

See also Button+: a new display/switch device

To Setup the app

  1. Install the app from https://homey.app/en-gb/app/com.ady.button_plus/Button-+.

  2. Open the Button + App settings / Configuration page in Homey.

  3. Make sure the Allow update of Button+ configuration is ticked.

There are two types of configurations, button bar and Display, and each currently has 20 slots.

The button bar configurations are shown when the first drop list shows button bar Configurations and the Display configurations are shown by changing the drop list to Display Configurations.

Setting up button bar Configurations

  1. Select button bar Configurations from the first drop list.

  2. Select a configuration number to edit (we can assign any of the configurations to Button+ Panels later).

  3. Under Left button bar are the options for the button on the left side of the Button+ button bar.

  4. Select a Homey device that you want to control from the drop list (The panels only support Boolean capabilities that can turn on and off, etc)

  5. Select a capability from the drop list.

  6. Enter a Top Label (optional). This is displayed in green on the buttons display.

  7. Enter a Label for the On state. This is shown in white and a bigger font on the buttons display, just below the Top Text when the capability is switched on.

  8. Enter a Label for the Off stats. This is shown in white and a bigger font on the buttons display, just below the Top Text when the capability is switched off.

  9. Repeat the steps for the Right button bar.

  10. Click on the Save Configurations button. Still to do is add a prompt if you forget to save and close the window.

Setting up Display Configurations

  1. Select Display Configurations from the first drop list.

  2. Select a configuration number to edit (we can assign any of the configurations to Button+ Display later).

  3. Click on New Display Item.

  4. Select a Device

  5. Select a Capability.

  6. Edit the Label if required.

  7. Edit the Units if required. (this is only text and does not change the values that are sent to the display).

  8. Enter the X and Y positions. These are a percentage of the display width / height.

  9. Enter a width. Again this is a percentage of the display width.

  10. Enter a Rounding value. 0 = whole numbers (integer), 1 is 1 decimal place, etc.

  11. Select a Font Size from the list.

  12. Specify the Alignment of the value.

  13. Add more display items as required.

  14. Click on Save Configurations.

Adding a device to Homey

  1. Select the New Device option in Homey.

  2. Select the Button+ app.

  3. Select Button Panel.

  4. Click on Connect.

  5. Any Button + panels that have been detected on the network will be displayed. If your panel is not found then you can select the Manual Connection and enter the IP address of the panel.

  6. You should then see the virtual device listed, so select it and continue. (The app currently uses the Name found under the General settings to identify the button bar).

  7. The device will be added to Homey.

Using the Homey device

  1. Open the device in Homey.

  2. Open the second tab to view a list of configurations for the display and each connector.

  3. Select the Display or a Connector number from the top drop list.

  4. Select a Configuration number to apply to the Display / button bar connector.

  5. The configuration is uploaded to the panel.

  6. You should now see the information you selected in the configuration displayed on the button displays.

  7. You can press the button displays to toggle the capability in Homey.

MQTT

The app has a built n MQTT broker, so no setup will be required. However, you can add other MQTT brokers in the App Settings page and select those in the button and display settings.

Version Log

0.0.1

  • First beta release

0.0.2

  • Fixed Display item MQTT (GH issue #1) and App button only showing capability (GH issue #3)

0.0.3

  • Display Dim as % (GH issue #5).
  • Fix broker reset to Homey when a new item added (GH issue #8).
  • Sort devices alphabetically (GH issue #9).
  • Fix missing devices from Display list (GH issue #10)

0.0.4

  • Only show brokers that are enabled (GH issue #11).
  • Fix Label and Unit lost after saving (GH issue #13)

0.0.5

  • Added Panel Temperature to device.
  • Added display buttons to the device.
  • Removed Button Only option from the Display Configuration.
  • Implemented Long Press (requires Button Panel firmware 0.822 or later)

0.0.6

  • Added Date & Time to the panel so they can be displayed (GH issue 2).
  • Added option to display Homey Variables (GH issue #7).
  • Fixed: Font Size not being restored on Display Configuration settings.
  • Fixed: Display configurations not being downloaded when changed from the panel device.

0.0.7

  • Added Dutch translations. Added Settings section to drop list.

0.1.0

  • Reworked capability names which will break existing panel settings, so you will need to reassign configurations to panels.

0.1.1

  • Updated Dutch translation.

0.1.2

  • Minor updates from review feedback."

0.2.0

  • Removed simulator option and optimised networking. Added brightness capabilities for the large and mini displays and the LED’s. Added device settings to invert the mini displays. Added device setting for the IP address."

0.2.1

  • Updated driver images and readme.

0.2.2

  • Fix small spelling error in Flow trigger card.

0.2.3

  • Added Set Top Label action cards.

0.2.4

  • Fix crash on invalid connector number. Fix flow trigger for buttons with no device associated.

0.2.5

  • Fix right side button configuration not working.

0.2.6

  • Fix on/off text update when the associated device capability changes.
  • Added a diagnostics log option to the app settings.

0.2.7

  • Added Dutch translation for diagnostics log.

0.2.8

  • Catch error if invalid MQTT URL specified.
  • Added expanding sections in the settings pages

0.2.9

  • The device lists in the configuration sections now now sorted by and show the zone name.
  • Fix issues when display is on connector 0.
  • Fix display button events not being sent.
  • Fix for multiple Button + units.

0.2.10

  • Removed obsolete Invert option.
  • Optimised the code to send less MQTT messages.
  • Added auto repeat on long press for the Dim capability.

0.2.11

  • Added button support for Open/Idle/Close capability.
  • Split configuration upload into smaller chunks to avoid timeouts.
  • Removed alignment option from the display configuration as it has been removed from the hardware.
  • Fixed missing manual option when no devices found.
  • Added open web view to settings page.

0.2.12

  • Fixes for using an external broker, including adding an option to specify a default broker.
  • Setup a rule to make buttons non-latching if no ‘On’ label is specified.

0.2.13

  • Check for valid configuration so it doesn’t have to catch errors.
  • Added copy/paste and Import/Export configurations options #66.
  • Added options to configure data and time format #68.
  • Added configuration button changed flow trigger #69.
  • Fixed status on button on connector # changed trigger #71"

0.2.14

  • No longer set Label to the device name #73.
  • Fix button update when capability changes #75.
  • Fix top label not being updated #77.
  • Added maintenance button to re-apply configurations to the panel #76.

0.2.15

  • Added setting for date and time language code.
  • Added a setting to show the Day of the week.
  • Added Variable option to Button Configuration so a Boolean variable can be used to control the button state (Variables are read-only for an apps so a flow is required to toggle the state).

0.3.0

  • Added Variable option back into Display configurations.
  • Made connector numbers consistently 1 to 4, as some places it was 0 to 3 and others 1 to 4, which might break some Flows.

0.3.1

  • Tidy up MQTT topics so everything is under the Homey root topic.
  • Republish MQTT topics when a configuration is uploaded to ensure new values are up to date.

0.3.2

  • Fix a couple of typing error.

** 0.3.3**

  • Added ‘Set button label text’ action Flow card.
  • Added temperature offset setting to adjust the button + temperature value.
  • Fix a Flow condition label typo.
  • More Dutch translations.
  • Fix an issue where the temperature reports could get into a loop and cause a flood of MQTT messages.
  • Added on/off status token to configuration button changed trigger.
  • Added a timeout and queue system to configuration transfer.

0.3.4

  • Fix wrong left / right issues for Variable configuration.

0.3.5

  • Fixed Right-Side Variable issue.
  • Fixed Broker Configuration issue when enabling and disabling brokers.
  • Display button are now non-latching.
  • Fixed double Flow trigger for buttons that use Variables.

0.3.6

  • Added ‘Set … configuration # to’… Flow card.
  • Renamed Text to Label and Label to Top label on Flow cards to be consistent with Button plus terms.

3.0.7

  • Fix button on / off actions cards issue when configured for App Only Button.

3.0.8

  • Fix Button + Temperature update on display.

3.0.9

  • Fix to work with firmware version 1.08

3.0.10

  • Update 2 to work with V1.08 firmware.
  • Added advanced setting to device to control the status bar display.

3.0.11

  • Added new Condition Flow cards.
  • Removed extra curly brackets from capability names in Configuration page.
  • Added check for no return data from panel.

0.3.12

  • Updated to use homey-api instead of athom-api and a general clean up to reduce memory usage.
  • Prevent duplicate capability listener registration.

0.3.13

  • Fixed missing variables from Display Configuration elements.

0.3.14

  • Added tips for item parameters in the Display Configuration.
  • Add step option to Temperature Calibration in Advanced settings.

0.3.15

  • Added Display dim Flow action card.
  • Force time to use a : instead of a . so the Button + doesn’t treat it as a number.

0.3.16

  • Fix Right Button text changes to Left Button text when Top Label first changed #93.
  • Fix mDNS discovery issue. Optimise complete configuration upload.

0.3.17

  • Added Flow action cards to change the LED colour.
  • Add optional Configuration Name to to both Button and Display Configurations to help identify them (not in the device lists though).
  • Reduce the size of some of the MQTT messages.

0.4.0

  • Added support for pages to Display Configuration (requires firmware version 1.1 or later).
  • Optimized the MQTT messages to reduce configuration uploads when they are switched in the app.
  • Optimized transfers to exclude unchanged configurations.

0.4.1

  • Fix Select Display Page Flow action card.
  • Fix issue with button configurations not being applied correctly."

0.4.2

  • Return of Switch configuration by number Flow actions so they can be controlled with a variable.
  • Fix Flow action to change a connector top label

0.4.3

  • Fix Flow trigger for Display Button trigger.

0.4.4

  • Fix Capability change notification.
  • Update Dutch translations.

0.4.5

  • Fix lost capabilities after hitting Save after modifying a parameter that causes a sort.

0.4.6

  • Fixed Flow ‘Set Left/Right LED colour on connector N to colour’ action card which was duplicating the configuration counterpart.
  • Fixed issue with Button changed trigger firing twice when another capability is assigned to the button.

0.4.7

  • Improve error checking and set warning if the app fails to send a configuration to the panel.

0.4.8

  • Fix detection of added / removed devices / zones.

0.4.9

  • Allow 0 in Display Brightness Flow card.

0.4.10

  • Added Flow action card to re-apply all configurations to a device.
  • Fix LED colour when switching button configurations.

0.4.11

  • Fix issue when settings a button configuration from a Flow card.

0.4.12"

  • Added brightness support when used with firmware version 1.12.

0.5.0

  • Use new events for LED on / off so configuration writes are no longer needed to swap button configurations (requires firmware 1.12).
  • Added new LED Off colour options.

0.5.1

  • Added option to enable / disable long press auto-repeat to each button configuration.

0.5.2

  • Added repeat count token to Long Press Flow trigger.
  • Increased number of Button Configurations to 40.

0.5.3

  • Fixed Firmware Update command for new firmware versions.

0.5.4

  • Fix Apply Configurations function.

0.5.5

  • Fix regression to MQTT payload in last update.

0.5.6

  • Added display configuration option to switch off the underline on display items.

0.5.7

  • Added custom MQTT topics to display configuration.
  • Added LED to the set dim level action card and made all parameter optional.

0.5.8

  • Fixed windowcoverings_state handling for buttons and added a stop feature when the button pressed for the second time.
  • Fixe date & time not updating on the display.
  • Improve handling of a bad configuration that is read back from the display.

0.5.9

  • Change cpu_warn handling as Homey 2023 only gives 5 warning and not 20 that older Homeys gave.

#numbers refer to GitHub issues

All feedback welcome.

13 Likes

Reporting problems or requesting features.

If you find any bugs or want to request a new feature, could you add an issue in the GitHub repo Issues ¡ AdyRock/com.ady.button_plus ¡ GitHub
That way I can track them and keeps replies grouped together.

1 Like

Thanks for releasing. I installed this test version and managed to configure and use the button bar using the simulator.

It is possible to use the simulator on local network with your own MQTT broker. For this to work you need to do 2 things:

  • In simulator add your MQTT broker to “MQTT brokers”, using web socket (so add ws:// in front of the MQTT broker ip-addres (for example ws://IP-address) and fill in web socket port (default 9001).
  • In Button + Homey app add configuration for your MQTT broker (in app settings in same dropdown as button- and display configurations). Enter IP-address of your local MQTT broker (using mqtt://IP-address and your mqtt port number (1883)).

This works for button bar, not yet for display (because added mqtt broker cannot be selected in display configuration yet).

1 Like

The Display Broker issue should be fixed in the new test version.

2 Likes

I can confirm it works.

What is the “app button only” device used for?

Submitted a “bug” (or maybe feature request) to show percentage as number 0…100% (not 0…1).

Also feature request to edit the value to be shown:

And/or to be able to use homey logic variables to be shown on display and buttons.

Edit: another bug:

1 Like

The app button only is used to get notifications when the button is pressed without being connected to a device/capability. When the button is pressed the Flow trigger will be fired. For the display, it’s the only way to hook into the buttons.

1 Like

In button/display configurator. Should all devices be shown in the device drop down?

It looks I cannot find this one:

Could it be because this device doesn’t have capabilities that can be changed? Only (weather) info. For button configuration I understand this is not useful, but for display I really would like to display temperature, wind direction and weather forecast for instance…

Bug of feature request?

Hmm, sounds like a bug. I can add all the capabilities from my weather station to the display.
The button lists are filtered to only show booleans that can be changed.

One last update before I go on holiday for 2 weeks.

Version 0.0.3

  • Display Dim as % (GH issue #5),
  • Fix broker reset to Homey when a new item added (GH issue #8),
  • Sort devices alphabetically (GH issue #9),
  • Fix missing devices from Display list (GH issue #10)

Thankyou for the testing and feedback, it is much appreciated.

4 Likes

Thanks for the great work, @Adrian_Rockall.
Have great holiday!

1 Like

Have a nice holiday @Adrian_Rockall. Nice to know I have two weeks to test this release :wink:

1 Like

Very nice application , my compliments

Small issue i found :
While saving a couple of time , the display configuration lose his unit’s (like Celsius , watt or KwH
You can save it again , but will drop every few times after saving

Question :

Are those usecase also supported
( can’t find it in documentation , but virtual.button.plus website shows a long press in the config)

Usecase 1
press button 1left = Lights on
press button 1left = Light off
Press and hold button 1 left = Dim lights from 100 to 0 ( when release button - dimming should stop)

Usecae 2:
Press button 2right = Start Flow - airco cooling
Press button 2right = airco off
press and hold 2right = start flow - airco heating

Hmm, OK I will try to track that down when I’m back of holiday.

I have implemented the long press, but as far as I know, there is no repeat, so it fires only once.
I will investigate the Button + code to see what can be done.

So it is currently setup to either switch off / on by assigning the onOff capability or dim when assigning the dim capability along withan increment or decrement value.
I will try and get my head around the logic required to implement your suggestion and see what I can do. The main issue is how to determine if it should dim up or down for the long press.

1 Like

Enjoy youre holiday.

Just ping me afterwards and i can help test with you.
I did found some strange behavior which did crash the app. Proberly i can reproduce it

1 Like

Edit Ok (works now)

Ok

OK in display configuration. In button configuration the drop down with devices is empty… :thinking:

OK

While testing I came across some other (new) bugs and a feature request. I’ve added all to Github. Take your time on holiday and don’t bother about this until back home. The device is taking a bit longer also, so no hurry.

1 Like

I have updated the app code for the Long Press event and add support for it to repeat. However, when I looked at the panel code I discovered the Long Press wasn’t implemented so I have added that to the code along with the auto repeat and made a pull request so it can hopefully be added to the master and shipped with the first batch. However, when I last communicated with Ronald, he was in China arranging the assembly, so he might not have time. As the panels should support OTA updates, that shouldn’t be a problem as it could be pushed out as soon as he gets back.

5 Likes

Great work @Adrian_Rockall! Thanks for the continuous effort! :+1:t2:

2 Likes

I think I have implemented the basics now, so subject to testing I will submit the app for certification soon so it will be ready for the product shipments.

If anyone wants to provide translations I will happily accept pull request for those.

I would also like to thank @Torch1969 for the help with testing and feedback.

2 Likes