[RELEASE] Multi-Place - Powered by Google Traffic

image

You don't stay in one place. The smarts of your Hubitat smart home shouldn't either. Powered by Google Directions, Multi-Place is a Hubitat App that extends your smart home's reach to your favorite places and the roads therebetween.

Multiple Places. One tile.
Multi-Place displays your presence across multiple places on a single dashboard tile, referred to in the app as a "Tracker", with a clean graphical look that is highly customizable. Multi-Place can even display your presence across vehicles, using either dedicated presence sensors or OwnTracks. Moreover, Multi-Place integrates with Withings Sleep, to display your presence in bed. No matter where you are, Multi-Place centralizes the display of your presence into one clean graphic for your dashboard. The tile is not required for any other features.

presence
*Icon in the gray circle changes based on your presence across multiple place, e.g., a briefcase when you are at work, a vehicle when you're in the car, a bed when you are in bed, etc. All completely customizable.

Automate based on current traffic conditions.
Before you typically leave for a certain destination, like work or school, Multi-Place checks traffic conditions for you. Set up Multi-Place to turn on a switch or notify you with a push notification if traffic is bad and you need to leave X minutes earlier than usual. Or, configure Multi-Place to just discretely display that information on your dashboard only when necessary, so as to keep your dashboard clean and not interrupt you otherwise. Multi-Place stays aprised of traffic conditions shortly before and throughout the window of time that you typically depart for your destination, so you don't have to worry about missing a traffic update.

Always take the best route.
When Multi-Place checks traffic conditions, it also identifies the best route for you to take to your destination. Set up Multi-Place to display the best route on the dashboard you have beside your door, so that one glance informs you of which way to go to your destination. Or, configure Multi-Place to send you a push notification with the best route when you get in your vehicle or open the garage door during your typical departure time window, so as to have traffic information exactly when you need it. Better yet, tell Multi-Place the route you prefer to take typically, and Multi-Place will only display or push route information if the best route to take is different than your preferred route. That way, you're only bothered if you need to take a different route than you would have taken anyway.

(images enlarged for preview purposes; can be as big or as little as you want. Red part in static image is from an animation that indicates bad traffic)

Automate based on departure and arrival for a typical trip.
Multi-Place can trigger automations based on your departure from the origin of a typical trip and/or your arrival at the destination of that trip. For example, configure Multi-Place to turn the kitchen pendant light to green when you get in the car to leave work and head home, in order to notify your family members at home that you're headed home. Or, tell Multi-Place the time your teenager is supposed to be at school, and selectively get a push notification if he or she arrives X minutes later than the required time.

Keep others up-to-date on your ETA.
Once you depart on a trip, Multi-Place determines your estimated time of arrival (ETA) at the trip's destination, given current traffic conditions. Multi-Place displays your ETA on your dashboard, so others at home can know when you'll arrive. You can also make Multi-Place smart enough to know when you're typically supposed to be at a certain destination. That way, if you're going to be late, either because you haven't left yet or you're stuck in traffic, Multi-Place can automatically send a push notification to someone else to notify them that you are going to be at least X minutes late. No more getting stuck in a meeting at work and getting grief for neglecting to at least send a note that you're running late; Multi-Place can do it for you now, automatically. Multi-Place can also alert you if someone does not arrive at a certain destination (e.g., school) within the expected time window,

Reward Accessories
Set up digital accessories, like baseball hats, for your avatars. Accessories can be configured as earnable upon the rewarding of a specified number of "stars". So, if you have an avatar configured for a child, you can reward stars to the child for good behavior, and reward digital accessories upon the earning of a certain number of stars.

Sleep. Compete. Repeat. Multi-Place's integration with Withings Sleep allows your family to compete with one another in terms of your sleep scores. Multi-Place awards a daily ribbon, a weekly trophy, and a monthly trophy to the person with the best sleep score. Get to sleep and show off your bling in the morning.

Main User Interface
Simple, intuitive interface with few very little needed to get up and running.

Interface for Adding a Person

Interface for Accessories

Interface for Adding a Trip

Detailed Instructions for App Setup

  1. Get a Google Directions API key here.. Enable the Google Directions API. If you will use OwnTracks, also enable the Google Geocoding API and connect your API key to both the Directions API and the Geocoding API

