UNPKG

hoover-washer-status-check

Version:
30 lines (28 loc) 1.03 kB
import { RemoteInfo } from 'dgram'; import { debug } from '../debug'; import { fetchWasherStatus } from '../washer/fetchStatus'; import { WasherStatus } from '../washer/WasherStatus'; import { logCurrentStatus } from '../statusLogger/mysql'; import { displayWaterTemperature } from '../homebridge/waterTemperature'; import { triggerIftttWebhookAfterEndLaundry } from '../ifttt/webhook'; export const onMessage = async (msg: Buffer, rinfo: RemoteInfo) => { debug.extend('onMessage')( `server got: ${msg} from ${rinfo.address}:${rinfo.port}`, ); try { const status: WasherStatus = await fetchWasherStatus(rinfo.address); const jobs = await Promise.all([ displayWaterTemperature(status), triggerIftttWebhookAfterEndLaundry(status), logCurrentStatus(status), ]); debug.extend('onMessage')( 'Washer status was processed by %s jobs', jobs.length, ); } catch (err) { debug.extend('onMessage')( `ERROR during processing washer status. ${err.message}`, ); } };