renemarc/home-assistant-config

View on GitHub
sensors/gtfs.yaml

Summary

Maintainability
Test Coverage
#
# Public Transit
#
# @see /custom_components/gtfs_custom/sensor.py
# @see /appdaemon/dashboards/Main.dash
# @see /customize.yaml
#
# @link http://gtfs.org/
# @link https://www.home-assistant.io/integrations/gtfs/
#
- platform: gtfs_custom
  name: "Transit to Metro"
  origin: !secret gtfs_origin_1
  destination: !secret gtfs_destination_1
  data: !secret gtfs_data
  scan_interval: 60

- platform: gtfs_custom
  name: "Transit to Metro 2"
  origin: !secret gtfs_origin_1
  destination: !secret gtfs_destination_1
  data: !secret gtfs_data
  scan_interval: 60
  position: 2

- platform: gtfs_custom
  name: "Transit to Metro 3"
  origin: !secret gtfs_origin_1
  destination: !secret gtfs_destination_1
  data: !secret gtfs_data
  scan_interval: 60
  position: 3

- platform: gtfs_custom
  name: "Transit to Market"
  origin: !secret gtfs_origin_2
  destination: !secret gtfs_destination_2
  data: !secret gtfs_data
  scan_interval: 60

- platform: gtfs_custom
  name: "Transit to Market 2"
  origin: !secret gtfs_origin_2
  destination: !secret gtfs_destination_2
  data: !secret gtfs_data
  scan_interval: 60
  position: 2

- platform: gtfs_custom
  name: "Transit to Market 3"
  origin: !secret gtfs_origin_2
  destination: !secret gtfs_destination_2
  data: !secret gtfs_data
  scan_interval: 60
  position: 3

- platform: template
  sensors:
    transit_to_market_countdown:
      friendly_name: "Bus to Market"
      icon_template: "mdi:bus"
      value_template: >-
        {% set countdown = states('sensor.transit_to_market') | int(-1) %}

        {% if countdown > 60 %}
          {% set hours = (countdown / 60) | int %}
          {% set minutes = countdown % 60 %}
          {% if minutes < 10 %}
            {% set minutes = '0' ~ minutes %}
          {% endif %}

          {{hours}}:{{minutes}}
        {% elif countdown >= 0 %}
          {{countdown}}
        {% else %}
          unknown
        {% endif %}

    transit_to_market_2_countdown:
      friendly_name: "Bus to Market 2"
      icon_template: "mdi:bus"
      value_template: >-
        {% set countdown = states('sensor.transit_to_market_2') | int(-1) %}

        {% if countdown > 60 %}
          {% set hours = (countdown / 60) | int %}
          {% set minutes = countdown % 60 %}
          {% if minutes < 10 %}
            {% set minutes = '0' ~ minutes %}
          {% endif %}

          {{hours}}:{{minutes}}
        {% elif countdown >= 0 %}
          {{countdown}}
        {% else %}
          unknown
        {% endif %}

    transit_to_market_3_countdown:
      friendly_name: "Bus to Market 3"
      icon_template: "mdi:bus"
      value_template: >-
        {% set countdown = states('sensor.transit_to_market_3') | int(-1) %}

        {% if countdown > 60 %}
          {% set hours = (countdown / 60) | int %}
          {% set minutes = countdown % 60 %}
          {% if minutes < 10 %}
            {% set minutes = '0' ~ minutes %}
          {% endif %}

          {{hours}}:{{minutes}}
        {% elif countdown >= 0 %}
          {{countdown}}
        {% else %}
          unknown
        {% endif %}

    transit_to_market_hour:
      friendly_name: "Bus to Market"
      icon_template: "mdi:bus"
      value_template: >-
        {% set departure = state_attr('sensor.transit_to_market', 'Origin Stop Departure Time') %}

        {% if departure != None %}
          {% set departure = departure.split(' ') %}
          {% set hms = departure[1].split(':') %}

          {{hms[0]}}:{{hms[1]}}
        {% else %}
          unknown
        {% endif %}

    transit_to_market_2_hour:
      friendly_name: "Bus to Market (Next)"
      icon_template: "mdi:bus"
      value_template: >-
        {% set departure = state_attr('sensor.transit_to_market_2', 'Origin Stop Departure Time') %}

        {% if departure != None %}
          {% set departure = departure.split(' ') %}
          {% set hms = departure[1].split(':') %}

          {{hms[0]}}:{{hms[1]}}
        {% else %}
          unknown
        {% endif %}

    transit_to_market_3_hour:
      friendly_name: "Bus to Market (After)"
      icon_template: "mdi:bus"
      value_template: >-
        {% set departure = state_attr('sensor.transit_to_market_3', 'Origin Stop Departure Time') %}

        {% if departure != None %}
          {% set departure = departure.split(' ') %}
          {% set hms = departure[1].split(':') %}

          {{hms[0]}}:{{hms[1]}}
        {% else %}
          unknown
        {% endif %}

    transit_to_metro_countdown:
      friendly_name: "Bus to Metro"
      icon_template: "mdi:bus"
      value_template: >-
        {% set countdown = states('sensor.transit_to_metro') | int(-1) %}

        {% if countdown > 60 %}
          {% set hours = (countdown / 60) | int %}
          {% set minutes = countdown % 60 %}
          {% if minutes < 10 %}
            {% set minutes = '0' ~ minutes %}
          {% endif %}

          {{hours}}:{{minutes}}
        {% elif countdown >= 0 %}
          {{countdown}}
        {% else %}
          unknown
        {% endif %}

    transit_to_metro_2_countdown:
      friendly_name: "Bus to Metro 2"
      icon_template: "mdi:bus"
      value_template: >-
        {% set countdown = states('sensor.transit_to_metro_2') | int(-1) %}

        {% if countdown > 60 %}
          {% set hours = (countdown / 60) | int %}
          {% set minutes = countdown % 60 %}
          {% if minutes < 10 %}
            {% set minutes = '0' ~ minutes %}
          {% endif %}

          {{hours}}:{{minutes}}
        {% elif countdown >= 0 %}
          {{countdown}}
        {% else %}
          unknown
        {% endif %}

    transit_to_metro_3_countdown:
      friendly_name: "Bus to Metro 3"
      icon_template: "mdi:bus"
      value_template: >-
        {% set countdown = states('sensor.transit_to_metro_3') | int(-1) %}

        {% if countdown > 60 %}
          {% set hours = (countdown / 60) | int %}
          {% set minutes = countdown % 60 %}
          {% if minutes < 10 %}
            {% set minutes = '0' ~ minutes %}
          {% endif %}

          {{hours}}:{{minutes}}
        {% elif countdown >= 0 %}
          {{countdown}}
        {% else %}
          unknown
        {% endif %}

    transit_to_metro_hour:
      friendly_name: "Bus to Metro"
      icon_template: "mdi:bus"
      value_template: >-
        {% set departure = state_attr('sensor.transit_to_metro', 'Origin Stop Departure Time') %}

        {% if departure != None %}
          {% set departure = departure.split(' ') %}
          {% set hms = departure[1].split(':') %}

          {{hms[0]}}:{{hms[1]}}
        {% else %}
          unknown
        {% endif %}

    transit_to_metro_2_hour:
      friendly_name: "Bus to Metro (Next)"
      icon_template: "mdi:bus"
      value_template: >-
        {% set departure = state_attr('sensor.transit_to_metro_2', 'Origin Stop Departure Time') %}

        {% if departure != None %}
          {% set departure = departure.split(' ') %}
          {% set hms = departure[1].split(':') %}

          {{hms[0]}}:{{hms[1]}}
        {% else %}
          unknown
        {% endif %}

    transit_to_metro_3_hour:
      friendly_name: "Bus to Metro (After)"
      icon_template: "mdi:bus"
      value_template: >-
        {% set departure = state_attr('sensor.transit_to_metro_3', 'Origin Stop Departure Time') %}

        {% if departure != None %}
          {% set departure = departure.split(' ') %}
          {% set hms = departure[1].split(':') %}

          {{hms[0]}}:{{hms[1]}}
        {% else %}
          unknown
        {% endif %}