Button + (Release 0.7.27, Test 0.7.29)

i’ve to send it here as the logsend times out after 10sec. Probably because strict network policy.

if I re-apply the display config in the homey Button+ app, the displays both work again.

If I then reboot homey, elements stay empty.

I reboot Homey overnight.

undefined

\* 2026-05-14T00:01:16.958Z

cpuwarn! 1 of 12

\* 2026-05-14T00:01:46.972Z

cpuwarn! 1 of 12

\* 2026-05-14T06:32:18.588Z

cpuwarn! 1 of 12

\* 2026-05-14T10:24:31.042Z

Variable c026edd2-672b-4101-9e97-ade40111a7f6 (day_cost_imp) updated to 13.35605849793

\* 2026-05-14T10:24:31.047Z

Variable e5b46aa9-3dd4-4336-874d-a7fa5870aee3 (day_cost_exp) updated to -0.020492747522227

\* 2026-05-14T10:24:31.057Z

Variable a796daa9-20fd-46e7-a148-ded4a7c55575 (day_cost) updated to 13.335565750408

\* 2026-05-14T10:24:35.349Z

MQTTclient.on message: buttonplus/btn_9284f8/sensor/sens1, 21.317

\* 2026-05-14T10:24:45.654Z

MQTTclient.on message: buttonplus/btn_9284f8/sensor/sens1, 21.325

\* 2026-05-14T10:24:47.104Z

MQTTclient.on message: buttonplus/btn_91832c/sensor/sens1, 22.014

\* 2026-05-14T10:24:51.037Z

Variable c026edd2-672b-4101-9e97-ade40111a7f6 (day_cost_imp) updated to 13.356059476297

\* 2026-05-14T10:24:51.043Z

Variable e5b46aa9-3dd4-4336-874d-a7fa5870aee3 (day_cost_exp) updated to -0.020495629822227

\* 2026-05-14T10:24:51.051Z

Variable a796daa9-20fd-46e7-a148-ded4a7c55575 (day_cost) updated to 13.335563846475

\* 2026-05-14T10:24:54.116Z

Send log error: read ECONNRESET

\* 2026-05-14T10:24:55.958Z

MQTTclient.on message: buttonplus/btn_9284f8/sensor/sens1, 21.325

\* 2026-05-14T10:24:57.412Z

MQTTclient.on message: buttonplus/btn_91832c/sensor/sens1, 22.019

\* 2026-05-14T10:24:57.590Z

Send log error: read ECONNRESET

\* 2026-05-14T10:25:00.821Z

publishMQTTMessage: homey_buttonplus/575c35ba-482e-4d6c-8b6a-48fd6db07198/date, donderdag 14 mei 2026, ignored, same as previous value

\* 2026-05-14T10:25:00.822Z

publishMQTTMessage: 12:25 to topic buttonplus/575c35ba-482e-4d6c-8b6a-48fd6db07198/time

\* 2026-05-14T10:25:00.824Z

publishMQTTMessage: homey_buttonplus/de2e18c5-6a4e-49d3-97d5-09f3c1b3c365/date, donderdag 14 mei 2026, ignored, same as previous value

\* 2026-05-14T10:25:00.825Z

publishMQTTMessage: 12:25 to topic buttonplus/de2e18c5-6a4e-49d3-97d5-09f3c1b3c365/time

\* 2026-05-14T10:25:00.835Z

Capability changed: Woonkamer, time, 12:25

\* 2026-05-14T10:25:00.837Z

Capability changed: Keuken, time, 12:25

\* 2026-05-14T10:25:00.838Z

publishMQTTMessage: homey_buttonplus/575c35ba-482e-4d6c-8b6a-48fd6db07198/time, 12:25, ignored, same as previous value

\* 2026-05-14T10:25:00.839Z

publishMQTTMessage: homey_buttonplus/de2e18c5-6a4e-49d3-97d5-09f3c1b3c365/time, 12:25, ignored, same as previous value

\* 2026-05-14T10:25:00.840Z

publishMQTTMessage: homey_buttonplus/575c35ba-482e-4d6c-8b6a-48fd6db07198/time, 12:25, ignored, same as previous value

\* 2026-05-14T10:25:00.840Z

publishMQTTMessage: homey_buttonplus/de2e18c5-6a4e-49d3-97d5-09f3c1b3c365/time, 12:25, ignored, same as previous value

