nlrb / com.tclcode.otgw

OpenTherm Gateway application for Homey
https://apps.athom.com/app/com.tclcode.otgw
10 stars 3 forks source link

Homey 7.4.x makes Otgw app crash a few times a day #25

Closed mruiter closed 7 months ago

mruiter commented 2 years ago

Dear Ramon,

since 7.4.x athom updated to the new node.js version and the app crashes a few times a day . You should have received some crash reports from my homey on 7.4.1

I think it’s a no catches promis return but I guess the crash reports have some more info then this

68BD85A6-A315-490F-9B23-8AD69CFD1E58

nlrb commented 2 years ago

Hi Marco,

The problem is that a temperature measurement returns two values as a string (eg 62 40) and it should return a number. Any idea which OpenTherm variable this is?

BTW: I think I’ve fixed it in my code base already, but never made a release out of it.

mruiter commented 2 years ago

Good to see you’re still around 😍

I will try to sideload the latest codebase and will run it under cli to see what variable I could be if it’s still crashing hope to be home again tomorrow

Verstuurd vanaf mijn iPhone

Op 26 apr. 2022 om 19:29 heeft Ramón Baas @.***> het volgende geschreven:

 Hi Marco,

The problem is that a temperature measurement returns two values as a string (eg 62 40) and it should return a number. Any idea which OpenTherm variable this is?

BTW: I think I’ve fixed it in my code base already, but never made a release out of it.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.

nlrb commented 2 years ago

I will first need to commit the code to GitHub. Likely this is related to #22. As workaround make sure these are not part of a sensor.

nlrb commented 2 years ago

Can you try with the latest version (v2.1.2)?

mruiter commented 2 years ago

Its running now for a few hours, all is still ok but the crash was once a day so i think i willl need to let it run a few more hours before i can give a "it's fixed" :)

mruiter commented 2 years ago

Sorry to say it crashed again tonight. Exactly the same error. I will see if i can let a PC on while running the cli and hope to catch more on the error Or did you get a new crash report with more info (i guess not)

nlrb commented 2 years ago

Sorry to hear. All crashes I see on 7.4.0/7.4.1 are network related (like in your case above ECONNRESET or ENETUNREACH). I guess that is an issue with 7.4.x.

Zsoltt-dom commented 2 years ago

Dear Ramon,

It crashes for me also. Currently I'm enabling the app only in case I need to control the boiler, then I disable it. May I ask for some crash logs? I'd try to find out how to avoid crashing. :) By the way, this is a great application and thanks for your efforts! :)

MCFurry commented 2 years ago

It crashes constantly for me since homey v7.4.1 also. In the stack trace there are a lot of mentions about "invalid_capability". Isn't this simply related to the speech logic that has been removed in the latest homey firmware? https://firmware.athom.com/

nlrb commented 2 years ago

Indeed as of firmware 7.4.1 there is an abundance of crash logs. Not sure if there is just one cause. I have not upgraded myself as I have no time yet to dive into it.

nlrb commented 2 years ago

I have made some changes to the code: version 2.2.0 is available on GitHub. I haven't upgraded to FW 7.4.1 yet myself. Can you test?

Zsoltt-dom commented 2 years ago

I have made some changes to the code: version 2.2.0 is available on GitHub. I haven't upgraded to FW 7.4.1 yet myself. Can you test?

Sure! I'll install it now and I will give you an update on how it works. :) Thanks for your effort!

mruiter commented 2 years ago

You should have just received a crash report running from the new GitHub version . Sorry to say it still crashed

Verstuurd vanaf mijn iPhone

Op 2 jun. 2022 om 11:39 heeft Zsoltt-dom @.***> het volgende geschreven:

 I have made some changes to the code: version 2.2.0 is available on GitHub. I haven't upgraded to FW 7.4.1 yet myself. Can you test?

Sure! I'll install it now and I will give you an update on how it works. :) Thanks for your effort!

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.

nlrb commented 2 years ago

@mruitr: Nope, did not get a crash log.

Zsoltt-dom commented 2 years ago

