Please ⭐ this repo if you find it useful
This is a custom sensor for Home Assistant that allows you to have the waiting time for a specific Madrid-EMT bus stop. Each sensor will provide the arrival time for the next 2 buses of the line specified in the configuration.
Thanks to EMT Madrid MobilityLabs for providing the data and documentation.
To use the EMT Mobilitylabs API you need to register in their website. You have to provide a valid email account and a password that will be used to configure the sensor. Once you are registered you will receive a confirmation email to activate your account. It will not work until you have completed all the steps.
-
Using the tool of choice open the directory (folder) for your HA configuration (where you find
configuration.yaml
). -
If you do not have a
custom_components
directory (folder) there, you need to create it. -
In the
custom_components
directory (folder) create a new folder calledemt_madrid
. -
Download all the files from the
custom_components/emt_madrid/
directory (folder) in this repository. -
Place the files you downloaded in the new directory (folder) you created.
-
Restart Home Assistant
-
Add
emt_madrid
sensor to yourconfiguration.yaml
file:# Example configuration.yaml entry sensor: - platform: emt_madrid email: !secret EMT_EMAIL password: !secret EMT_PASSWORD stop: "72" line: "27" name: "Bus 27 en Cibeles" icon: "mdi:fountain"
email:
(string) (Required)
Email account used to register in the EMT Madrid API.
password:
(string) (Required)
Password used to register in the EMT Madrid API.
stop:
(string) (Required)
Bus stop ID.
line:
(string) (Required)
Bus line that stops at the previous bus stop.
name:
(string) (Optional)
Name to use in the frontend.
Default value: "Bus <bus_line> at <bus_stop>"
icon:
(string) (Optional)
Icon to use in the frontend.
Default value: "mdi:bus"
Once you have you sensor up and running it will update the data automatically every 30 seconds and you should have the following data:
state:
(int)
Arrival time in minutes for the next bus. It will show "-" when there are no more buses coming and 30 when the arrival time is over 30 minutes.
later_bus:
(int)
Arrival time in minutes for the second bus. It will show "-" when there are no more buses coming and 30 when the arrival time is over 30 minutes.
bus_stop_id:
(int)
Bus stop id given in the configuration.
bus_line:
(int)
Bus line given in the configuration.
If you want to have a specific sensor to show the arrival time for the second bus, you can add the following lines to your configuration.yaml
file below the emt_madrid
bus sensor. See the official Home Assistant template sensor for more information.
# Example configuration.yaml entry
- platform: template
sensors:
siguiente_27:
friendly_name: "Siguiente bus 27"
unit_of_measurement: "min"
value_template: "{{ state_attr('sensor.bus_27_en_cibeles', 'later_bus') }}"