\* 2026-05-14T10:25:01.050Z

Variable c026edd2-672b-4101-9e97-ade40111a7f6 (day_cost_imp) updated to 13.356059476297

\* 2026-05-14T10:25:01.058Z

Variable e5b46aa9-3dd4-4336-874d-a7fa5870aee3 (day_cost_exp) updated to -0.020522851544449

\* 2026-05-14T10:25:01.068Z

Variable a796daa9-20fd-46e7-a148-ded4a7c55575 (day_cost) updated to 13.335536624753

\* 2026-05-14T10:25:01.236Z

Send log error: read ECONNRESET

\* 2026-05-14T10:25:04.843Z

Send log error: read ECONNRESET

\* 2026-05-14T10:25:06.269Z

MQTTclient.on message: buttonplus/btn_9284f8/sensor/sens1, 21.317

\* 2026-05-14T10:25:07.717Z

MQTTclient.on message: buttonplus/btn_91832c/sensor/sens1, 22.021

\* 2026-05-14T10:25:08.185Z

Send log error: read ECONNRESET

\* 2026-05-14T10:25:11.037Z

Variable c026edd2-672b-4101-9e97-ade40111a7f6 (day_cost_imp) updated to 13.356059476297

\* 2026-05-14T10:25:11.051Z

Variable e5b46aa9-3dd4-4336-874d-a7fa5870aee3 (day_cost_exp) updated to -0.02052637435556

\* 2026-05-14T10:25:11.064Z

Variable a796daa9-20fd-46e7-a148-ded4a7c55575 (day_cost) updated to 13.335533101941

\* 2026-05-14T10:25:16.576Z

MQTTclient.on message: buttonplus/btn_9284f8/sensor/sens1, 21.312

\* 2026-05-14T10:25:18.022Z

MQTTclient.on message: buttonplus/btn_91832c/sensor/sens1, 22.022

\* 2026-05-14T10:25:21.030Z

Variable c026edd2-672b-4101-9e97-ade40111a7f6 (day_cost_imp) updated to 13.35605996548

\* 2026-05-14T10:25:21.048Z

Variable e5b46aa9-3dd4-4336-874d-a7fa5870aee3 (day_cost_exp) updated to -0.02052637435556

\* 2026-05-14T10:25:21.052Z

Variable a796daa9-20fd-46e7-a148-ded4a7c55575 (day_cost) updated to 13.335533591124

\* 2026-05-14T10:25:26.879Z

MQTTclient.on message: buttonplus/btn_9284f8/sensor/sens1, 21.315

\* 2026-05-14T10:25:28.329Z

MQTTclient.on message: buttonplus/btn_91832c/sensor/sens1, 22.024

\* 2026-05-14T10:25:31.045Z

Variable c026edd2-672b-4101-9e97-ade40111a7f6 (day_cost_imp) updated to 13.35605996548

\* 2026-05-14T10:25:31.057Z

Variable e5b46aa9-3dd4-4336-874d-a7fa5870aee3 (day_cost_exp) updated to -0.020527975633338

\* 2026-05-14T10:25:31.060Z

Variable a796daa9-20fd-46e7-a148-ded4a7c55575 (day_cost) updated to 13.335531989847

\* 2026-05-14T10:25:31.691Z

Send log error: read ECONNRESET

\* 2026-05-14T10:25:35.341Z

Send log error: read ECONNRESET

\* 2026-05-14T10:25:37.209Z

MQTTclient.on message: buttonplus/btn_9284f8/sensor/sens1, 21.322

\* 2026-05-14T10:25:38.633Z

MQTTclient.on message: buttonplus/btn_91832c/sensor/sens1, 22.027

\* 2026-05-14T10:25:38.851Z

Send log error: read ECONNRESET

\* 2026-05-14T10:25:41.032Z

Variable c026edd2-672b-4101-9e97-ade40111a7f6 (day_cost_imp) updated to 13.356060943847

\* 2026-05-14T10:25:41.041Z

Variable e5b46aa9-3dd4-4336-874d-a7fa5870aee3 (day_cost_exp) updated to -0.020527975633338

\* 2026-05-14T10:25:41.050Z

Variable a796daa9-20fd-46e7-a148-ded4a7c55575 (day_cost) updated to 13.335532968214

