From 65cbc2f8a97fa696536855e46ae8f6ec7fbd52c0 Mon Sep 17 00:00:00 2001 From: Beta-User <> Date: Tue, 29 Jan 2019 06:40:22 +0000 Subject: [PATCH] MYSENSORS_DEVICE: fix enqueing method for some message types git-svn-id: https://svn.fhem.de/fhem/trunk@18443 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 1 + fhem/FHEM/10_MYSENSORS_DEVICE.pm | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/fhem/CHANGED b/fhem/CHANGED index 4fb882e11..6e03b1b50 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - bugfix: 10_MYSENSORS_DEVICE: fix enqueing method, Forum:#96518 - new: 98_inotify: initial release - new: 30_tradfri: initial release - new: 42_npmjs: Module to update Node.js modules via NPM package manager diff --git a/fhem/FHEM/10_MYSENSORS_DEVICE.pm b/fhem/FHEM/10_MYSENSORS_DEVICE.pm index c9b48a97f..dda05573b 100755 --- a/fhem/FHEM/10_MYSENSORS_DEVICE.pm +++ b/fhem/FHEM/10_MYSENSORS_DEVICE.pm @@ -415,6 +415,7 @@ sub onStreamMessage($$) { if (defined $hash->{OTA_Chan76_IODev}) { sendMessage($hash->{OTA_Chan76_IODev}, radioId => $hash->{radioId}, childId => 255, ack => 0, cmd => C_STREAM, subType => ST_FIRMWARE_RESPONSE, payload => $payload); } else { + $hash->{nowSleeping} = 0 if $hash->{nowSleeping}; sendClientMessage($hash, childId => 255, cmd => C_STREAM, ack => 0, subType => ST_FIRMWARE_RESPONSE, payload => $payload); } readingsSingleUpdate($hash, "state", "updating", 1) unless ($hash->{STATE} eq "updating"); @@ -687,6 +688,7 @@ sub onRequestMessage($$) { my ($hash,$msg) = @_; eval { my ($readingname,$val) = rawToMappedReading($hash, $msg->{subType}, $msg->{childId}, $msg->{payload}); + $hash->{nowSleeping} = 0 if $hash->{nowSleeping}; sendClientMessage($hash, childId => $msg->{childId}, cmd => C_SET, @@ -716,6 +718,7 @@ sub onInternalMessage($$) { if ($msg->{ack}) { Log3 ($name, 4, "MYSENSORS_DEVICE $name: response to time-request acknowledged"); } else { + $hash->{nowSleeping} = 0 if $hash->{nowSleeping}; sendClientMessage($hash,cmd => C_INTERNAL, childId => 255, subType => I_TIME, payload => time); Log3 ($name, 4, "MYSENSORS_DEVICE $name: update of time requested"); } @@ -742,6 +745,7 @@ sub onInternalMessage($$) { Log3 ($name, 4, "MYSENSORS_DEVICE $name: response to config-request acknowledged"); } else { readingsSingleUpdate($hash, "parentId", $msg->{payload}, 1); + $hash->{nowSleeping} = 0 if $hash->{nowSleeping}; sendClientMessage($hash,cmd => C_INTERNAL, ack => 0, childId => 255, subType => I_CONFIG, payload => AttrVal($name,"config","M")); Log3 ($name, 4, "MYSENSORS_DEVICE $name: respond to config-request, node parentId = " . $msg->{payload}); } @@ -925,7 +929,7 @@ sub sendClientMessage($%) { Log3 ($name,5,"$name is not sleeping, sending message!"); $hash->{retainedMessages}=scalar(@$messages) if (defined $hash->{retainedMessages}); } else { - Log3 ($name,5,"$name is sleeping, enqueueing message! "); + Log3 ($name,5,"$name is sleeping, enqueing message! "); #write to queue if node is asleep unless (defined $hash->{retainedMessages}) { $messages = {messages => [%msg]};