This repository was archived by the owner on Sep 29, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11 changed files
with
398 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- | ||
name: Feature request | ||
about: Suggest an idea for this project | ||
|
||
--- | ||
|
||
**Is your feature request related to a problem? Please describe.** | ||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] | ||
|
||
**Describe the solution you'd like** | ||
A clear and concise description of what you want to happen. | ||
|
||
**Describe alternatives you've considered** | ||
A clear and concise description of any alternative solutions or features you've considered. | ||
|
||
**Additional context** | ||
Add any other context or screenshots about the feature request here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
--- | ||
name: Issue | ||
about: Create a report to help us improve | ||
|
||
--- | ||
|
||
<!-- Before you open a new issue, search through the existing issues to see if others have had the same problem. | ||
Issues not containing the minimum requirements will be closed: | ||
- Issues without a description (using the header is not good enough) will be closed. | ||
- Issues without debug logging will be closed. | ||
- Issues without configuration will be closed | ||
--> | ||
|
||
## Version of the custom_component | ||
<!-- If you are not using the newest version, download and try that before opening an issue | ||
--> | ||
|
||
## Configuration | ||
|
||
```yaml | ||
|
||
Add your logs here. | ||
|
||
``` | ||
|
||
## Describe the bug | ||
A clear and concise description of what the bug is. | ||
|
||
|
||
## Debug log | ||
|
||
<!-- To enable debug logs check this https://www.home-assistant.io/components/logger/ --> | ||
|
||
```text | ||
Add your logs here. | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
repository: | ||
private: false | ||
has_issues: true | ||
has_projects: false | ||
has_wiki: false | ||
has_downloads: false | ||
default_branch: master | ||
allow_squash_merge: true | ||
allow_merge_commit: false | ||
allow_rebase_merge: false | ||
labels: | ||
- name: "Feature Request" | ||
color: "fbca04" | ||
- name: "Bug" | ||
color: "b60205" | ||
- name: "Wont Fix" | ||
color: "ffffff" | ||
- name: "Enhancement" | ||
color: a2eeef | ||
- name: "Documentation" | ||
color: "008672" | ||
- name: "Stale" | ||
color: "930191" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Number of days of inactivity before an issue becomes stale | ||
daysUntilStale: 14 | ||
# Number of days of inactivity before a stale issue is closed | ||
daysUntilClose: 7 | ||
# Issues with these labels will never be considered stale | ||
#exemptLabels: | ||
# - pinned | ||
# - security | ||
# Label to use when marking an issue as stale | ||
staleLabel: Stale | ||
# Comment to post when marking an issue as stale. Set to `false` to disable | ||
markComment: > | ||
This issue has been automatically marked as stale because it has not had | ||
recent activity. It will be closed if no further activity occurs. | ||
# Comment to post when closing a stale issue. Set to `false` to disable | ||
closeComment: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# Contribution guidelines | ||
|
||
Contributing to this project should be as easy and transparent as possible, whether it's: | ||
|
||
- Reporting a bug | ||
- Discussing the current state of the code | ||
- Submitting a fix | ||
- Proposing new features | ||
|
||
## Github is used for everything | ||
|
||
Github is used to host code, to track issues and feature requests, as well as accept pull requests. | ||
|
||
Pull requests are the best way to propose changes to the codebase. | ||
|
||
1. Fork the repo and create your branch from `master`. | ||
2. If you've changed something, update the documentation. | ||
3. Make sure your code lints (using black). | ||
4. Issue that pull request! | ||
|
||
## Any contributions you make will be under the MIT Software License | ||
|
||
In short, when you submit code changes, your submissions are understood to be under the same [Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/) that covers the project. Feel free to contact the maintainers if that's a concern. | ||
|
||
## Report bugs using Github's [issues](../../issues) | ||
|
||
GitHub issues are used to track public bugs. | ||
Report a bug by [opening a new issue](../../issues/new/choose); it's that easy! | ||
|
||
## Write bug reports with detail, background, and sample code | ||
|
||
**Great Bug Reports** tend to have: | ||
|
||
- A quick summary and/or background | ||
- Steps to reproduce | ||
- Be specific! | ||
- Give sample code if you can. | ||
- What you expected would happen | ||
- What actually happens | ||
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work) | ||
|
||
People *love* thorough bug reports. I'm not even kidding. | ||
|
||
## Use a Consistent Coding Style | ||
|
||
Follow the [official style guidelines](https://developers.home-assistant.io/docs/en/development_guidelines.html) of home-assistant | ||
|
||
## License | ||
|
||
By contributing, you agree that your contributions will be licensed under its Apache License 2.0. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,159 @@ | ||
# here_travel_time | ||
|
||
Homeassistant Custom Component for Travel Time using the HERE API | ||
[![GitHub Release][releases-shield]][releases] | ||
[![GitHub Activity][commits-shield]][commits] | ||
[](https://github.com/custom-components/hacs) | ||
[![License][license-shield]](LICENSE.md) | ||
|
||
## Configuration | ||
![Project Maintenance][maintenance-shield] | ||
[![BuyMeCoffee][buymecoffeebadge]][buymecoffee] | ||
|
||
[![Community Forum][forum-shield]][forum] | ||
|
||
_Homeassistant Custom Component sensor provides travel time from the [HERE Routing API](https://developer.here.com/documentation/routing/topics/introduction.html)._ | ||
|
||
**This component will set up the following platforms.** | ||
|
||
Platform | Description | ||
-- | -- | ||
`sensor` | Show travel time between two places. | ||
|
||
![example][exampleimg] | ||
|
||
## Installation | ||
|
||
1. Using the tool of choice open the directory (folder) for your HA configuration (where you find `configuration.yaml`). | ||
2. If you do not have a `custom_components` directory (folder) there, you need to create it. | ||
3. In the `custom_components` directory (folder) create a new folder called `here_travel_time`. | ||
4. Download _all_ the files from the `custom_components/here_travel_time/` directory (folder) in this repository. | ||
5. Place the files you downloaded in the new directory (folder) you created. | ||
6. Add `here_travel_time:` to your HA configuration. | ||
|
||
Using your HA configuration directory (folder) as a starting point you should now also have this: | ||
|
||
```text | ||
custom_components/here_travel_time/__init__.py | ||
custom_components/here_travel_time/manifest.json | ||
custom_components/here_travel_time/sensor.py | ||
``` | ||
|
||
## Setup | ||
|
||
You need to register for an API key by following the instructions [here](https://developer.here.com/documentation/routing/topics/introduction.html?create=Freemium-Basic&keepState=true&step=account). | ||
|
||
HERE offers a Freemium Plan which includes 250.000 free Transactions per month. For the Routing API, one transaction equals one request with one starting point (no multistop). More information can be found [here](https://developer.here.com/faqs#payment-subscription) | ||
|
||
By default HERE will deactivate your account if you exceed the free Transaction limit for the month. You can add payment details to reenable your account as described [here](https://developer.here.com/faqs) | ||
|
||
## Configuration | ||
|
||
To enable the sensor, add the following lines to your `configuration.yaml` file: | ||
|
||
```yaml | ||
# Example entry for configuration.yaml | ||
sensor: | ||
- platform: here_travel_time | ||
name: Travel Time | ||
app_id: "secret" | ||
app_code: "secret" | ||
app_id: "YOUR_APP_ID" | ||
app_code: "YOUR_APP_CODE" | ||
origin: "51.222975,9.267577" | ||
destination: "51.257430,9.335892" | ||
``` | ||
## Configuration options | ||
Key | Type | Required | Description | ||
-- | -- | -- | -- | ||
`app_id` | `string` | `true` | Your application's API id (get one by following the instructions above). | ||
`app_code` | `string` | `true` | Your application's API code (get one by following the instructions above). | ||
`origin` | `string` | `true` | The starting point for calculating travel distance and time. | ||
`destination` | `string` | `true` | The finishing point for calculating travel distance and time. | ||
`name` | `string` | `false` | A name to display on the sensor. The default is "HERE Travel Time". | ||
`travel_mode` | `string` | `false` | You can choose between: `car`, `pedestrian`, `publicTransport` or `truck`. The default is `car`. | ||
`route_mode` | `string` | `false` | You can choose between: `fastest`, or `shortest`. This will determine whether the route is optimized to be the shortest and completely disregard traffic and speed limits or the fastest route according to the current traffic information. The default is `fastest` | ||
`traffic_mode` | `string` | `false` | You can choose between: `true`, or `false`. Decide whether you want to take the current traffic condition into account. Default is `false`. | ||
|
||
|
||
## Dynamic Configuration | ||
|
||
Tracking can be set up to track entities of type `device_tracker`, `zone`, `sensor` and `person`. If an entity is placed in the origin or destination then every 5 minutes when the platform updates it will use the latest location of that entity. | ||
|
||
```yaml | ||
# Example entry for configuration.yaml | ||
sensor: | ||
# Tracking entity to entity | ||
- platform: here_travel_time | ||
app_id: "YOUR_APP_ID" | ||
app_code: "YOUR_APP_CODE" | ||
name: Phone To Home | ||
origin: device_tracker.mobile_phone | ||
destination: zone.home | ||
# Tracking entity to zone friendly name | ||
- platform: here_travel_time | ||
app_id: "YOUR_APP_ID" | ||
app_code: "YOUR_APP_CODE" | ||
name: Home To Eddie's House | ||
origin: zone.home | ||
destination: Eddies House # Friendly name of a zone | ||
``` | ||
|
||
## Entity Tracking | ||
|
||
- **device_tracker** | ||
- If the state is a zone, then the zone location will be used | ||
- If the state is not a zone, it will look for the longitude and latitude attributes | ||
- **zone** | ||
- Uses the longitude and latitude attributes | ||
- Can also be referenced by just the zone's friendly name found in the attributes. | ||
- **sensor** | ||
- If the state is a zone or zone friendly name, then will use the zone location | ||
- All other states will be passed directly into the HERE API | ||
- This includes all valid locations listed in the *Configuration Variables* | ||
|
||
## Updating sensors on-demand using Automation | ||
|
||
You can also use the `homeassistant.update_entity` service to update the sensor on-demand. For example, if you want to update `sensor.morning_commute` every 2 minutes on weekday mornings, you can use the following automation: | ||
|
||
```yaml | ||
automation: | ||
- id: update_morning_commute_sensor | ||
alias: "Commute - Update morning commute sensor" | ||
initial_state: 'on' | ||
trigger: | ||
- platform: time_pattern | ||
minutes: '/2' | ||
condition: | ||
- condition: time | ||
after: '08:00:00' | ||
before: '11:00:00' | ||
- condition: time | ||
weekday: | ||
- mon | ||
- tue | ||
- wed | ||
- thu | ||
- fri | ||
action: | ||
- service: homeassistant.update_entity | ||
entity_id: sensor.morning_commute | ||
``` | ||
|
||
## Contributions are welcome! | ||
|
||
If you want to contribute to this please read the [Contribution guidelines](CONTRIBUTING.md) | ||
|
||
*** | ||
|
||
[buymecoffee]: https://www.buymeacoffee.com/eifinger | ||
[buymecoffeebadge]: https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg?style=for-the-badge | ||
[commits-shield]: https://img.shields.io/github/commit-activity/y/custom-components/blueprint.svg?style=for-the-badge | ||
[commits]: https://github.com/eifinger/here_travel_time/commits/master | ||
[customupdater]: https://github.com/custom-components/custom_updater | ||
[customupdaterbadge]: https://img.shields.io/badge/custom__updater-true-success.svg?style=for-the-badge | ||
[exampleimg]: example.PNG | ||
[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg?style=for-the-badge | ||
[forum]: https://community.home-assistant.io/ | ||
[license-shield]: https://img.shields.io/github/license/eifinger/here_travel_time.svg?style=for-the-badge | ||
[maintenance-shield]: https://img.shields.io/badge/maintainer-Kevin%20Eifinger%20%40eifinger-blue.svg?style=for-the-badge | ||
[releases-shield]: https://img.shields.io/github/release/eifinger/here_travel_time.svg?style=for-the-badge | ||
[releases]: https://github.com/eifinger/here_travel_time/releases |
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.