\* 2026-05-14T10:25:42.377Z

Send log error: read ECONNRESET

\* 2026-05-14T10:25:45.634Z

Send log error: read ECONNRESET

\* 2026-05-14T10:25:47.513Z

MQTTclient.on message: buttonplus/btn_9284f8/sensor/sens1, 21.316

\* 2026-05-14T10:25:48.938Z

MQTTclient.on message: buttonplus/btn_91832c/sensor/sens1, 22.028

\* 2026-05-14T10:25:51.046Z

Variable c026edd2-672b-4101-9e97-ade40111a7f6 (day_cost_imp) updated to 13.356060943847

\* 2026-05-14T10:25:51.052Z

Variable e5b46aa9-3dd4-4336-874d-a7fa5870aee3 (day_cost_exp) updated to -0.020528616144449

\* 2026-05-14T10:25:51.064Z

Variable a796daa9-20fd-46e7-a148-ded4a7c55575 (day_cost) updated to 13.335532327703

\* 2026-05-14T10:25:57.817Z

MQTTclient.on message: buttonplus/btn_9284f8/sensor/sens1, 21.318

\* 2026-05-14T10:25:59.241Z

MQTTclient.on message: buttonplus/btn_91832c/sensor/sens1, 22.021

\* 2026-05-14T10:26:00.828Z

publishMQTTMessage: homey_buttonplus/575c35ba-482e-4d6c-8b6a-48fd6db07198/date, donderdag 14 mei 2026, ignored, same as previous value

\* 2026-05-14T10:26:00.829Z

publishMQTTMessage: 12:26 to topic buttonplus/575c35ba-482e-4d6c-8b6a-48fd6db07198/time

\* 2026-05-14T10:26:00.830Z

publishMQTTMessage: homey_buttonplus/de2e18c5-6a4e-49d3-97d5-09f3c1b3c365/date, donderdag 14 mei 2026, ignored, same as previous value

\* 2026-05-14T10:26:00.831Z

publishMQTTMessage: 12:26 to topic buttonplus/de2e18c5-6a4e-49d3-97d5-09f3c1b3c365/time

\* 2026-05-14T10:26:00.896Z

Capability changed: Woonkamer, time, 12:26

\* 2026-05-14T10:26:00.897Z

publishMQTTMessage: homey_buttonplus/575c35ba-482e-4d6c-8b6a-48fd6db07198/time, 12:26, ignored, same as previous value

\* 2026-05-14T10:26:00.898Z

publishMQTTMessage: homey_buttonplus/de2e18c5-6a4e-49d3-97d5-09f3c1b3c365/time, 12:26, ignored, same as previous value

\* 2026-05-14T10:26:00.900Z

Capability changed: Keuken, time, 12:26

\* 2026-05-14T10:26:00.905Z

publishMQTTMessage: homey_buttonplus/575c35ba-482e-4d6c-8b6a-48fd6db07198/time, 12:26, ignored, same as previous value

\* 2026-05-14T10:26:00.906Z

publishMQTTMessage: homey_buttonplus/de2e18c5-6a4e-49d3-97d5-09f3c1b3c365/time, 12:26, ignored, same as previous value
{
  "de2e18c5-6a4e-49d3-97d5-09f3c1b3c365_de2e18c5-6a4e-49d3-97d5-09f3c1b3c365_previous_page_button": {
    "id": "previous_page_button"
  },
  "de2e18c5-6a4e-49d3-97d5-09f3c1b3c365_de2e18c5-6a4e-49d3-97d5-09f3c1b3c365_next_page_button": {
    "id": "next_page_button"
  },
  "de2e18c5-6a4e-49d3-97d5-09f3c1b3c365_de2e18c5-6a4e-49d3-97d5-09f3c1b3c365_time": {
    "id": "time"
  },
  "de2e18c5-6a4e-49d3-97d5-09f3c1b3c365_de2e18c5-6a4e-49d3-97d5-09f3c1b3c365_date": {
    "id": "date"
  },
  "b42f5e2c-6a34-4560-9d9b-f0e764f0d210_b42f5e2c-6a34-4560-9d9b-f0e764f0d210_speaker_track": {
    "id": "speaker_track"
  },
  "5a90af88-9b4f-41b6-947c-9b27dcb0a59b_5a90af88-9b4f-41b6-947c-9b27dcb0a59b_target_flow": {
    "id": "target_flow"
  },
  "575c35ba-482e-4d6c-8b6a-48fd6db07198_575c35ba-482e-4d6c-8b6a-48fd6db07198_time": {
    "id": "time"
  },
  "575c35ba-482e-4d6c-8b6a-48fd6db07198_575c35ba-482e-4d6c-8b6a-48fd6db07198_date": {
    "id": "date"
  },
  "cc0d5d73-9bfb-4efd-907d-dab3a5f76e75_cc0d5d73-9bfb-4efd-907d-dab3a5f76e75_speaker_album": {
    "id": "speaker_album"
  }
}

