• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

MMM-SunnyPortal Solar Module

Scheduled Pinned Locked Moved Requests
23 Posts 7 Posters 7.7k Views 7 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Away
    sdetweil
    last edited by May 1, 2020, 8:16 PM

    probably a developer problem… don’t know the module at all

    Sam

    How to add modules

    learning how to use browser developers window for css changes

    1 Reply Last reply Reply Quote 0
    • L Offline
      linuxtuxie
      last edited by Jun 16, 2020, 7:11 PM

      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

      T 1 Reply Last reply Jun 20, 2020, 7:05 PM Reply Quote 0
      • T Offline
        TheDuDiop @linuxtuxie
        last edited by Jun 20, 2020, 7:05 PM

        @linuxtuxie thank you will try it tomorrow

        1 Reply Last reply Reply Quote 0
        • S Offline
          Snake-Darkangel
          last edited by Jun 22, 2020, 3:43 PM

          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:44
          

          What 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

          L 1 Reply Last reply Jun 26, 2020, 8:59 PM Reply Quote 0
          • L Offline
            linuxtuxie @Snake-Darkangel
            last edited by linuxtuxie Jun 26, 2020, 9:00 PM Jun 26, 2020, 8:59 PM

            @Snake-Darkangel

            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-SunnyPortal

            Regards,
            Linuxtuxie

            I 1 Reply Last reply Jul 10, 2020, 2:51 PM Reply Quote 0
            • I Offline
              icemanmw @linuxtuxie
              last edited by Jul 10, 2020, 2:51 PM

              @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

              L 1 Reply Last reply Jul 13, 2020, 11:25 PM Reply Quote 0
              • L Offline
                linuxtuxie @icemanmw
                last edited by linuxtuxie Jul 13, 2020, 11:26 PM Jul 13, 2020, 11:25 PM

                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

                1 Reply Last reply Reply Quote 0
                • I Offline
                  icemanmw
                  last edited by icemanmw Jul 17, 2020, 2:57 PM Jul 17, 2020, 2:56 PM

                  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 :

                  sunnyportal 2020-07-17 165439.jpg

                  1 Reply Last reply Reply Quote 0
                  • S Offline
                    Snake-Darkangel
                    last edited by Snake-Darkangel Nov 23, 2020, 11:27 AM Nov 23, 2020, 11:22 AM

                    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: undefined
                    

                    In 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.

                    1 Reply Last reply Reply Quote 0
                    • L Offline
                      linuxtuxie
                      last edited by Nov 23, 2020, 8:44 PM

                      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

                      S 1 Reply Last reply Dec 2, 2020, 10:16 PM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 2 / 3
                      • First post
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy