From 940db5e20f132afb2cad8da18d739341c45eac07 Mon Sep 17 00:00:00 2001 From: Lara Date: Sat, 9 Feb 2019 20:02:14 +0100 Subject: [PATCH] Add / before topic --- src/mqtt.rs | 4 ++-- src/mqtt_commands.rs | 2 +- src/mqtt_updates.rs | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/mqtt.rs b/src/mqtt.rs index 79be112..00f44f7 100644 --- a/src/mqtt.rs +++ b/src/mqtt.rs @@ -11,7 +11,7 @@ pub fn mqtt_connect( updates: crossbeam_channel::Receiver, ) -> Result<(MqttCommands, MqttUpdates), String> { let last_will = LastWill { - topic: format!("{}/status", crate::MQTT_ID), + topic: format!("/{}/status", crate::MQTT_ID), message: "disconnected".to_string(), qos: QoS::AtLeastOnce, retain: true, @@ -26,7 +26,7 @@ pub fn mqtt_connect( match MqttClient::start(options) { Ok((mut client, notifications)) => { match client.publish( - format!("{}/status", crate::MQTT_ID), + format!("/{}/status", crate::MQTT_ID), QoS::AtLeastOnce, true, "connected", diff --git a/src/mqtt_commands.rs b/src/mqtt_commands.rs index 0d963ad..33656f6 100644 --- a/src/mqtt_commands.rs +++ b/src/mqtt_commands.rs @@ -46,7 +46,7 @@ impl MqttCommands { fn handle_publish(&self, data: Publish) { lazy_static! { static ref matchStr: String = - format!(r"^{}/lights/([^/]+)/command/(\w+)$", crate::MQTT_ID); + format!(r"^/{}/lights/([^/]+)/command/(\w+)$", crate::MQTT_ID); static ref RE: Regex = Regex::new(&matchStr).unwrap(); } let matching = match RE.captures(&data.topic_name) { diff --git a/src/mqtt_updates.rs b/src/mqtt_updates.rs index 6c88d21..905df92 100644 --- a/src/mqtt_updates.rs +++ b/src/mqtt_updates.rs @@ -15,12 +15,12 @@ impl MqttUpdates { pub fn add_light(&mut self, id: &str, lightname: &str) -> Result<(), rumqtt::ClientError> { info!("Add light: {}", lightname); self.client.publish( - format!("{}/lights", crate::MQTT_ID), + format!("/{}/lights", crate::MQTT_ID), QoS::AtLeastOnce, false, format!("{}:{}", id, lightname), )?; - let base_url = format!("{}/lights/{}/", crate::MQTT_ID, lightname); + let base_url = format!("/{}/lights/{}/", crate::MQTT_ID, lightname); self.client.publish( base_url.clone() + "status/connected", QoS::AtLeastOnce, @@ -65,7 +65,7 @@ impl MqttUpdates { } Status::Remove(_name) => { if let Err(err) = self.client.publish( - format!("{}/lights/{}/status/connected", crate::MQTT_ID, _name), + format!("/{}/lights/{}/status/connected", crate::MQTT_ID, _name), QoS::AtLeastOnce, true, "false", @@ -82,7 +82,7 @@ impl MqttUpdates { let (detail, value) = update.status.unravel(); if let Err(err) = self.client.publish( format!( - "{}/lights/{}/status/{}", + "/{}/lights/{}/status/{}", crate::MQTT_ID, update.lightname, detail