@rikko14 While it is not being actively supported at the moment, I am currently using MMM-YouTube for this purpose. You can find it here:
Read the statement by Michael Teeuw here.
Posts
-
RE: a youtube video streaming on my MM
-
RE: Weather not displaying envcanada provider
I notice you have provCode commented out in your config file. The envcanada provider requires that parm, so uncomment and see if your problem is resolved.
-
RE: Introduce yourself!
Hello! My name is Kevin and I am from London, Ontario, Canada. I’m 58 years old and recently retired after 37 years in the IT profession - started as a software developer and then somehow morphed into a Senior Architect designing various things such contact centres and voice applications. I also very occasionally teach IT courses at our local college. I’ve been married for over 30 years and have 2 grown children.
I enjoy tinkering (without always knowing what I’m doing), hiking, traveling, and playing hockey because Canada :)
My COVID project has been to build a ‘family info screen’ using the MM framework. It is hanging in my kitchen and currently doing things such display family photos from a local NAS, show local weather, show local waste collection calendar, etc. all with voice support. I will say that if not for the patience of this community, I would not have been successful with this build! My current project is to create a new provider for the default weather module to pull data from Environment Canada - seen running here on my MM build:

I look forward to adding more functionality to my display in the future!
-
RE: MMM-GoogleAssistant : Jarvis don't listen my calls !
@tom_labhidouille In your micConfig block you have:
device: “plughw:2”,
I think you could try this instead:
device: “plughw:2,0”,
-
RE: GIT and updates to Weather Module
Thank you both so much for your guidance! It is much appreciated and I believe I understand what I need to do.
-
GIT and updates to Weather Module
Hello! I just need a sanity-check from the smart people on this forum to make sure I understand what I’m doing:
I’ve built/tested a new Provider for the (new) default weather module. This Provider allows the use of Environment Canada current/forecast weather data on MM. My code also requires a few small tweaks to existing code in the weather module.
While I’m an (ahem) older Developer, I don’t have a ton of experience with Github, so I just want to make sure I understand the steps to submit my updates to the default weather module. Here’s my understanding of things:
-
Fork my own copy of the MagicMirror repository into my Github account.
-
Make my changes - i.e. update the existing modules that need changes plus add my new Provider code
-
For each module a I change, I need to Commit to the master branch (assuming this is the master for my own forked copy of MM repository)
-
Once I have made/committed all my changes, I create a Pull Request that outlines what I have done. I assume a single PR will cover all the scripts I am touching?
-
The PR will be assessed, with maybe questions asked, additional updates requested, whatever. If accepted, my changes in my MM repository will be merged into the main MM repository
Do I have all this right? Sorry for the newbie questions - just new to this stuff and don’t want to screw up.
Thanks!
-
-
RE: Weather module - creating new Provider
@karsten13 Thanks for highlighting this! I did a quick-and-dirty test in my code using this proxy and I’m now able to pull back the data from the EnvCanada provider! I will likely need to override the default fetchData function since it expects to JSON.parse the Provider data. This is not quite what I need since EnvCanada just provides an XML document to parse (JSON.parse fails…). But now I can at least start playing around some more.
-
RE: Weather module - creating new Provider
@ashishtank Yes I agree 100%. The optimal solution is likely to push at least some of the fetchData instance function’s responsibility into node_helper. Assuming this can be done without breaking Promise functionality, it should be invisible to current Providers. I’m going to play around with this a bit and then raise an appropriate request on github. Thanks again for your feedback and guidance!
-
RE: Weather module - creating new Provider
Thank you so much for the feedback - very much appreciated!
Your explanation makes a lot of sense and confirms (more clearly) what I’ve been reading in other places. I’ll think a bit about my options, including configuring a proxy to sit in front of the Environment Canada api or even just creating my own module that implements node_helper (although I’d prefer to leverage weather).
-
Weather module - creating new Provider
Hello! For some time now I’ve been using the (new) weather module with the default Provider (openweathermap) without any issues. I’ve started a little personal project to create a new Provider for Environment Canada - our government weather service here in Canada. They provide a very simple solution to pull an XML document for a Canadian location that contains weather info. My challenge is to create a new Provider to perform a GET against the appropriate URL and then parse out the XML elements required by the weather module.
I’m using the existing Provider code as a template, and my first task is just to ensure that I can call an Environment Canada URL and get back the XML results. I’m doing this via the fetchData instance method included in the weather module. My testing is using a URL that I know to be valid (I can access via browser and get the XML returned as expected). The URL I’m testing with is here
When fetchData is fired, I’m getting the following error thrown:
Access to XMLHttpRequest at ‘https://dd.weather.gc.ca/citypage_weather/xml/ON/s0000326_e.xml’ from origin ‘http://localhost:8080’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
I have a sense of what the error means, but not a good sense of how to fix this. My searches have found others who had a similar issue in their MM development, but any solutions do not seem applicable in this case. I think one possibility might be to configure the header for HTTP request (setRequestHeader) to include Access-Control-Allow-Origin, but I’m only guessing and the weather module Provider design does not really allow for this.
I will also say that, while I have lots of coding experience, my expertise with Javascript is definitely not extensive.
Any thoughts or advice?