Read the statement by Michael Teeuw here.
MMM-HomeAssistant-Sensors (Development) - Show your HA Sensors on your Mirror
-
@snille what is the most up-to-date code repo? The one that I pulled from is https://github.com/theskyisthelimit/MMM-homeassistant-sensors.git
Could it be that I have an old code base? I tried with different ports, URL/IP, still the same and still no errors in both logs HA or MM …
EDIT: I tried with another HA instance that I have which doesn’t have SSL enabled and it worked, so now I need to figure out what the difference between the two are :)
Will keep you posted.
-
@ivanov_d Hmm… In my own adventures to find what’s going on, I managed to “break” my real mirror connection to HA (now getting the fetch-error) but my development mirror is still working (against the same HA instance).
I don’t understand what’s going on. :)As for codebase I’m using my own fork: https://github.com/Snille/MMM-homeassistant-sensors.git
Let me know if you get it to work again… :)
-
@snille lol sorry to hear that. I managed to get it to work on my main HA instance by removing SSL from my HA configuration.yaml file:
However, that doesn’t suit my needs as I control my house through my phone over the Internet and I want SSL to be enabled. I am continuing testing. Will keep you posted.
-
@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… :)