Dishwasher Completed Alerts

I wanted to be sure that my dishwasher started and be alerted when it was completed.  Like most dishwashers, mine does not have any smart features or network connectivity.  Instead of directly interfacing with the dishwashser, I decided to use a smart plug that supports energy metering.  A Raspberry Pi continuously queries the smart plug to determine how much power it is consuming, then triggers IFTTT to send a notification to my phone and Watch when wattage exceeds 10 watts.  Now when my wife asks “did you start the dishwasher” I don’t have to rely on my late-night memory, and can just look at my phone.

I’m using this TP-Link HS100 smart plug because it unofficially supports network control.

This guy reverse engineered the smart plug’s network protocol.

This guy wrote a node module to simplify interfacing with the smart plug.

I wrote a node module to simplify getting notifications from an appliance when it starts and stops using power.  The script runs forever on my Raspberry Pi using PM2.

var SmartPlugPowerMonitor = require('smart-plug-power-monitor');

var smartPlugPowerMonitor = new SmartPlugPowerMonitor({
    smartPlugIP: "192.168.1.104",
    iftttMakerChannelKey: "abcdefg",
    startEventName: 'dishwasher-started',
    endEventName: 'dishwasher-completed',
    wattsThreshold: 10,
    pollIntervalSeconds: 15,
    startTimeWindowSeconds: 5,
    endTimeWindowSeconds: 20 * 60
});

smartPlugPowerMonitor.start();