It works since yesterday, without a crash.

Zsoltt-dom commented 2 years ago

I can confirm, that it's running without error for two days now on 7.4.1.

Can you submit this version to Homey, as an official release?

nlrb commented 2 years ago

It has been submitted, awaiting approval. test version is available: https://homey.app/a/com.tclcode.otgw/test/

mruiter commented 2 years ago

Verstuurd vanaf mijn iPhone

Op 4 jun. 2022 om 13:52 heeft Ramón Baas @.***> het volgende geschreven:

 It has been submitted, awaiting approval. test version is available: https://homey.app/a/com.tclcode.otgw/test/

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.

mruiter commented 2 years ago



Verstuurd vanaf mijn iPhone

Op 4 jun. 2022 om 13:52 heeft Ramón Baas @.***> het volgende geschreven:  It has been submitted, awaiting approval. test version is available: https://homey.app/a/com.tclcode.otgw/test/

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.

Zsoltt-dom commented 2 years ago

Crashed... Invalid capability at the thermostat driver. :(

nlrb commented 2 years ago

Can you install the test version from the store? Then I can see the crash log. An invalid capability should not lead to a crash.

Zsoltt-dom commented 2 years ago

Sure, I'll install it from here. Thanks for your help! :) I have a screenshot fromm Homey app about the crash. IMG_20220605_204518.jpg

mruiter commented 2 years ago

Just crashed 2 times with the test version from the App Store . Reports should be available there 😄

Verstuurd vanaf mijn iPhone

Op 5 jun. 2022 om 20:44 heeft Zsoltt-dom @.***> het volgende geschreven:

 Sure, I'll install it from here. Thanks for your help! :)

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.

nlrb commented 2 years ago

@mruiter This is your crash log:

2022-06-05 21:31:41 [err] [ManagerDrivers] [thermostat] [74e88253-45f5-450d-ae4c-e1ed16cc1365] Error: invalid_capability
    at Remote Process
    at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/HomeyClient.js:1:308)
    at ManagerDrivers._onDriverEmit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/manager/drivers.js:1:3808)
    at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/Driver.js:1:2797)
    at ThermostatDevice.setCapabilityValue (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/Device.js:1:4502)
    at OTGateway.func (/drivers/thermostat/device.js:35:57)
    at OTGateway.emit (node:events:538:35)
    at OTGateway.setValue (/node_modules/otg-api/index.js:175:12)
    at otgProcessData (/node_modules/otg-api/index.js:676:16)
    at Interface.<anonymous> (/node_modules/otg-api/index.js:100:5)
    at Interface.emit (node:events:526:28)
2022-06-05 21:31:41 [err] [ManagerDrivers] [thermostat] [74e88253-45f5-450d-ae4c-e1ed16cc1365] Error: invalid_capability
    at Remote Process
    at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/HomeyClient.js:1:308)
    at ManagerDrivers._onDriverEmit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/manager/drivers.js:1:3808)
    at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/Driver.js:1:2797)
    at ThermostatDevice.setCapabilityValue (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/Device.js:1:4502)
    at OTGateway.func (/drivers/thermostat/device.js:33:58)
    at OTGateway.emit (node:events:538:35)
    at OTGateway.setValue (/node_modules/otg-api/index.js:175:12)
    at otgProcessData (/node_modules/otg-api/index.js:676:16)
    at Interface.<anonymous> (/node_modules/otg-api/index.js:100:5)
    at Interface.emit (node:events:526:28)
2022-06-05 21:31:41 [err] [ManagerDrivers] [thermostat] [74e88253-45f5-450d-ae4c-e1ed16cc1365] Error: invalid_capability
    at Remote Process
    at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/HomeyClient.js:1:308)
    at ManagerDrivers._onDriverEmit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/manager/drivers.js:1:3808)
    at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/Driver.js:1:2797)
    at ThermostatDevice.setCapabilityValue (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/Device.js:1:4502)
    at OTGateway.func (/drivers/thermostat/device.js:34:59)
    at OTGateway.emit (node:events:538:35)
    at OTGateway.setValue (/node_modules/otg-api/index.js:175:12)
    at otgProcessData (/node_modules/otg-api/index.js:676:16)
    at Interface.<anonymous> (/node_modules/otg-api/index.js:100:5)
    at Interface.emit (node:events:526:28)
