{ "config": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]", "reconfigure_successful": "[%key:common::config_flow::abort::reconfigure_successful%]" }, "error": { "cannot_connect": "[%key:common::config_flow::error::cannot_connect%]", "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]" }, "step": { "reauth_confirm": { "data": { "password": "[%key:common::config_flow::data::password%]", "username": "[%key:common::config_flow::data::username%]" }, "data_description": { "password": "[%key:component::data_grand_lyon::config::step::user::data_description::password%]", "username": "[%key:component::data_grand_lyon::config::step::user::data_description::username%]" } }, "reconfigure": { "data": { "password": "[%key:common::config_flow::data::password%]", "username": "[%key:common::config_flow::data::username%]" }, "data_description": { "password": "[%key:component::data_grand_lyon::config::step::user::data_description::password%]", "username": "[%key:component::data_grand_lyon::config::step::user::data_description::username%]" } }, "user": { "data": { "password": "[%key:common::config_flow::data::password%]", "username": "[%key:common::config_flow::data::username%]" }, "data_description": { "password": "Your password on data.grandlyon.com.", "username": "Your username on data.grandlyon.com." } } } }, "config_subentries": { "stop": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "entry_type": "Transit stop", "initiate_flow": { "user": "Add transit stop" }, "step": { "user": { "data": { "line": "Line", "stop_id": "Stop ID" } } } }, "velov_station": { "abort": { "already_configured": "[%key:common::config_flow::abort::already_configured_service%]" }, "entry_type": "Vélo'v station", "initiate_flow": { "user": "Add Vélo'v station" }, "step": { "user": { "data": { "station_id": "Station ID" } } } } }, "entity": { "binary_sensor": { "station_open": { "name": "Station open" } }, "sensor": { "available_bikes": { "name": "Available bikes", "unit_of_measurement": "bikes" }, "available_electrical_bikes": { "name": "Available electrical bikes", "unit_of_measurement": "[%key:component::data_grand_lyon::entity::sensor::available_bikes::unit_of_measurement%]" }, "available_mechanical_bikes": { "name": "Available mechanical bikes", "unit_of_measurement": "[%key:component::data_grand_lyon::entity::sensor::available_bikes::unit_of_measurement%]" }, "available_stands": { "name": "Available stands", "unit_of_measurement": "stands" }, "capacity": { "name": "Capacity", "unit_of_measurement": "[%key:component::data_grand_lyon::entity::sensor::available_stands::unit_of_measurement%]" }, "electrical_internal_battery_bikes": { "name": "Electrical internal battery bikes", "unit_of_measurement": "[%key:component::data_grand_lyon::entity::sensor::available_bikes::unit_of_measurement%]" }, "electrical_removable_battery_bikes": { "name": "Electrical removable battery bikes", "unit_of_measurement": "[%key:component::data_grand_lyon::entity::sensor::available_bikes::unit_of_measurement%]" }, "next_departure_1": { "name": "Next departure 1" }, "next_departure_1_direction": { "name": "Next departure 1 direction" }, "next_departure_1_type": { "name": "Next departure 1 type", "state": { "estimated": "Estimated", "theoretical": "Theoretical" } }, "next_departure_2": { "name": "Next departure 2" }, "next_departure_2_direction": { "name": "Next departure 2 direction" }, "next_departure_2_type": { "name": "Next departure 2 type", "state": { "estimated": "[%key:component::data_grand_lyon::entity::sensor::next_departure_1_type::state::estimated%]", "theoretical": "[%key:component::data_grand_lyon::entity::sensor::next_departure_1_type::state::theoretical%]" } }, "next_departure_3": { "name": "Next departure 3" }, "next_departure_3_direction": { "name": "Next departure 3 direction" }, "next_departure_3_type": { "name": "Next departure 3 type", "state": { "estimated": "[%key:component::data_grand_lyon::entity::sensor::next_departure_1_type::state::estimated%]", "theoretical": "[%key:component::data_grand_lyon::entity::sensor::next_departure_1_type::state::theoretical%]" } } } }, "exceptions": { "auth_failed": { "message": "Authentication failed for Data Grand Lyon." }, "update_failed_tcl": { "message": "Error fetching TCL departures from Data Grand Lyon." }, "update_failed_velov": { "message": "Error fetching Vélo'v stations from Data Grand Lyon." } } }