From 01eab62d1d6b1ce77e63d29efb7bf57da74da8a1 Mon Sep 17 00:00:00 2001 From: diogo464 Date: Thu, 4 Dec 2025 20:44:16 +0000 Subject: merged temperature sensor examples --- examples/constant-temperature.rs | 43 ----------------------------- examples/random-temperature.rs | 43 ----------------------------- examples/temperature.rs | 58 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 86 deletions(-) delete mode 100644 examples/constant-temperature.rs delete mode 100644 examples/random-temperature.rs create mode 100644 examples/temperature.rs diff --git a/examples/constant-temperature.rs b/examples/constant-temperature.rs deleted file mode 100644 index fed76e5..0000000 --- a/examples/constant-temperature.rs +++ /dev/null @@ -1,43 +0,0 @@ -mod common; - -use common::AsyncTcp; -use embassy_executor::{Executor, Spawner}; -use embassy_time::Timer; -use static_cell::StaticCell; - -static RESOURCES: StaticCell = StaticCell::new(); - -#[embassy_executor::task] -async fn main_task(spawner: Spawner) { - let mut stream = AsyncTcp::connect(std::env!("MQTT_ADDRESS")); - - let mut device = embassy_ha::Device::new( - RESOURCES.init(Default::default()), - embassy_ha::DeviceConfig { - device_id: "example-device-id", - device_name: "Example Device Name", - manufacturer: "Example Device Manufacturer", - model: "Example Device Model", - }, - ); - - let temperature_sensor = device.create_temperature_sensor( - "temperature-sensor-id", - "Temperature Sensor Name", - embassy_ha::TemperatureUnit::Celcius, - ); - - spawner.must_spawn(temperature(temperature_sensor)); - - device.run(&mut stream).await; -} - -#[embassy_executor::task] -async fn temperature(mut sensor: embassy_ha::TemperatureSensor<'static>) { - loop { - sensor.publish(42.0); - Timer::after_secs(1).await; - } -} - -example_main!(); diff --git a/examples/random-temperature.rs b/examples/random-temperature.rs deleted file mode 100644 index 2bcae57..0000000 --- a/examples/random-temperature.rs +++ /dev/null @@ -1,43 +0,0 @@ -mod common; - -use common::AsyncTcp; -use embassy_executor::{Executor, Spawner}; -use embassy_time::Timer; -use static_cell::StaticCell; - -static RESOURCES: StaticCell = StaticCell::new(); - -#[embassy_executor::task] -async fn main_task(spawner: Spawner) { - let mut stream = AsyncTcp::connect(std::env!("MQTT_ADDRESS")); - - let mut device = embassy_ha::Device::new( - RESOURCES.init(Default::default()), - embassy_ha::DeviceConfig { - device_id: "example-device-id", - device_name: "Example Device Name", - manufacturer: "Example Device Manufacturer", - model: "Example Device Model", - }, - ); - - let temperature_sensor = device.create_temperature_sensor( - "temperature-sensor-id", - "Temperature Sensor Name", - embassy_ha::TemperatureUnit::Celcius, - ); - - spawner.must_spawn(temperature(temperature_sensor)); - - device.run(&mut stream).await; -} - -#[embassy_executor::task] -async fn temperature(mut sensor: embassy_ha::TemperatureSensor<'static>) { - loop { - sensor.publish(rand::random_range(0.0..50.0)); - Timer::after_secs(1).await; - } -} - -example_main!(); diff --git a/examples/temperature.rs b/examples/temperature.rs new file mode 100644 index 0000000..32f4887 --- /dev/null +++ b/examples/temperature.rs @@ -0,0 +1,58 @@ +mod common; + +use common::AsyncTcp; +use embassy_executor::{Executor, Spawner}; +use embassy_time::Timer; +use static_cell::StaticCell; + +static RESOURCES: StaticCell = StaticCell::new(); + +#[embassy_executor::task] +async fn main_task(spawner: Spawner) { + let mut stream = AsyncTcp::connect(std::env!("MQTT_ADDRESS")); + + let mut device = embassy_ha::Device::new( + RESOURCES.init(Default::default()), + embassy_ha::DeviceConfig { + device_id: "example-device-id", + device_name: "Example Device Name", + manufacturer: "Example Device Manufacturer", + model: "Example Device Model", + }, + ); + + let constant_temperature_sensor = device.create_temperature_sensor( + "constant-temperature-sensor-id", + "Constant Temperature Sensor", + embassy_ha::TemperatureUnit::Celcius, + ); + + let random_temperature_sensor = device.create_temperature_sensor( + "random-temperature-sensor-id", + "Random Temperature Sensor", + embassy_ha::TemperatureUnit::Celcius, + ); + + spawner.must_spawn(constant_temperature_task(constant_temperature_sensor)); + spawner.must_spawn(random_temperature_task(random_temperature_sensor)); + + device.run(&mut stream).await; +} + +#[embassy_executor::task] +async fn constant_temperature_task(mut sensor: embassy_ha::TemperatureSensor<'static>) { + loop { + sensor.publish(42.0); + Timer::after_secs(1).await; + } +} + +#[embassy_executor::task] +async fn random_temperature_task(mut sensor: embassy_ha::TemperatureSensor<'static>) { + loop { + sensor.publish(rand::random_range(0.0..50.0)); + Timer::after_secs(1).await; + } +} + +example_main!(); -- cgit