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

Struggling with Weather... module

Scheduled Pinned Locked Moved Solved Troubleshooting
34 Posts 5 Posters 7.8k Views 6 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 Offline
    sdetweil @D3dl3g
    last edited by Jun 28, 2022, 11:29 AM

    @D3dl3g hm. should have had some info…

    Sam

    How to add modules

    learning how to use browser developers window for css changes

    D 2 Replies Last reply Jun 28, 2022, 12:34 PM Reply Quote 0
    • D Offline
      D3dl3g @sdetweil
      last edited by Jun 28, 2022, 12:34 PM

      @sdetweil
      :grinning_face_with_smiling_eyes: always the way.

      1 Reply Last reply Reply Quote 0
      • D Offline
        D3dl3g @sdetweil
        last edited by D3dl3g Jun 28, 2022, 2:03 PM Jun 28, 2022, 1:56 PM

        @sdetweil

        could it be *js file setup.

        been poking around on the Met Office website

        is this “request” something that could be used

        GET https://api-metoffice.apiconnect.ibmcloud.com/v0/forecasts/point/hourly?latitude=52.################&longitude=-1.################
        Headers:
        Accept: application/json
        X-IBM-Client-Id: e52######################
        X-IBM-Client-Secret: *********
        

        a “Header”

        cache-control: no-cache, no-store, max-age=0, must-revalidate
        content-length: 3634
        content-type: application/json
        expires: 0
        pragma: no-cache
        x-global-transaction-id: 9####################
        x-ratelimit-limit: name=rate-limit-1,360;
        x-ratelimit-remaining: name=rate-limit-1,358;
        

        theres also a “Body” that starts

        {
            "type": "FeatureCollection",
            "features": [
                {
                    "type": "Feature",
                    "geometry": {
                        "type": "Point",
                        "coordinates": [
                            -1.###,
                            52.###,
                            ###
                        ]
                    },
                    "properties": {
                        "requestPointDistance": 736.6499,
                        "modelRunDate": "2022-06-28T13:00Z",
                        "timeSeries": [
                            {
                                "time": "2022-06-28T13:00Z",
                                "screenTemperature": 19.6,
                                "maxScreenAirTemp": 19.6,
                                "minScreenAirTemp": 19.1,
                                "screenDewPointTemperature": 7.7,
                                "feelsLikeTemperature": 16.83,
                                "windSpeed10m": 5.1,
                                "windDirectionFrom10m": 200,
                                "windGustSpeed10m": 11.3,
                                "max10mWindGust": 13.42,
                                "visibility": 24714,
                                "screenRelativeHumidity": 46.06,
                                "mslp": 101420,
                                "uvIndex": 4,
                                "significantWeatherCode": 3,
                                "precipitationRate": 0,
                                "totalPrecipAmount": 0,
                                "totalSnowAmount": 0,
                                "probOfPrecipitation": 1
        

        i hashed out sensitive info BTW, the Long/lat and API Keys

        1 Reply Last reply Reply Quote 0
        • D Offline
          D3dl3g
          last edited by Jun 28, 2022, 8:34 PM

          in addition… looking at “ukmetofficedatahub.js”
          API Base URL looks like this…
          apiBase: “https://api-metoffice.apiconnect.ibmcloud.com/v0/forecasts/point/<hourly/3hourly/daily>”,

          where as the next section down API URL is stated to be
          “https://metoffice.apiconnect.ibmcloud.com/metoffice/production/api”

          seems to be a mismatch although im still looking at where to test that theory…
          i would have hoped which ever way the URL is structured its the JS info thats the important bit, not the structure of the URL

          1 Reply Last reply Reply Quote 0
          • D Offline
            D3dl3g
            last edited by D3dl3g Jun 28, 2022, 11:06 PM Jun 28, 2022, 11:04 PM

            I’m stumped!

            As outlined here

            ukmetofficedatahub.js is set to

                    // Set the default config properties that is specific to this provider
                    defaults: {
                            apiBase: "https://api-metoffice.apiconnect.ibmcloud.com/v0/forecasts/point/daily/",
                            apiKey: "<myID>",
                            apiSecret: " <my secret>",
                            lat: <my lat>,
                            lon: <mylong>,
                            windUnits: "mph"
            

            (lines 50-55)

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            config.js set to

              		weatherProvider: "ukmetofficedatahub",
              		apiBase: "https://api-metoffice.apiconnect.ibmcloud.com/v0/forecasts/point/daily/",
              		apiKey: "<myID>",
              		apiSecret: " <my secret>",
              		lat: <my lat>,
              		lon: <my long>,
             		windUnits: "mph",
             		tempUnits: "metric",
            

            (lines 20-27)

            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            bff556ff-fe1a-46f0-8532-2d07dfce1a35-image.png
            ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            logs are clear… many server restarts…

            i can curl required info and get something vaguely intelligent from the Met office Servers

            curl --request GET \
              --url 'https://api-metoffice.apiconnect.ibmcloud.com/v0/forecasts/point/hourly?excludeParameterMetadata=false&includeLocationName=true&latitude=<my lat>&longitude=<my long>' \
              --header 'X-IBM-Client-Id:  <myID>' \
              --header 'X-IBM-Client-Secret: <my secret>' \
              --header 'accept: application/json'
            

            44b19423-474c-4042-a8ff-69c32a3079a8-image.png

            1 Reply Last reply Reply Quote 0
            • D Offline
              D3dl3g
              last edited by Jun 28, 2022, 11:07 PM

              any ideas?? @sdetweil

              Is this portion of the module broke for me, do i need to use a different service?

              S 1 Reply Last reply Jun 28, 2022, 11:26 PM Reply Quote 0
              • S Offline
                sdetweil @D3dl3g
                last edited by sdetweil Jun 28, 2022, 11:28 PM Jun 28, 2022, 11:26 PM

                @D3dl3g I don’t KNOW for sure… the provider has its own apiBase set…

                * 		apiBase: "https://api-metoffice.apiconnect.ibmcloud.com/metoffice/production/v0/forecasts/point/",
                

                so comment that out in your config
                add // to the start of the line with apiBase:

                also, as this doesn’t have a node helper, we should be looking in the browser logs

                ctrl-shift-i, select the console tab and put

                weath
                

                in the filter field

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                D 1 Reply Last reply Jun 29, 2022, 8:35 AM Reply Quote 0
                • D Offline
                  D3dl3g @kayakbabe
                  last edited by D3dl3g Jun 29, 2022, 7:49 AM Jun 29, 2022, 7:49 AM

                  @kayakbabe
                  For some reason i glossed over your reply, apologies.

                  Trying with a different provider will be my plan of attack today. After running some diag, as sam has suggested.

                  I find the met office to be insanely accurate for my area when compared to other online weather services. Hence my desire to use it.

                  One of the reasons my posts are peppered with pictures and code is to help ensure i am setting it up correctly. I didnt realise about the .js in the weather folder for 2 days i thought it was all set up from config.js…

                  As it stands im convinced i have it set right, now, but its totally possible i have a comma in the wrong place. As im a total n00b with JS. i know sometimes it is difficult to see the forest through the trees and a fresh set of eyes can help.

                  Thank-you for your reply, looks like im experiencing option 4 😄

                  S 1 Reply Last reply Jun 29, 2022, 11:52 AM Reply Quote 0
                  • D Offline
                    D3dl3g @sdetweil
                    last edited by D3dl3g Jun 29, 2022, 9:25 AM Jun 29, 2022, 8:35 AM

                    @sdetweil,

                    apiBase commented out in config.
                    c0056a38-65e2-49ff-a3d4-5324c5cca865-image.png

                    server restart, and browser log request, showing loaded weather modules
                    b10c9006-1351-4cfe-865b-26def301bf3b-image.png
                    i still have “loading” in module location

                    looking at source gives me the impression that i need to go and look at 2 more .js files. Previously i have been working with /default/weather/ukmetofficedatahub.js and /MagicMirror/config/config.js

                    ill see if thes hold any info:
                    /root/MagicMirror/modules/default/weather/weatherproviders.js
                    (Edit: //weather provider properties: null, modified to:
                    8bca5c6c-09d9-4987-8940-0233b5e827c7-image.png )

                    /root/MagicMirror/modules/default/weather/weather.js
                    (Edit: this file is set to “openweathermap”, changing to “ukmetofficedatahub”

                    a2763dbe-9a57-47bc-b036-505bd38e8e4e-image.png )

                    server restart, no effect noted :(

                    1 Reply Last reply Reply Quote 0
                    • D Offline
                      D3dl3g
                      last edited by D3dl3g Jun 29, 2022, 9:26 AM Jun 29, 2022, 9:25 AM

                      @Kayababe @sdetweil

                      openweathermap works… albiet the location its suggested is 3 miles down the road. (ukmetoffice has data for 2 streets away)

                      1625ac6e-c4f6-43ec-a86a-9c6cb7a05d31-image.png

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 2 / 4
                      2 / 4
                      • First post
                        17/34
                        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