Read the statement by Michael Teeuw here.
MMM-SunnyPortal Solar Module
- 
 probably a developer problem… don’t know the module at all 
- 
 Hi, It seems that the sunnyportal website is very picky about which user-agent is trying to connect to their web server. I just changed the user-agent string on line 61 of the file node_helper.js 
 from‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0’, to ‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0’, And now I am able to login again. I will try to work out some better code to prevent this from happening in the future. Can somebody else verify if this solution works? Regards, 
 Linuxtuxie
- 
 @linuxtuxie thank you will try it tomorrow 
- 
 Thanks for this great module. I have a problem on the loading. mm-error.log [2020-06-22 17:30:35.669] [ERROR] (node:2694) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. [2020-06-22 17:30:35.671] [ERROR] (node:2694) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. [2020-06-22 17:30:36.721] [ERROR] Unable to fetch login page: Error: certificate has expired at TLSSocket.onConnectSecure (_tls_wrap.js:1317:34) at TLSSocket.emit (events.js:200:13) at TLSSocket._finishInit (_tls_wrap.js:792:8) at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:606:12) { code: 'CERT_HAS_EXPIRED' } [2020-06-22 17:30:36.741] [ERROR] Unable to fetch login page: Error: certificate has expired at TLSSocket.onConnectSecure (_tls_wrap.js:1317:34) at TLSSocket.emit (events.js:200:13) at TLSSocket._finishInit (_tls_wrap.js:792:8) at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:606:12) { code: 'CERT_HAS_EXPIRED' } [2020-06-22 17:30:36.747] [ERROR] Unable to fetch login page: Error: certificate has expired at TLSSocket.onConnectSecure (_tls_wrap.js:1317:34) at TLSSocket.emit (events.js:200:13) at TLSSocket._finishInit (_tls_wrap.js:792:8) at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:606:12) { code: 'CERT_HAS_EXPIRED' } [2020-06-22 17:30:39.469] [ERROR] TypeError: Cannot read property 'statusCode' of undefined at Request._callback (/home/pi/MagicMirror/modules/MMM-SunnyPortal/node_helper.js:101:46) at self.callback (/home/pi/MagicMirror/modules/MMM-SunnyPortal/node_modules/request/request.js:185:22) at Request.emit (events.js:200:13) at Request.onRequestError (/home/pi/MagicMirror/modules/MMM-SunnyPortal/node_modules/request/request.js:877:8) at ClientRequest.emit (events.js:200:13) at TLSSocket.socketErrorListener (_http_client.js:402:9) at TLSSocket.emit (events.js:200:13) at emitErrorNT (internal/streams/destroy.js:91:8) at emitErrorAndCloseNT (internal/streams/destroy.js:59:3) at processTicksAndRejections (internal/process/task_queues.js:84:9)So if I read correctly, I see that Buffer() is depreciate. 
 But It’s also write something strange with the certificate. In the mm-out.log I see more information:0|mm | [2020-06-22 17:26:43.303] [LOG] SocketNotification START_SUNNYPORTAL received for the first time...setting updateInterval to 900000ms 0|mm | [2020-06-22 17:26:44.113] [LOG] Refreshed access token because it has expired. Expired at: 17:26:43 now is: 17:26:44 0|mm | [2020-06-22 17:26:44.147] [LOG] Refreshed access token because it has expired. Expired at: 18:26:44 now is: 17:26:44What can I do to resolve this case? 
 I already try to uninstall and re-install all, with npm install or ./install_deps.sh or the 3 npm install request / flow / chart but it doesn’t works.Any idea? Thanks for your help 
- 
 Thanks to hervidero the code has been altered so that it ignores the provided SSL Certificate. Hervidero also made the charts a little bit better and wrote some code to make sure you can’t set an updateInterval < 15 minutes. This release also includes the User-Agent change suggested in the previous comment The latest release can be fetched here 
 https://github.com/linuxtuxie/MMM-SunnyPortalRegards, 
 Linuxtuxie
- 
 @linuxtuxie 
 Hello , i try to run the SunnyPortal module, but still no result. I´ve reinstalled the Pi severl times , down to a fresh image with no other modules, but i get only the loading view. thats all.Any idea what i have to do ? error message from PM2.log 
 Login Failed, no redirect to Dashboard or UserProfile/FixedPages/HoManEnergyRedesign.aspx
- 
 Hi icemanmw, It seems that your installation is redirecting you to the following page: /FixedPages/HoManEnergyRedesign.aspx instead of the ones we already know of (DASHBOARD_URL & USERPROFILE_URL ) In to code we are checking if the returned HTTP redirect matches the DASHBOARD_URL or USERPROFILE_URL You could try to use the below code in the node_helper.js script to add this page - 
Add the HOMAN_URL variable at line 21 
 var HOMAN_URL = ‘/FixedPages/HoManEnergyRedesign.aspx’;
- 
Change the code starting from line 99 
 // Hack to check for login. Should forward to dashboard.
 if(httpResponse.headers.location && httpResponse.headers.location === DASHBOARD_URL) {
 console.log(“SUCCESSFULLY LOGGED IN TO DASHBOARD”);
 callback(err, jar);
 } else if(httpResponse.headers.location && httpResponse.headers.location === USERPROFILE_URL) {
 console.log(“SUCCESSFULLY LOGGED IN TO USERPROFILE”);
 callback(err, jar);
 } else if(httpResponse.headers.location && httpResponse.headers.location === HOMAN_URL) {
 console.log(“SUCCESSFULLY LOGGED IN TO HOMAN”);
 callback(err, jar);
 } else {
 console.log("Login Failed, no redirect to Dashboard, UserProfile or homan "+ httpResponse.headers.location);
 callback(new Error(‘Login Failed, no redirect to Dashboard, UserProfile or homan’));
 }
 Can you let us know the results? Regards, 
 Linuxtuxie
- 
- 
 Hi linuxtuxie, 
 sorry fore my late response . I was a few days in Austria.
 Nevertheless i tried today your proposal and it looks much better. Now i see that : 
- 
 I’ve the same issue. I try the update in the code, adding the httpResponse.headers.location in the log => it’s “undefined” 
 (and http result : 200.)With the new version of the module, I’ve this log: [2020-11-23 12:26:02.231] [LOG] Login Failed, no redirect to any of the known url's /FixedPages/Dashboard.aspx, /Templates/UserProfile.aspx, /FixedPages/HoManEnergyRedesign.aspx [2020-11-23 12:26:02.233] [LOG] You are being redirected to the yet unkown url: undefinedIn my browser I see on the homepage a pop-up for a new SMA application. Maybe that can generate another URL ? I tried to cancel it to see if it’s the problem but … nope :( Still looking for a solution. 
- 
 Hi Snake-Darkangel, Did you use the latest code listed at https://github.com/linuxtuxie/MMM-SunnyPortal ? More specifically the piece of code listed in the file node_helper.js is important. SunnyPortal seems to be very picky when it comes to the browser which makes a connection to there website. I recently updated the user-agent to the latest Firefox version as shown below: headers : { 
 // We need to simulate a Browser which the SunnyPortal accepts…here I am Using Firefox 82.0.3 (64-bit) for Windows
 ‘User-Agent’: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0’,
 },User SkyFocusNL even used another user-agent to get things working 
 https://forum.magicmirror.builders/topic/14019/mmm-sunnyportal-not-loading/3
 maybe you can give that solution a try and provide us some feedback ?Regards, 
 Linuxtuxie
