more MQTT printf debugging
This commit is contained in:
@@ -404,6 +404,7 @@ fn check_connection(ipaddress: String) -> bool {
|
|||||||
}
|
}
|
||||||
/// Publishes weather and transit data to MQTT broker
|
/// Publishes weather and transit data to MQTT broker
|
||||||
fn publish_to_mqtt(client: &Client, data: &Option<Result<Forecast, String>>, straba_res: &NextDeparture) {
|
fn publish_to_mqtt(client: &Client, data: &Option<Result<Forecast, String>>, straba_res: &NextDeparture) {
|
||||||
|
|
||||||
let payload = if let Some(Ok(forecast)) = data {
|
let payload = if let Some(Ok(forecast)) = data {
|
||||||
if let Some(f) = forecast.list.first() {
|
if let Some(f) = forecast.list.first() {
|
||||||
let temp = f.main.temp;
|
let temp = f.main.temp;
|
||||||
@@ -417,20 +418,28 @@ fn publish_to_mqtt(client: &Client, data: &Option<Result<Forecast, String>>, str
|
|||||||
} else {
|
} else {
|
||||||
"no_data".to_string()
|
"no_data".to_string()
|
||||||
};
|
};
|
||||||
let msg = MqttMessage::new("ledboard/forecast", payload, 1);
|
let msg = MqttMessage::new("ledboard/forecast", payload.clone(), 1);
|
||||||
if let Err(e) = client.publish(msg) {
|
if let Err(e) = client.publish(msg) {
|
||||||
eprintln!("Error publishing MQTT message: {}", e);
|
eprintln!("Error publishing MQTT message: {}", e);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
println!("MQTT | Publish {0} = {1}", "ledboard/forecast", payload.clone());
|
||||||
|
}
|
||||||
|
|
||||||
let payloadPT = {
|
let payloadPT = {
|
||||||
format!("out:{}min,in:{}min",
|
format!("out:{}min,in:{}min",
|
||||||
straba_res.outbound_diff / 60,
|
straba_res.outbound_diff / 60,
|
||||||
straba_res.inbound_diff / 60)
|
straba_res.inbound_diff / 60)
|
||||||
};
|
};
|
||||||
let ptmsg = MqttMessage::new("ledboard/public_transportation", payloadPT, 1);
|
let ptmsg = MqttMessage::new("ledboard/public_transportation", payloadPT.clone(), 1);
|
||||||
if let Err(e) = client.publish(ptmsg) {
|
if let Err(e) = client.publish(ptmsg) {
|
||||||
eprintln!("Error publishing MQTT message: {}", e);
|
eprintln!("Error publishing MQTT message: {}", e);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
println!("MQTT | Publish {0} = {1}", "ledboard/public_transportation", payloadPT.clone());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Message {
|
struct Message {
|
||||||
@@ -505,11 +514,11 @@ fn main_function(parameter1: String, parameter2: Option<String>) -> ExitCode {
|
|||||||
let lwt = paho_mqtt::Message::new(&format!("{}/lwt", GlobalConfiguration.lock().unwrap().mqttPrefix), "lost connection", 1);
|
let lwt = paho_mqtt::Message::new(&format!("{}/lwt", GlobalConfiguration.lock().unwrap().mqttPrefix), "lost connection", 1);
|
||||||
|
|
||||||
// Make the connection to the broker
|
// Make the connection to the broker
|
||||||
println!("MQTT | Connecting to the MQTT server...");
|
println!("MQTT | Connecting to the MQTT server...");
|
||||||
|
|
||||||
// Initialize MQTT client from MQTT_BROKER env var (else disabled)
|
// Initialize MQTT client from MQTT_BROKER env var (else disabled)
|
||||||
let mqtt_client: Option<Client> = {
|
let mqtt_client: Option<Client> = {
|
||||||
println!("MQTT | Connecting to {:} MQTT server...", GlobalConfiguration.lock().unwrap().mqttIPAddress);
|
println!("MQTT | Connecting to {:} MQTT server...", GlobalConfiguration.lock().unwrap().mqttIPAddress);
|
||||||
// Read broker URL from environment
|
// Read broker URL from environment
|
||||||
let broker = GlobalConfiguration.lock().unwrap().mqttIPAddress.clone();
|
let broker = GlobalConfiguration.lock().unwrap().mqttIPAddress.clone();
|
||||||
if broker.is_empty() {
|
if broker.is_empty() {
|
||||||
@@ -542,7 +551,6 @@ fn main_function(parameter1: String, parameter2: Option<String>) -> ExitCode {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Define the set of options for the connection
|
// Define the set of options for the connection
|
||||||
|
|
||||||
// move local instance to global scope
|
// move local instance to global scope
|
||||||
gmc.set_mqtt_client(mqtt_client);
|
gmc.set_mqtt_client(mqtt_client);
|
||||||
}
|
}
|
||||||
@@ -565,18 +573,29 @@ fn main_function(parameter1: String, parameter2: Option<String>) -> ExitCode {
|
|||||||
// Render start
|
// Render start
|
||||||
send_package(GlobalConfiguration.lock().unwrap().panelIPAddress.clone(), &last_data, &straba_res, Some("MQTT: room/ledboard".to_string()));
|
send_package(GlobalConfiguration.lock().unwrap().panelIPAddress.clone(), &last_data, &straba_res, Some("MQTT: room/ledboard".to_string()));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
|
||||||
if GlobalConfiguration.lock().is_ok() && GlobalConfiguration.lock().unwrap().mqttPrefix.len() > 0
|
|
||||||
{
|
{
|
||||||
if let Some(ref client) = &(MQTTCLIENT.lock().unwrap().get_mqtt_client()) {
|
println!("PANEL | No Panel updated");
|
||||||
|
}
|
||||||
|
|
||||||
|
if GlobalConfiguration.lock().is_ok()
|
||||||
|
{
|
||||||
|
let l_mqtt_prefix = &GlobalConfiguration.lock().unwrap().mqttPrefix;
|
||||||
|
println!("MQTT | Publish to {0}", l_mqtt_prefix);
|
||||||
|
|
||||||
|
if let Some(ref client) = MQTTCLIENT.lock().unwrap().get_mqtt_client() {
|
||||||
|
println!("MQTT | Client is {0:?}", client.client_id());
|
||||||
publish_to_mqtt(client, &last_data, &straba_res);
|
publish_to_mqtt(client, &last_data, &straba_res);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
eprintln!("MQTT | client for publishing not found");
|
eprintln!("MQTT | client for publishing not found");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
println!("MQTT | No Topic updated");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
|
|||||||
Reference in New Issue
Block a user