Read the statement by Michael Teeuw here.
CORS policy
-
@bicolorbore586 custom.css is because it doesn’t exist by default. if u used my install script I create it for you
touch ~/MagicMirror/css/custom.css
-
@sdetweil I used the MagicMirror installation instructions (assuming manual install) to install the software.
Have just tried your git fetch origin
But get fatal: Refusing to fetch into current branch refs/heads/develop of none-bare repository.(Sorry, you’re probably shaking your head, but I am a complete noob at all this)
-
@bicolorbore586 there were two choices
manual install
git checkout develop
git pull
npm installor the other
-
I think the cors proxy is not new in the weather module (but in newsfeed) so last release should work.
The cors proxy was not enabled for all weather providers, only for
envcanada
anddarksky
, so it must be enabled in the config forweatherbit
by addinguseCorsProxy: true,
to the weather config. -
@karsten13 ah, I thought we went proxy everywhere
-
had to look in the code again … but may we should set default
true
for all providers … -
@karsten13 getting that way
localhost is usually allowed 0.0.0.0 ( I consider to be a bug to send this anywhere) is not
-
@sdetweil @karsten13 have added in the useCorsProxy: true
Have since updated MagicMirror, now getting
Could not load data … TypeError: Cannot read properties of undefined (reading ‘0’)
which when clicked on shows weatherbit.js
code_text ```/* global WeatherProvider, WeatherObject */ /* MagicMirror² * Module: Weather * Provider: Weatherbit * * By Andrew Pometti * MIT Licensed * * This class is a provider for Weatherbit, based on Nicholas Hubbard's class * for Dark Sky & Vince Peri's class for Weather.gov. */ WeatherProvider.register("weatherbit", { // Set the name of the provider. // Not strictly required, but helps for debugging. providerName: "Weatherbit", // Set the default config properties that is specific to this provider defaults: { apiBase: "https://api.weatherbit.io/v2.0", apiKey: "", lat: 0, lon: 0 }, fetchedLocation: function () { return this.fetchedLocationName || ""; }, fetchCurrentWeather() { this.fetchData(this.getUrl()) .then((data) => { if (!data || !data.data[0] || typeof data.data[0].temp === "undefined") { // No usable data? return;```
Forgive me, again for being a noob, but I didn’t think this required any information in, however having substituted the lat and lon zero’s for my location, still throws up the same and error and points me to the [0] following !data.data
-
@bicolorbore586 never edit our code, all config goes in config.js
u need lat and long (how else does it know where u are)
all numbers and true/false have no quotes
anything with a letter or special character does need quotesu need weatherProvider
apikey
lat
lon
and type (forecast or current)
anduseCorsProxy: true
-
@sdetweil
ok, have put it back to how it was… that was final “can I get this to work, before I ask for further help”
this is my config.jscode_text ``` { module: "weather", position: "top_right", config: { weatherProvider: "weatherbit", type: "current", lat: 5, lon: -1, apiKey: "ab4", useCorsProxy: true } }, { module: "weather", position: "top_right", header: "Weather Forecast", config: { weatherProvider: "weatherbit", type: "forecast", lat: 5, lon: -1, initialLoadDelay: 1, apiKey: "ab4", useCorsProxy: true } },