diff --git a/README.md b/README.md index 1b17805..37d8c04 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,85 @@ Official GeoRide website: https://georide.fr/ ## Description This component add some sensor for GeoRide Tracker +### What's entity is available : + + Get GeoRide position + Get GeoRide lock status + Change GeoRide lock status + Add GeoRide from configuration.yml + Add GeoRide from interface + Get stollen status + Get crashed status + Get is owner status + Get subsription status + +### What's events are available: +you can filter by data.device_id == XX (XX is your tracker id) +you can display your tracker name by by data.device_name + +event; + + georide_position_event + georide_lock_event + georide_device_event + georide_alarm_event + +you can filter with data.type == 'alarm_vibration' to filter by vibration +here is the alarm type available: (listen the georide_alarm_event) + + alarm_vibration + alarm_exitZone + alarm_crash + alarm_crashParking + alarm_deviceOffline + alarm_deviceOnline + alarm_powerCut + alarm_powerUncut + alarm_batteryWarning + alarm_temperatureWarning + alarm_magnetOn + alarm_magnetOff + alarm_sonorAlarmOn + + +## Question: + +### How to have the odometer in Km ? + +Simply add a sensor like this in configuration.yaml +(Replace XX by your tracker id) + +```yaml +sensor: + - platform: template # Conversion georide de m en km + sensors: + odometer_XX_km: + friendly_name: "Odometter - Km" + value_template: "{{ states.sensor.odometer_XX.state | multiply(0.001) | round(3, 'flour') }}" + unit_of_measurement: 'Km' + + +``` + +### How to use the event: + +Simply made a automation like this: + +```yaml +alias: '[TEST] Send notification' +description: '' +trigger: + - platform: event + event_type: georide_lock_event +condition: [] +action: + - service: notify.mobile_app_oneplus_a3003 + data: + message: 'The device {{ data.device_name }} have recieved a lock event' +mode: single + +``` + ## Options diff --git a/custom_components/georide/__init__.py b/custom_components/georide/__init__.py index 69f5713..42608c2 100644 --- a/custom_components/georide/__init__.py +++ b/custom_components/georide/__init__.py @@ -290,9 +290,9 @@ class GeoRideContext: event_data = { "device_id": tracker.tracker_id, - "type": "on_lock", + "device_name": tracker.tracker_name } - self._hass.bus.async_fire(f"{DOMAIN}_event", event_data) + self._hass.bus.async_fire(f"{DOMAIN}_lock_event", event_data) asyncio.run_coroutine_threadsafe( coordinator.async_request_refresh(), self._hass.loop @@ -312,9 +312,9 @@ class GeoRideContext: event_data = { "device_id": tracker.tracker_id, - "type": "on_device", + "device_name": tracker.tracker_name, } - self._hass.bus.async_fire(f"{DOMAIN}_event", event_data) + self._hass.bus.async_fire(f"{DOMAIN}_device_event", event_data) asyncio.run_coroutine_threadsafe( coordinator.async_request_refresh(), self._hass.loop @@ -343,14 +343,27 @@ class GeoRideContext: _LOGGER.info("Device online detected") elif data.name == 'powerCut': _LOGGER.info("powerCut detected") + elif data.name == 'powerUncut': + _LOGGER.info("powerUncut detected") + elif data.name == 'batteryWarning': + _LOGGER.info("batteryWarning detected") + elif data.name == 'temperatureWarning': + _LOGGER.info("temperatureWarning detected") + elif data.name == 'magnetOn': + _LOGGER.info("magnetOn detected") + elif data.name == 'magnetOff': + _LOGGER.info("magnetOff detected") + elif data.name == 'sonorAlarmOn': + _LOGGER.info("sonorAlarmOn detected") else: - _LOGGER.warning("Unamanged alarm: %s", data.name) + _LOGGER.warning("Unmanaged alarm: %s", data.name) event_data = { "device_id": tracker.tracker_id, - "type": f"alarm_{data.name}", + "device_name": tracker.tracker_name, + "type": f"alarm_{data.name}" } - self._hass.bus.async_fire(f"{DOMAIN}_event", event_data) + self._hass.bus.fire(f"{DOMAIN}_alarm_event", event_data) asyncio.run_coroutine_threadsafe( coordinator.async_request_refresh(), self._hass.loop ).result() @@ -372,9 +385,9 @@ class GeoRideContext: event_data = { "device_id": tracker.tracker_id, - "type": "position", + "device_name": tracker.tracker_name } - self._hass.bus.async_fire(f"{DOMAIN}_event", event_data) + self._hass.bus.async_fire(f"{DOMAIN}_position_event", event_data) asyncio.run_coroutine_threadsafe( coordinator.async_request_refresh(), self._hass.loop ).result() diff --git a/custom_components/georide/manifest.json b/custom_components/georide/manifest.json index cfd2280..a251d69 100644 --- a/custom_components/georide/manifest.json +++ b/custom_components/georide/manifest.json @@ -9,5 +9,5 @@ ], "dependencies": [], "codeowners": ["ptimatth"], - "version": "0.6.2" + "version": "0.7.0" } \ No newline at end of file diff --git a/hacs.json b/hacs.json index 33f17e1..79d0e21 100644 --- a/hacs.json +++ b/hacs.json @@ -4,5 +4,5 @@ "render_readme": true, "domains": ["devices_tracker", "sensor"], "country": ["FR"], - "homeassistant": "2021.4.0" + "homeassistant": "2021.6.0" } \ No newline at end of file