I’m wondering if you are just hitting a memory limit on the Button+.

I just managed to break mine by adding too many svg images (7 in total). It locked up the Button+ completely so even trying to factory reset it was tricky. I removed a couple if images and that improved things a bit as I could then switch pages, but it wouldn’t communicate with Homey or the browser. When I connected the Button+ to my PC and monitored the console output, I could see that it didn’t have enough memory to create a buffer for the network transmission. After removing one more image it started working again.

I only have V1 units, which have less memory than your V2 units, so you should be able to push it a bit further, but that could be the cause of your problems.

hi Adian,

that would be strange as I dont push a lot of SVGs (at this config it were 4).
Rutger mentioned that V2 would have a lot more Ram and could go have more info so I’m very curious about this one.

What I also don’t understand is the button panel still retieved data published from its own sensor, picked that up by mqtt topic which needs broker connection. Only thing that seems to break is the APP breaking the relation to the Homey devices.

I also noticed a “no changes” messages so the app seems to think nothing has to be updated? How is the first “run” after reboot. Does it compare to the latest (and stored) value or does it initially send all data at start of Homey devices?

Best regards

The app keeps a log of the values from each device. At start-up the log is empty, so everything is sent and starts filling the log.

Hi Adrian,

sorry for the ongoing topic. I’ve created a flow in which, 5 min after Homey Reboot, the Button+ configs are (re) applied. This makes the panels work for now, also after Himey reboots, but its not a long lasting solution (persistent storage?).

best regards,

I have published another test version 0.7.29.

This has several new error traps plus it should retry to registers for capability change notifications if they fail. It looks like when Homey restarts it’s possible for that to fail if the Button+ app is run before the other apps that are being diaplayed.

Hi Adrian,

I recieve lots of broker errors:

2026-05-19T00:01:08.498Z
setupMQTTClient.onError: connect ECONNREFUSED 192.168.3.90:1883
Error: connect ECONNREFUSED 192.168.3.90:1883
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1637:16)

2026-05-19T00:01:31.456Z
setupMQTTClient.onConnect ‘buttonplus/btn_9284f8/brightness’ error: Connection closed
Error: Connection closed
at /app/mqtt/index.js:1:113736
at Array.forEach ()
at MqttClient._flushVolatile (/app/mqtt/index.js:1:113632)
at Socket. (/app/mqtt/index.js:1:105756)
at Socket.emit (node:events:531:35)
at TCP. (node:net:346:12)

After (re)applying the display config (in the Homey App configuration) the thing starts again.

What broker are you using?

hi Adrian,

I’m now using the https://homey.app/nl-nl/app/nl.scanno.mqttbroker/MQTT-Broker/

This because is also has the home assistance capability.

The error is ECONNREFUSED, so that means the broker is refusing. It could be a Homey issue. Have you tried using localhost in the URL?

I must admit, I tend to use a broker on my NAS as it takes a bit of load of of Homey and have a lot more processing power.

hi Adrian,

I dont understand. If I reapply the configs then in just works (using the same and unchanged broker).

I have a 4 node proxmox cluster but I just want to reduce components / points of failure.

I am confused as well because applying the config is just sending the new information to the panels and doesn’t affect the MQTT part. The MQTT client, and broker if used, are setup when the app is installed or if you change the broker settings. When you reapply the configs, the broker settings are not changed, only the JSON object is setup and sent to the Button+.

I presume you are using the test version still (0.7.29)?

One change that I made in there was to retry the MQTT connection if it failed whereas before it would just not connect. If the broker is running on Homey then it is very possible that the initial connection could fail when Homey is restarted as the broker app might not have started before the Button+ app.