1 """Demo platform for the Device tracker component."""
3 from __future__
import annotations
11 from .const
import DOMAIN, SERVICE_RANDOMIZE_DEVICE_TRACKER_DATA
18 discovery_info: DiscoveryInfoType |
None =
None,
20 """Set up the demo tracker."""
22 def offset() -> float:
23 """Return random offset."""
24 return (random.randrange(500, 2000)) / 2e5 * random.choice((-1, 1))
26 def random_see(dev_id: str, name: str) ->
None:
27 """Randomize a sighting."""
31 gps=(hass.config.latitude + offset(), hass.config.longitude + offset()),
32 gps_accuracy=random.randrange(50, 150),
33 battery=random.randrange(10, 90),
36 def observe(call: ServiceCall |
None =
None) ->
None:
37 """Observe three entities."""
38 random_see(
"demo_paulus",
"Paulus")
39 random_see(
"demo_anne_therese",
"Anne Therese")
44 dev_id=
"demo_home_boy",
46 gps=(hass.config.latitude - 0.00002, hass.config.longitude + 0.00002),
51 hass.services.register(DOMAIN, SERVICE_RANDOMIZE_DEVICE_TRACKER_DATA, observe)
bool setup_scanner(HomeAssistant hass, ConfigType config, SeeCallback see, DiscoveryInfoType|None discovery_info=None)
None see(HomeAssistant hass, str|None mac=None, str|None dev_id=None, str|None host_name=None, str|None location_name=None, GPSType|None gps=None, int|None gps_accuracy=None, int|None battery=None, dict[str, Any]|None attributes=None)