diff --git a/src/apps/eclipse/mosquitto/mqtt/mode/numericvalue.pm b/src/apps/eclipse/mosquitto/mqtt/mode/numericvalue.pm index b46ec1f9a..45912855f 100644 --- a/src/apps/eclipse/mosquitto/mqtt/mode/numericvalue.pm +++ b/src/apps/eclipse/mosquitto/mqtt/mode/numericvalue.pm @@ -27,6 +27,7 @@ use warnings; use centreon::plugins::misc; use Time::HiRes qw(time); use POSIX qw(floor); +use Encode; sub new { my ($class, %options) = @_; @@ -119,8 +120,12 @@ sub check_options { sub manage_selection { my ($self, %options) = @_; + my $topic = $self->{option_results}->{topic}; + eval { + $topic = decode("utf8", $topic); + }; my $value = $options{mqtt}->query( - topic => $self->{option_results}->{topic} + topic => $topic ); if (!centreon::plugins::misc::is_empty($self->{option_results}->{extracted_pattern})) { diff --git a/src/apps/eclipse/mosquitto/mqtt/mode/stringvalue.pm b/src/apps/eclipse/mosquitto/mqtt/mode/stringvalue.pm index cca73acfa..0fc794467 100644 --- a/src/apps/eclipse/mosquitto/mqtt/mode/stringvalue.pm +++ b/src/apps/eclipse/mosquitto/mqtt/mode/stringvalue.pm @@ -27,6 +27,7 @@ use warnings; use centreon::plugins::misc; use Time::HiRes qw(time); use POSIX qw(floor); +use Encode; sub new { my ($class, %options) = @_; @@ -116,8 +117,12 @@ sub check_options { sub manage_selection { my ($self, %options) = @_; + my $topic = $self->{option_results}->{topic}; + eval { + $topic = decode("utf8", $topic); + }; my $value = $options{mqtt}->query( - topic => $self->{option_results}->{topic} + topic => $topic ); if (!centreon::plugins::misc::is_empty($self->{option_results}->{format_custom})) { diff --git a/src/centreon/plugins/mqtt.pm b/src/centreon/plugins/mqtt.pm index 3f08a4596..8e5e41f7e 100644 --- a/src/centreon/plugins/mqtt.pm +++ b/src/centreon/plugins/mqtt.pm @@ -122,7 +122,7 @@ sub query { $self->{mqtt}->unsubscribe($options{topic}); }; if (%mqtt_received) { - return %mqtt_received{$options{topic}}; + return $mqtt_received{$options{topic}}; } else { $self->{output}->add_option_msg(short_msg => 'No message in topic: ' . $options{topic}); $self->{output}->option_exit();