| 190 | } |
| 191 | |
| 192 | async fn status_event( |
| 193 | &self, |
| 194 | vars: &HashMap<String, String>, |
| 195 | pl: &integration::StatusEvent, |
| 196 | ) -> Result<()> { |
| 197 | let di = pl.device_info.as_ref().unwrap(); |
| 198 | let mut telemetry: BTreeMap<String, Value> = BTreeMap::new(); |
| 199 | telemetry.insert( |
| 200 | "status_margin".to_string(), |
| 201 | Value::Integer(pl.margin.into()), |
| 202 | ); |
| 203 | telemetry.insert( |
| 204 | "status_external_power_source".to_string(), |
| 205 | Value::Bool(pl.external_power_source), |
| 206 | ); |
| 207 | telemetry.insert( |
| 208 | "status_battery_level".to_string(), |
| 209 | Value::Float(pl.battery_level.into()), |
| 210 | ); |
| 211 | telemetry.insert( |
| 212 | "status_battery_level_unavailable".to_string(), |
| 213 | Value::Bool(pl.battery_level_unavailable), |
| 214 | ); |
| 215 | |
| 216 | let telemetry = Payload(telemetry); |
| 217 | |
| 218 | info!(dev_eui = %di.dev_eui, server = %self.server, "Sending device telemetry"); |
| 219 | self.send_telemetry(vars, &telemetry).await |
| 220 | } |
| 221 | |
| 222 | async fn location_event( |
| 223 | &self, |