No screenshots (yet) since I'm pushing the data to openHAB to allow for Home Automation events, more than display/graphs (although it can do both).
Arch wise it's just:
Code: Select all
GEM (RN-XV) ---> btmon.py (RPi B) ---> MQTT Broker/mosquitto (ODroid C1) <---> openHAB + HA Bindings (ODroid C1)
ECM-1240 (USB-Serial)---^ ^ ^ (Lights|TStats|Alarm|AV)
/ \
v v
OwnTracks MQTTWarn
I pump all the same data that btmon emits (
W, Wh, dWh, Temp, Pulse), and allow btmon to have optional
aliases for each Channel into their counterpart MQTT Topic. btmon also publishes the data to SEG & PVOutput.
eg.
Code: Select all
[mqtt]
mqtt_out = true
mqtt_topic_base=/home/energy
mqtt_upload_period = 90
mqtt_host = odroid
mqtt_clientid = my_power
mqtt_user = bythepower
mqtt_passwd = ofgreyskull
mqtt_map = 010EIEI0_volts,volts,010EIEI0_ch1_w,bath_w,...010EIEI0_ch14_w,solar_w,010EIEI0_ch14_wh,
solar_wh,010EIEI0_ch14_dwh,solar_dwh,010EIEI0_ch,01000175_t1,garage_temperature,...
and you end up with a set of discrete MQTT topics like:
Code: Select all
/house/energy/volts
/house/energy/bath_w
/house/energy/solar_w
/house/energy/solar_wh
/house/energy/solar_dwh
/house/energy/garage_temperature
...
Then anything that can subscribe to the MQTT Broker will see the same data including:
and they'll all be updated as bymon would normally do for any of it's sinks - all the subscribers get to see the same data publication events.
In openHAB you bind them to
Items, and then write rules against them, put them into charts and/or simple displays. The raw Item update stream might look like:
Code: Select all
2015-09-16 16:56:12 - HouseVoltsAlt state updated to 127.2
2015-09-16 16:57:23 - HouseVolts state updated to 123.7
2015-09-16 16:57:23 - HousePowerGarage state updated to 41.297
2015-09-16 16:57:23 - HousePowerSolar state updated to 709.495
2015-09-16 16:57:23 - HousePowerGarageLights state updated to 20.967
2015-09-16 16:57:23 - HouseEnergyGarage state updated to 966622.902
2015-09-16 16:57:23 - HouseEnergySolar state updated to 6929898.28
2015-09-16 16:57:23 - HouseEnergyGarageLights state updated to 328703.711
2015-09-16 16:57:23 - HouseTemperatureGarage state updated to 75.0
2015-09-16 16:57:23 - HouseDEnergyGarage state updated to 1.044
2015-09-16 16:57:23 - HouseDEnergySolar state updated to 17.934
2015-09-16 16:57:23 - HouseDEnergyGarageLights state updated to 0.53
2015-09-16 16:57:43 - HouseVoltsAlt state updated to 125.8
2015-09-16 16:58:55 - HouseVolts state updated to 123.8
but the rule is just a script that looks at the Item values, sourced from the GEM-via-MQTT, and does stuff.
eg. shutdown stuff is today's Solar-gen is too low, or start Dish/Clothes washers if you have excess.