Google gives you $200 a month in credit, which translates to 20,000 Google Directions API calls or 40,000 Google Geocode API calls a month for free. That’s more than plenty to keep this free for you. Multi-Place (by default) stops making API calls if the free limit is exhausted, ensuring the app stays free. However, it is ultimately your responsibility to keep track of your API costs, especially as Google may change their API call costs without notice and without this app taking those changes into account (at least until someone notifies me).

  1. Create one or more people in Multi-Place by giving each person a name and a picture of your choosing. Tell Multi-Place which OwnTracks device and/or which Withings Sleep device is specific to each person.

  2. Create one or more vehicles in Multi-Place by giving each vehicle a name and a picture of your choosing. Tell Multi-Place which sensors in Hubitat indicate which person's presence in each vehicle. One way to set up a vehicle sensor is this:

    • Get a bluetooth beacon, like the USB RadBeacon from Radius Networks ($30)
    • Use an app on your phone (like Geofency for iOS) that detects a beacon and sends a webhook to Rule Machine upon enter/exit events
    • Use Rule Machine to set a virtual presence sensor upon receiving a webhook
    • More detailed setup instructions in the README
  3. Create one or more places in Multi-Place by giving each place a name, an address, and a picture of your choosing. Tell Multi-Place which sensors in Hubitat indicate which person's presence in each place. You have a few options here:

    • (A) Use OwnTracks. Multi-Place will use the longitude and latitude reported by OwnTracks to detect whether you are at a certain address input into Multi-Place. Name the places in OwnTracks the same as you name them in Multi-Place. Multi-Place will detect your presence at a Multi-Place when OwnTracks detects your presence at an OwnTracks place with the same name.
      (B) Use an app like Geofency for iOS on your phone and send webhooks to Rule Machine when you enter/exit a geofence configured for that place. Then just use rule machine to set a virtual presence sensor based on those webhooks
      (C) Use dedicated beacons or other types of presence sensors at one or more places
  4. Create one or more trips in Multi-Place by defining an origin and destination for the trip, as well as which people and vehicles are associated with that trip. Tell Multi-Place a window of time during which you typically depart on the trip, as well as a target arrival time. Select which automations to configure for the trip, such as by selecting which devices to push which notifications to.

  5. Set up restrictions on when Multi-Place detects trip departures and checks travel conditions. For example, you can configure Multi-Place to not do those things when your Hubitat hub is in vacation mode.

  6. Click Done on the App's main page, and Multi-Place does the rest.

  7. For each person, Multi-Place creates a "Tracker" device with the name of "[Person's Name] Multi-Place Tracker". This Tracker device has an attribute called "tracker" with the graphical display that you can add to your dashboard. Multi-Place also outputs this graphical tracker at a cloud endpoint in SVG or html format, for use on an image tile in dashboards like Sharptools.

Hubitat Package Manager Install Instructions

  1. Find Multi-Place under the tags "Vehicles & Transportation", "Sleep", or "Presence & Location"
  2. Install Multi-Place Package via Hubitat Package Manager
  3. Follow the install instructions in the Multi-Place app

Hubitat Manual Install Instructions

  1. Install the Multi-Place Tracker driver
  2. Install the Multi-Place app
  3. Enable OAuth in the Multi-Place app
  4. Follow the install instructions in the Multi-Place app

Light Weight Alternative
DriveTime is a light weight alternative if you simply need directions and want to program the logic yourself using Rule Machine

7 Likes

Reserved.

This sounds really cool!

1 Like

Thanks. It's one of the core apps I use for my family's dashboards. Judging by the fact that you're the first post since May 2021, I guess it's cooler in my head than in reality. Oh well, :rofl:

2 Likes

Perhaps you need more promotion. Today is the first time I heard of it. Truthfully I'm sad I didn't notice this when you first posted it. I just switched jobs and moved. Both me and my wife have commutes under 2 minutes now, and I get off work at the same time every day. I could have used this back in May when I had a 30 minute commute. :neutral_face:

Ha, for real. Same here. My company switched to work-from-home with covid and has no plans to go back to the office. But at least it's still helpful for taking the kids to school.

2 Likes

This is an awesome app.
I don't exactly need it yet, but could definitely see us using it if we end up getting Withings sleep and if our school/work situation changes.

Thank you for posting this. AWESOME.

2 Likes

Wow, this is cool. Just found it. I had something similar I wrote in webCoRE, but I'm looking forward to playing around with this. My wife has a 32-mile commute (I work from home) so it's nice to give her a heads up before she leaves.

(Bah! Edited to remove a question. I found the answer in your original instructions. :laughing: )

1 Like

Any idea why the quickest & shortest route isn't listed as an option? It shows three alternatives, but none are what Google Maps (and experience) show as the actual preferred and normally quickest and shortest route.

Can you provide a debug log? It should have enough info in there to figure out why. Traffic conditions or a wreck could of course be the culprit if it’s just occasionally happening.

has anybody had any luck setting up multi place, I think I am close, I have a api key and restricted it to the IP address of the hub and restricted everything else. but can't get it working

I’ve used this for over a year now.

What exactly isn’t working? Does the dashboard recognize place changes? Is it the vehicles that are the problem?

It would help to diagnose the problem if I could see some settings as well.

1 Like

I have life 360 with stats and withings sleep mat, would like to find out what personal belongings that can be added and how to add a vehicle.
My main problem is that, is can't seem to get longitude and latitude I think. I wanted to make a automation for a reminder when to leave for work

Seems you've enabled Life360 but there's a problem with Google Geocoding API. Did you enable Google Geocoding API in accordance with Step 1 in the setup instructions?

What do you mean by 'personal belonging'?

Step 3 of the setup instructions talks about that. If you did that already, perhaps you can describe a specific problem that you're seeing with it...

I got a api, might not have set it up right tho

I just added some debug code in to help figure out your problem. Update to the latest version, turn on debug logging, and send me the log that results when you click done on the app.

is that what that means?

Yes but that’s not the latest version of the app. If you installed via HPM, you can simply update from HPM. If you installed manually, re-copy the latest code into Hubitat and click done again.

thanks done a update, but still getting same error

Right, the update was to help debug - wasn't expected to fix. Do you see anything in the log that starts with "geocode response = ....." ? That's what i need