aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authordiogo464 <[email protected]>2025-12-14 14:17:56 +0000
committerdiogo464 <[email protected]>2025-12-14 14:17:56 +0000
commitab4a7c83e00314a2f5d2f455987ba530fd08bdd7 (patch)
tree721360b4ff8f89c08b1c156bd1033e46b9caebe7 /examples
parent871b67e886ed9853e3fa392ff33a05c7da09fe9b (diff)
added category field to entity discovery payload
Diffstat (limited to 'examples')
-rw-r--r--examples/sensor.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/examples/sensor.rs b/examples/sensor.rs
index 2fd2d1f..acbb3ab 100644
--- a/examples/sensor.rs
+++ b/examples/sensor.rs
@@ -51,8 +51,25 @@ async fn main_task(spawner: Spawner) {
51 }, 51 },
52 ); 52 );
53 53
54 let signal_strength_sensor = embassy_ha::create_sensor(
55 &device,
56 "signal-strength-sensor-id",
57 embassy_ha::SensorConfig {
58 common: embassy_ha::EntityCommonConfig {
59 name: Some("Signal Strength"),
60 category: Some(embassy_ha::EntityCategory::Diagnostic),
61 ..Default::default()
62 },
63 class: embassy_ha::SensorClass::SignalStrength,
64 state_class: embassy_ha::StateClass::Measurement,
65 unit: Some(embassy_ha::constants::HA_UNIT_SIGNAL_STRENGTH_DBM),
66 suggested_display_precision: Some(0),
67 },
68 );
69
54 spawner.must_spawn(random_temperature_task(temperature_sensor)); 70 spawner.must_spawn(random_temperature_task(temperature_sensor));
55 spawner.must_spawn(random_humidity_task(humidity_sensor)); 71 spawner.must_spawn(random_humidity_task(humidity_sensor));
72 spawner.must_spawn(random_signal_strength_task(signal_strength_sensor));
56 73
57 embassy_ha::run(&mut device, &mut stream).await.unwrap(); 74 embassy_ha::run(&mut device, &mut stream).await.unwrap();
58} 75}
@@ -73,4 +90,12 @@ async fn random_humidity_task(mut sensor: embassy_ha::Sensor<'static>) {
73 } 90 }
74} 91}
75 92
93#[embassy_executor::task]
94async fn random_signal_strength_task(mut sensor: embassy_ha::Sensor<'static>) {
95 loop {
96 sensor.publish(rand::random_range(-90.0..-30.0));
97 Timer::after_secs(1).await;
98 }
99}
100
76example_main!(); 101example_main!();