Fix type-o in writeFailed error handling

This commit is contained in:
Victor Hagelbäck 2021-02-11 22:45:13 +01:00
parent 853511a755
commit d133efe228
2 changed files with 24 additions and 15 deletions

View file

@ -123,14 +123,19 @@ class MqttClient extends EventEmitter {
const messageString = message.toString(); const messageString = message.toString();
const isJsonMessage = messageString.startsWith('{'); const isJsonMessage = messageString.startsWith('{');
const command = isJsonMessage const command = isJsonMessage ? JSON.parse(messageString) : messageString;
? JSON.parse(messageString)
: messageString;
if (!isJsonMessage && messageString === 'ON' && this.deviceRegistry.getScene(decodedTopic.id)) { if (
!isJsonMessage
&& messageString === 'ON'
&& this.deviceRegistry.getScene(decodedTopic.id)
) {
// Guess that id that got state command without dim value belongs to Scene, not Device // Guess that id that got state command without dim value belongs to Scene, not Device
// This guess could very well be wrong depending on the installation... // This guess could very well be wrong depending on the installation...
logger.warn(`Device id ${decodedTopic.id} belongs to both scene and device, guessing Scene is what should be set to ON. OFF commands still sent to device.`); logger.warn(
`Device id ${decodedTopic.id} belongs to both scene and device, guessing Scene is what should be set to ON.`
+ 'OFF commands still sent to device.',
);
device = this.deviceRegistry.getScene(decodedTopic.id); device = this.deviceRegistry.getScene(decodedTopic.id);
} }
const deviceName = device ? device.name : ''; const deviceName = device ? device.name : '';
@ -164,7 +169,9 @@ class MqttClient extends EventEmitter {
logger.verbose(`Warning: Unknown command ${decodedTopic.command} in decoded topic`); logger.verbose(`Warning: Unknown command ${decodedTopic.command} in decoded topic`);
} }
} else { } else {
logger.verbose(`Warning: Got unrecognized mqtt command on '${topic}': ${message.toString()}`); logger.verbose(
`Warning: Got unrecognized mqtt command on '${topic}': ${message.toString()}`,
);
} }
} }
}); });

View file

@ -617,17 +617,17 @@ class PlejBLEHandler extends EventEmitter {
logger.verbose(`Error message: ${error.message}`); logger.verbose(`Error message: ${error.message}`);
let errorIndicatesDisconnected = false; let errorIndicatesDisconnected = false;
if (error.message.contains('error: 0x0e')) {
if (error.message.includes('error: 0x0e')) {
logger.error("'Unlikely error' (0x0e) writing to Plejd. Will retry.", error); logger.error("'Unlikely error' (0x0e) writing to Plejd. Will retry.", error);
} else if (error.message.contains('Not connected')) { } else if (error.message.includes('Not connected')) {
logger.error( logger.error("'Not connected' writing to Plejd. Plejd device is probably disconnected.");
"'Not connected' (0x0e) writing to Plejd. Plejd device is probably disconnected.",
);
errorIndicatesDisconnected = true; errorIndicatesDisconnected = true;
} else if (error.message.contains('Method "WriteValue" with signature')) { } else if (error.message.includes('Method "WriteValue" with signature')) {
logger.error("'Method \"WriteValue\" doesn't exist'. Plejd device is probably disconnected."); logger.error("'Method \"WriteValue\" doesn't exist'. Plejd device is probably disconnected.");
errorIndicatesDisconnected = true; errorIndicatesDisconnected = true;
} }
logger.verbose(`Made it ${errorIndicatesDisconnected} || ${this.consecutiveWriteFails >= 5}`);
if (errorIndicatesDisconnected || this.consecutiveWriteFails >= 5) { if (errorIndicatesDisconnected || this.consecutiveWriteFails >= 5) {
logger.warn( logger.warn(
@ -647,14 +647,14 @@ class PlejBLEHandler extends EventEmitter {
await this.characteristics.ping.WriteValue([...ping], {}); await this.characteristics.ping.WriteValue([...ping], {});
pong = await this.characteristics.ping.ReadValue({}); pong = await this.characteristics.ping.ReadValue({});
} catch (err) { } catch (err) {
logger.error(`Error pinging Plejd ${err.message}`); logger.verbose(`Error pinging Plejd, calling onWriteFailed... ${err.message}`);
await this.onWriteFailed(err); await this.onWriteFailed(err);
return; return;
} }
// eslint-disable-next-line no-bitwise // eslint-disable-next-line no-bitwise
if (((ping[0] + 1) & 0xff) !== pong[0]) { if (((ping[0] + 1) & 0xff) !== pong[0]) {
logger.error('Plejd ping failed'); logger.verbose('Plejd ping failed, pong contains wrong data. Calling onWriteFailed...');
await this.onWriteFailed(new Error(`plejd ping failed ${ping[0]} - ${pong[0]}`)); await this.onWriteFailed(new Error(`plejd ping failed ${ping[0]} - ${pong[0]}`));
return; return;
} }
@ -901,7 +901,9 @@ class PlejBLEHandler extends EventEmitter {
this.emit('sceneTriggered', deviceId, sceneId); this.emit('sceneTriggered', deviceId, sceneId);
} else if (cmd === 0x1b) { } else if (cmd === 0x1b) {
logger.silly('Command 001b seems to be some kind of often repeating ping/mesh data'); logger.silly(
'Command 001b is the time of the Plejd devices command, not implemented currently',
);
} else { } else {
logger.verbose( logger.verbose(
`Command ${cmd.toString(16)} unknown. ${decoded.toString( `Command ${cmd.toString(16)} unknown. ${decoded.toString(