while let Ok(msg_opt) = strm.recv().await {
if let Some(msg) = msg_opt {
let data = std::str::from_utf8(msg.payload()).unwrap();
- let command = json::parse(data).unwrap();
let resp_topic = msg.topic().replace("/cmnd", "/result");
+ let command = match json::parse(data) {
+ Ok(command) => command,
+ Err(e) => {
+ send_command_response(&cli, &resp_topic, e.to_string().as_str()).await;
+ continue;
+ }
+ };
+
if command["action"].is_null() {
send_command_response(&cli, &resp_topic, "no action supplied").await;
continue;