Read the statement by Michael Teeuw here.
MMM-HomeAssistant-Sensors (Development) - Show your HA Sensors on your Mirror
-
@ivanov_d Interesting, I’m not using SSL in HA (I have a Reverse-proxy) that SSL:s everything… So, internally I can get to HA via http (or https) but externally I’ll always go through the reverse-proxy (and SSL). However, the development MM works both with and without SSL. But my real MM now don’t work with either… Darn! :)
What I CAN do, is use curl from ssh on the real MM and get the “status” from all sensors with this…curl -X GET -H "Authorization: Bearer VeRy-LoNg-API-ToKen" -H "Content-Type: application/json" http://ha-IP:8123/api/states
And it lists everything… Hm…
-
@snille I think you struck the same obstacle as me, mate :D My setup is a bit different as I am not using reverse proxy - it is either SSL or no SSL within the local network and outside of it.
I am looking at the JS code right now … it might have something to do with how the URL is structured as it might not cover both cases, but I have to confirm that. -
@Snille I think that I found out what the issue might be (at least for my case). I turned on debugging and here is what popped-up:
0|MagicMirror | [19.02.2022 12:34.16.715] [ERROR] 0|MagicMirror | MMM-homeassistant-sensors ERROR: Error: certificate has expired 0|MagicMirror | at TLSSocket.onConnectSecure (_tls_wrap.js:1501:34) 0|MagicMirror | at TLSSocket.emit (events.js:315:20) 0|MagicMirror | at TLSSocket._finishInit (_tls_wrap.js:936:8) 0|MagicMirror | at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:710:12) { 0|MagicMirror | code: 'CERT_HAS_EXPIRED' 0|MagicMirror | } 0|MagicMirror | [19.02.2022 12:34.16.721] [ERROR] 0|MagicMirror | Whoops! There was an uncaught exception... 0|MagicMirror | [19.02.2022 12:34.16.727] [ERROR] 0|MagicMirror | TypeError: Cannot read property 'statusCode' of undefined 0|MagicMirror | at Request._callback (/home/pi/MagicMirror/modules/MMM-homeassistant-sensors/node_helper.js:22:77) 0|MagicMirror | at self.callback (/home/pi/MagicMirror/modules/MMM-homeassistant-sensors/node_modules/request/request.js:185:22) 0|MagicMirror | at Request.emit (events.js:315:20) 0|MagicMirror | at Request.onRequestError (/home/pi/MagicMirror/modules/MMM-homeassistant-sensors/node_modules/request/request.js:877:8) 0|MagicMirror | at ClientRequest.emit (events.js:315:20) 0|MagicMirror | at TLSSocket.socketErrorListener (_http_client.js:426:9) 0|MagicMirror | at TLSSocket.emit (events.js:315:20) 0|MagicMirror | at emitErrorNT (internal/streams/destroy.js:92:8) 0|MagicMirror | at emitErrorAndCloseNT (internal/streams/destroy.js:60:3) 0|MagicMirror | at processTicksAndRejections (internal/process/task_queues.js:84:21)
The certificate is valid though:
-
@snille said in MMM-HomeAssistant-Sensors (Development) - Show your HA Sensors on your Mirror:
curl -X GET -H “Authorization: Bearer VeRy-LoNg-API-ToKen” -H “Content-Type: application/json” http://ha-IP:8123/api/states
Same here … I get all states with the following URLs:
https://myhome.org:443/api/states
https://myhome/api/statesHowever, when I try to use the local IP I can’t and that is normal as the certificate is not for that domain:
pi@raspberrypi:~ $ curl -X GET -H "Authorization: Bearer long-token" -H "Content-Type: application/json" https://192.168.1.19:443/api/states curl: (7) Failed to connect to 192.168.1.19 port 443: Connection refused pi@raspberrypi:~ $ curl -X GET -H "Authorization: Bearer long-token" -H "Content-Type: application/json" https://192.168.1.19:8123/api/states curl: (60) SSL: no alternative certificate subject name matches target host name '192.168.1.19' More details here: https://curl.haxx.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above.
What is wierd though is that although using SSL, the default port is still 8123, however, the connection is secured
-
@ivanov_d Interesting… Maybe it’s a package missing, but that would not explain why the non SSL connections would fail…
I found another ting, if you don’t have the “clock” module enabled, the “moment.js” is not loaded, and therefore errors out my module (that uses the moment function)… So I have to fix that somehow as well… :) -
@snille in my case non-SSL connections don’t fail, only SSL ones. Any idea how to find which package might be missing or outdated? My coding skills are a bit rusty :D
-
@ivanov_d Nah… Not really, never been down the SSL rabbit hole… :) I have just forked this module and “fixed” the things I needed… I hope someone else can give some tips (PR:s)… My javascript skills are not that great ether… :)
-
Now it’s working again… On both mu mirrors… I don’t understand why… I fixed the “moment” problem at least, I hope… Pushed that… But I guess it’s still the SSL problems left. But I can’t replicate it. @Ivanov_d Where did you set the debug flag to get the errors?
-
@snille in the config.js:
-
I finally found out what the issue is. It was an electron bug that is fixed in MM v. 2.18 (I was using an older version). Now everything works.