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

    Scheduled Pinned Locked Moved Transport
    286 Posts 80 Posters 655.0k Views 77 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.
    • brandongomezB Offline
      brandongomez
      last edited by brandongomez

      Hi all. New to the forum and the world of magic mirror. It’s awesome! Came across this module and have been trying to implement but think I’m getting stuck on the API key.

      When I go to Google, I have web and web service. I am assuming this is web and not web service. Then when I choose web, I get more options; Maps JavaScript API, Maps Embed API, Street View, Static Maps, Places API JavaScript Library. I believe it’s Maps JavaScript API. Can anyone confirm that?

      The module is not coming up on my board so I think my API might be wrong? Any help is appreciated. Thanks!

      Update: I re-installed the module and it now loads but just shows the locations with a red “Error” next to each of them. My code is posted below if that helps. It also isn’t showing the “Traffic” header which is odd.

      Another Update: Working now! I found the log files and it was the API. Got that fixed and now it’s working. Only thing that isn’t working is the title. For some reason the header doesn’t show. Any ideas?

      {
                              module: 'MMM-MyCommute',
                              position: 'top_right',
                              config: {
                                      showHeader: true,
                                      headerText: 'Traffic',
                                      apikey: 'xxxxxxxxx',
                                      origin: '.........',
                                      startTime: '00:00',
                                      endTime: '23:59',
                                      hideDays: [0,6],
                                      destinations: [
                                              {
                                                      destination: '..........',
                                                      label: 'Emerson Parkside Academy',
                                                      mode: 'driving',
                                                      color: '#82E5AA'
                                              },
                                              {
                                                      destination: 'Yosemite, CA',
                                                      label: 'Yosemite',
                                                      mode: 'driving',
                                                      color: '#82E5AA'
                                              },
      					{
                                                      destination: '1313 Disneyland Dr, Anaheim, CA 92802',
                                                      label: 'Disneyland',
                                                      mode: 'driving',
                                                      color: '#82E5AA'
                                              },
                                      ]
                              }
                      },
      
      J 1 Reply Last reply Reply Quote 0
      • J Offline
        j.e.f.f Project Sponsor Module Developer @brandongomez
        last edited by

        @brandongomez The header is not configured that way anymore. Use the standard way, like so:

        {
            module: 'MMM-MyCommute',
            header: 'Traffic',      //-------- here
            position: 'top_right',
            config: {
                ...
            }
        }
        

        otherwise, glad to hear you got it working.

        -Jeff

        brandongomezB L 2 Replies Last reply Reply Quote 0
        • brandongomezB Offline
          brandongomez @j.e.f.f
          last edited by

          @j.e.f.f Awesome, thanks for the quick reply and help!

          1 Reply Last reply Reply Quote 0
          • L Offline
            Looking @j.e.f.f
            last edited by

            Question. I have posted the above config in my config.js file but MM does not showing anything additional regarding TRAFFIC.

            J L 2 Replies Last reply Reply Quote 0
            • J Offline
              j.e.f.f Project Sponsor Module Developer @Looking
              last edited by

              @Looking not sure I’m following… can you post your confit here? Hide your API key.

              L 1 Reply Last reply Reply Quote 0
              • L Offline
                Looking @Looking
                last edited by

                Here is what I pasted… I am sure it is something real goofy. I did get an API KEY from Google. Maybe there was addition code I needed to put else where. This is my first time project with MM. Really cool.
                CODE:
                {
                module: ‘MMM-MyCommute’,
                header: ‘Trafic’,
                position: ‘top_right’,
                config: {
                showHeader: true,
                //------ headerText: ‘Traffic’,
                apikey: ‘PUT IN GOOGLE API’,
                origin: ‘PUT MY ADDRESS. 123 ST, TOWN, ST ZIPCODE’,
                startTime: ‘00:00’,
                endTime: ‘23:59’,
                hideDays: [0,6],
                destinations: [
                {
                destination: ‘PUT IN WORK ADDRESS’,
                label: ‘Emerson Parkside Academy’,
                mode: ‘driving’,
                color: ‘#82E5AA’
                }
                ]
                }
                },

                Your help would be greatly appreciated. Thank you!

                1 Reply Last reply Reply Quote 0
                • L Offline
                  Looking @j.e.f.f
                  last edited by yawns

                  Hey j.e.f.f,
                  Here is what I pasted… I am sure it is something real goofy. I did get an API KEY from Google. Maybe there was addition code I needed to put else where. This is my first time project with MM. Really cool.
                  CODE:

                  {
                  	module: 'MMM-MyCommute',
                  	header: 'Trafic',
                  	position: 'top_right',
                  	config: {
                  		showHeader: true,
                  		//------ headerText: 'Traffic',
                  		apikey: 'PUT IN GOOGLE API',
                  		origin: 'PUT MY ADDRESS. 123 ST, TOWN, ST ZIPCODE',
                  		startTime: '00:00',
                  		endTime: '23:59',
                  		hideDays: [0,6],
                  		destinations: [
                  			{
                  			destination: 'PUT IN WORK ADDRESS',
                  			label: 'Emerson Parkside Academy',
                  			mode: 'driving',
                  			color: '#82E5AA'
                  			}
                  		]
                  	}
                  },
                  

                  Your help would be greatly appreciated. Thank you!

                  L 1 Reply Last reply Reply Quote 0
                  • L Offline
                    Looking @Looking
                    last edited by

                    @Looking
                    Should I have something within the MODULES directory to correspond to this cool MMM-MyCommute module?

                    L 1 Reply Last reply Reply Quote 0
                    • L Offline
                      Looking @Looking
                      last edited by

                      Hey there j.e.f.f.
                      I figured out that I missed the whole part about installing the actual MMM-MyCommute module, https://github.com/jclarke0000/MMM-MyCommute . I am letting it run in MM but under the header TRAFFIC on MM it just says Loading… I rechecked my API key and made sure I did not mistype. Any thoughts?

                      L 1 Reply Last reply Reply Quote 0
                      • L Offline
                        Looking @Looking
                        last edited by

                        @Looking
                        Ok I simply rebooted my Pi and the MyCommute module did show up. I see the car icon, the name I gave it but the place where I would see the commute time is populated with the message of ‘Error’ . I think I see this happen for someone on this board…Let me look. But in the meantime thanks for helping me and if I do not get this I will post again. Love the module and the community.

                        F 1 Reply Last reply Reply Quote 0
                        • O Offline
                          olexs
                          last edited by

                          Hey,

                          I just found this module today, and it’s awesome, exactly what I was looking for! Multiple destinations - almost perfect. However I was missing the option of calendar integration. So I went ahead and built it: https://github.com/jclarke0000/MMM-MyCommute/pull/1

                          With it enabled, it shows extra destinations for upcoming events in all configured calendard that have a location (up to a maximum number). The destinations are configurable, same as normal ones - it only overwrites the location and title. Works perfectly for me so far. Any comments are welcome.

                          J 1 Reply Last reply Reply Quote 1
                          • rudibaraniR Offline
                            rudibarani Project Sponsor
                            last edited by

                            Very interesting module - thanks for the great work of putting it up!
                            Is there a way to change the output to something like this
                            (with the text in italics being user customizable)?

                            • [walking icon] “Leave by 8:00h to arrive in time the next appointment.”
                            • [train icon]“Leave in XX mins to catch the tram to school.”
                            • [car icon]“Heavy traffic today! Leave by 8:00h to arrive in time for today.” (In case the trip duration is longer than usual).

                            If found olexs calendar integration (https://github.com/jclarke0000/MMM-MyCommute/pull/1) regarding aspects of the first bulletpoint. Any ideas how to go on with the other?

                            Thanks for help and suggestions!

                            J 1 Reply Last reply Reply Quote 0
                            • J Offline
                              j.e.f.f Project Sponsor Module Developer @rudibarani
                              last edited by

                              @rudibarani Strangely, the Google API only allows arrival time estimates for transit mode, not any other mode. On top of that, because this is using the free API I need to keep the requests infrequent, so specifically your second ask “Leave in XX minutes to catch the next tram” won’t be timely.

                              I made another module for TTC (Toronto Transit) that gives you departure time for transit vehicles. It polls every minute, so it’s information is very timely! While it currently only works for Toronto transit, it’s based in the NextBus API, which supports many more transit systems in North America. Adapting that module for any of the NextBus supported agencies would be trivial.

                              Here’s the list of supported agencies:
                              http://webservices.nextbus.com/service/publicJSONFeed?command=agencyList

                              …and more info on the module here:
                              https://forum.magicmirror.builders/topic/2632/mmm-myttc-toronto-transit

                              Would that address your need?

                              rudibaraniR 1 Reply Last reply Reply Quote 0
                              • J Offline
                                j.e.f.f Project Sponsor Module Developer @olexs
                                last edited by

                                @olexs this is a great addition! Give me a chance to review it to make sure there’s not going to be any adverse affects on the core purpose of this module, or if it will generate too many requests to the API. Using a free API token, we’re limited to 2500 requests per day. While this may seem like a lot, each destination requires its own request. It’s surprisingly easy to blow that limit – I did it once during development of this module!!

                                O 1 Reply Last reply Reply Quote 0
                                • O Offline
                                  olexs @j.e.f.f
                                  last edited by

                                  @j.e.f.f I am aware of the API problem, which is why I set the config option to “off” by default. On my own mirror, I have 2 default destinations + max 3 calendar entries shown. With 5 destinations refreshing every 10 minutes, this amounts to a total of 720 requests per 24 hours, well below the limit. Of course users can set the calendar entries number higher, or configure more “static” destinations. Maybe one could implement an explicit console warning when too many destinations (10 or more) are configured, and one comes close to the limit?

                                  1 Reply Last reply Reply Quote 0
                                  • rudibaraniR Offline
                                    rudibarani Project Sponsor @j.e.f.f
                                    last edited by

                                    @j.e.f.f Thanks for the quick reply!
                                    I am looking for a solution that works in Germany as well. Therefore adapting your TTC module is a great idea, but unfortunately not supported here.

                                    As it seems more complex than I thought, maybe boiling it down to a “leave by” would be great. If I could add a planned arrival time and google reports xx minutes, an output using the necessary departure time would be great. This could be based on a simple calculation and color coded depending on the percentage of a longer trip than usual.

                                    Is the update-frequency of the google-prediction known? What is the current update-frequency you are using? Pulling the numbers more often than google woulds change them would not be necessary. I am having five queries running and an update every five minutes would be enough for me (~1500/queries day).

                                    J 1 Reply Last reply Reply Quote 0
                                    • J Offline
                                      j.e.f.f Project Sponsor Module Developer @rudibarani
                                      last edited by

                                      @rudibarani there is a cap of 2500 requests per day when using the free API. Therefore I’ve kept the poll frequency at a very conservative 10 minutes. Each destination requires its own request so it’s fairly easy to blow the limit if you’re not careful.

                                      I could put a calculation in place where if you say you need to be at a certain place by 9:00, then I could put a “leave by” message. But as the data poll is not very frequent, you could see something that says “leave by 8:00,” but it’s already 8:05.

                                      I can also make the polling frequency configurable so that you could mitigate this, and include an explicit warning in the reader of what the potential consequence is.

                                      1 Reply Last reply Reply Quote 0
                                      • rudibaraniR Offline
                                        rudibarani Project Sponsor
                                        last edited by

                                        @j.e.f.f: I found that MMM-Traffic offers a leave by option and there is also a variant MMM-TrafficCal which integrates with a calendar to get the time based on the next and current location from a calendar. Maybe we can learn from them?

                                        Regarding the cap:

                                        • would it be feasible to have a hardcoded stop for new polls after 2500 request on a day (and notify the user, if to many polls are / will be made)?
                                        • would it be possible to limit the time when polls are made? Leaving out 22h - 5h could already save a lot of capacity.

                                        Regarding “leave by”:
                                        To me, having an option to either take the arrival time from a variable (or even a calendar) would be great. There could be the case that the departure time has already passed, but that would be OK for me.

                                        Thanks!

                                        J 1 Reply Last reply Reply Quote 0
                                        • J Offline
                                          j.e.f.f Project Sponsor Module Developer @rudibarani
                                          last edited by

                                          @rudibarani I’ve already included logic to keep the requests to a minimum based on the time windows you set. The entire module is governed by the startTime and endTime parameters. Outside of that window, not only is the module not visible, but it stops polling Google. Likewise, if you set a time window for a particular destination, Google will only be polled for that particular destination within that window.

                                          I’m still considering how I might manage the Calendar integration… I’d want it to be smart about when it starts polling for travel times. For example, if my appointment is for sometime in the evening, I don’t really care what the drive will be like to get there in the morning, so I’d be wasting a request. So maybe there is a threshold, say, two hours before the appointment time, where it gets the initial estimate, and then based on that doesn’t poll again until, say 30 minutes before you need to leave.

                                          rudibaraniR 1 Reply Last reply Reply Quote 0
                                          • rudibaraniR Offline
                                            rudibarani Project Sponsor @j.e.f.f
                                            last edited by

                                            @j.e.f.f Thanks for the clarification, that there are no polls while it is not visible.
                                            One easy way would be to add a “smart timer” if you polled with increasing frequency depending on the start time. Also possible would be polling once after midnight to get an idea about the expected travel time without delays. This duration plus a buffer (e.g. three times the travel time; user customizable) could determine the dynamic start time when travel times will show up.

                                            Different question: would it be possible to colours only in case of delays (=not show a “good” time in green but white)?

                                            J 1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 11
                                            • 12
                                            • 13
                                            • 14
                                            • 15
                                            • 13 / 15
                                            • 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