Read the statement by Michael Teeuw here.
Struggling with Weather... module
-
@sdetweil
:grinning_face_with_smiling_eyes: always the way. -
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
-
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 -
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)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////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'
-
any ideas?? @sdetweil
Is this portion of the module broke for me, do i need to use a different service?
-
@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
-
@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 😄
-
apiBase commented out in config.
server restart, and browser log request, showing loaded weather modules
i still have “loading” in module locationlooking 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:
)/root/MagicMirror/modules/default/weather/weather.js
(Edit: this file is set to “openweathermap”, changing to “ukmetofficedatahub”)
server restart, no effect noted :(
-
-
@D3dl3g you ONLY setup from config.js
please try with NO apibase set