diff --git a/fhem/FHEM/00_MQTT2_CLIENT.pm b/fhem/FHEM/00_MQTT2_CLIENT.pm index 5a082d3b5..4bffef3bf 100644 --- a/fhem/FHEM/00_MQTT2_CLIENT.pm +++ b/fhem/FHEM/00_MQTT2_CLIENT.pm @@ -523,6 +523,7 @@ MQTT2_CLIENT_Read($@) } else { Log 1, "M2: Unhandled packet $cpt, disconneting $name"; MQTT2_CLIENT_Disco($hash); + return; } # Allow some IO inbetween, for overloaded systems diff --git a/fhem/FHEM/00_MQTT2_SERVER.pm b/fhem/FHEM/00_MQTT2_SERVER.pm index 86516f84e..a8211f0c9 100644 --- a/fhem/FHEM/00_MQTT2_SERVER.pm +++ b/fhem/FHEM/00_MQTT2_SERVER.pm @@ -405,7 +405,7 @@ MQTT2_SERVER_Read($@) push @ret, ($qos > 1 ? 1 : 0); # max qos supported is 1 } # SUBACK - MQTT2_SERVER_out($hash, pack("CCnC*", 0x90, 3, $pid, @ret), $dump); + MQTT2_SERVER_out($hash, pack("CCnC*", 0x90, 2+@ret, $pid, @ret), $dump); if(!$hash->{answerScheduled}) { $hash->{answerScheduled} = 1;