/homebridge-mqtt-power-P1

Plugin to HomeBridge optimized for work with Itead Sonoff POW hardware with firmware Sonoff-Tasmota via MQTT with log data to file. Partially emulate Elgato Eve Energy. Measure used power and write data to log text files.

Primary LanguageJavaScriptMIT LicenseMIT

homebridge-mqtt-power-consumption-log-tasmota

Plugin to HomeBridge optimized for work with Itead Sonoff POW hardware with firmware Sonoff-Tasmota via MQTT with log data to file. Partially emulate Elgato Eve Energy. Measure used power and write logged data to csv files. It acts as a power switch and meter energy consumed.

Like this? Please buy me a beer (or coffee) ;-) Donate a coder

MacWyznawca.pl Jaromir Kopp

Installation

sudo npm install -g homebridge-mqtt-power-consumption-log-tasmota

Description of log files

Period file: 2017-03-06 08:10:00 0.03798 1712 1712 1.00 7.560 213 0.03798 0.700 32.960

Data and time \t period used power [kWh] \t **power [W] \t ** apparent power [VA] \t power factor \t current [A] \t voltage [V] \t hourly used power [kWh] \t today used power [kWh] \t total used power [kWh]

Hourly file: 2017-03-04 08:00:00 1.23468 9.80263 14.68135 7 6 4

Data and time \t hourly used power [kWh] \t today used power [kWh] \t total used power [kWh] \t hour (UTC) \t day of week \t day of month

Daily file: 2017-03-04 08:41:02 9.80263 14.68135 6 4 2

Data and time \t daily used power [kWh] \t total used power [kWh] \t day of week \t day of month \t month (0-11)

Files are tab \t separated.

Sample HomeBridge Configuration


{

"bridge": {
    "name": "Homebridge",
    "username": "CC:22:3D:E3:CE:30",
    "port": 51826,
    "pin": "031-45-154"
},

"description": "This is an example configuration file. You can use this as a template for creating your own configuration file.",

"platforms": [],

"accessories": [
	{
		"accessory": "mqtt-power-consumption-log-tasmota",
		
		"name": "NAME OF THIS ACCESSORY",
		
		"url": "mqtt://MQTT-ADDRESS",
		"username": "MQTT USER NAME",
		"password": "MQTT PASSWORD",
		
		"topics": {
			"statusGet": "stat/sonoff/POWER",
			"statusSet": "cmnd/sonoff/power",
			"energyGet": "tele/sonoff/ENERGY",
			"stateGet": "tele/sonoff/STATE"
		},
		"onValue": "ON",
		"offValue": "OFF",
		
		"outletInUseBy": "current",
		"outletInUseCurrent": "0.01",
		
		"totalPowerResetBy": "month",
		
        "activityTopic": "tele/sonoff/LWT",
	    "activityParameter": "Online",
		
		"startCmd": "cmnd/sonoff/TelePeriod",
		"startParameter": "15",
		
		"patchToSave":"/root/.homebridge/",
		"savePeriod": "15",
		
		"timeOffset": "-60",
		
		"manufacturer": "ITEAD",
		"model": "Sonoff TH",
		"serialNumberMAC": "MAC OR SERIAL NUMBER"
	}
]

}

Description of the configuration file.

sonoff in topic - topics name of Your Sonoff switch.

"statusGet": "stat/sonoff/POWER" - status of switch.

"statusSet": "cmnd/sonoff/power" - command topic to set switch.

"energyGet": "tele/sonoff/ENERGY" - topic for energy telemetry information.

"stateGet": "tele/sonoff/STATE" - topic for cyclic telemetry information.

"onValue": "ON", "offValue": "OFF" - on and off value for switch. [optional]

"outletInUseBy": "current" - "outlet in use" it will be set only if the circuit current flows. [optional]

"outletInUseCurrent": "0.01" - The current above which the "outlet in use" will be activated. [optional]

"totalPowerResetBy": "month" - How often reset the consumed power: every "month", "year", or "" - never. [optional]

"activityTopic": "tele/sonoff/LWT" - last will topic for check online state. [optional]

"activityParameter": "Online" - last will payload for online state. [optional]

"startCmd": "cmnd/sonoff/TelePeriod" - command sent after the connection. [optional]

"startParameter": "60" - payload for startCmd. [optional]

"patchToSave":"/root/.homebridge/" - path to save text files with temperature data. [optional]

"savePeriod": "15" - period (minutes) for saving and check temperature. For save only min. and max. 24h temperature data set with "minus" ex "-15". Minimal preriod 10 minutes. Empty: save every 15 min. [optional]

"zeroHour": "23" - time (UTC) at which you want to reset the timer min./max. Empty to reset after 24 hours since the last minimum or maximum. [optional]

The files will be saved in the specified path with the "topic" (ex. Sonoff) in the file name ex. "/root/.homebridge/sonoff_period_10.csv", "/root/.homebridge/sonoff_hourly.csv".