2022-06-05 21:31:41 [err] [ManagerDrivers] [thermostat] [74e88253-45f5-450d-ae4c-e1ed16cc1365] Error: invalid_capability
    at Remote Process
    at HomeyClient.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/HomeyClient.js:1:308)
    at ManagerDrivers._onDriverEmit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/manager/drivers.js:1:3808)
    at Object.emit (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/Driver.js:1:2797)
    at ThermostatDevice.setCapabilityValue (/opt/homey-client/system/manager/ManagerApps/AppProcess/node_modules/homey-apps-sdk-v2/lib/Device.js:1:4502)
    at OTGateway.func (/drivers/thermostat/device.js:32:57)
    at OTGateway.emit (node:events:538:35)
    at OTGateway.setValue (/node_modules/otg-api/index.js:175:12)
    at otgProcessData (/node_modules/otg-api/index.js:676:16)
    at Interface.<anonymous> (/node_modules/otg-api/index.js:100:5)
    at Interface.emit (node:events:526:28)
node:events:504
      throw er; // Unhandled 'error' event
      ^

Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:217:20)
Emitted 'error' event on Interface instance at:
    at Socket.onerror (node:readline:265:10)
    at Socket.emit (node:events:538:35)
    at emitErrorNT (node:internal/streams/destroy:157:8)
    at emitErrorCloseNT (node:internal/streams/destroy:122:3)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) {
  errno: -104,
  code: 'ECONNRESET',
  syscall: 'read'
}

The 'invalid_capability' errors are correct (your thermostat will not have these capabilities, these are still set for backward compatibility). However, the errors are caught in a catch and will not crash the app.

In the end you see a 'ECONNRESET'. This is what causes the crash. It is unclear to me where in the stack this happens. There is no trace to any line in the app, so I guess it is in NodeJS or Homey core. The app does catch socket errors, but that event is not triggered in this case.

Not sure which version of NodeJS Homey is using for apps, but when you Google there seem to be more of these issues on Node 16 (or as found in one issue: 'Upgrading Node to 16.15 from 16.14 solved the issue for us.').

Zsoltt-dom commented 2 years ago

OK, now it's up and running for more than 48 hours without crashing. I used the latest from Github.

mruiter commented 2 years ago

I just installed the latest aatp firmware release . This has improved error messages on the new sdkv3 and node versions so hopefully it will now catch the underlaying non displaying error .The current is just the default error when nothing is displayed / catched Verstuurd vanaf mijn iPhoneOp 8 jun. 2022 om 15:39 heeft Zsoltt-dom @.***> het volgende geschreven: OK, now it's up and running for more than 48 hours without crashing. I used the latest from Github.

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

mruiter commented 1 year ago

I’m still having multiple crashes on the GitHub version . Less often but still a few . Im it at home and can’t cut copy paste in the athom iOS app so I hope you can do anything with the screenshot of the crash report . I will make one when it crashes again

Verstuurd vanaf mijn iPhone

Op 4 jun. 2022 om 08:32 heeft Zsoltt-dom @.***> het volgende geschreven:

 I can confirm, that it's running without error for two days now on 7.4.1.

Can you submit this version to Homey, as an official release?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.

nlrb commented 1 year ago

Indeed I still get occasional crash reports for the app for v2.2.0. They all end with a network error in NodeJS (e.g. EHOSTUNREACH, ECONNREFUSED, EPIPE, ECONNRESET).

I have no way to reproduce this and this does not happen in my setup.

It does seem to have started when Homey upgraded to a NodeJS with ipv6 support. I'm still hopeful that once Athom upgrades to a newer version of NodeJS the errors will disappear.

nlrb commented 1 year ago

I think I finally found the issue. Should be fixed in v3.0.0 (available as test version).