Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
#!/usr/bin/env python
from __future__ import print_function
from datetime import datetime
from subprocess import call
from mercury206 import commands, communications, config
def update_rrd(path, values):
value = ':'.join(['N'] + map(str, values))
call(['rrdtool', 'update', path, value])
print("Updated", path)
def add_readings(port, address):
readings = commands.display_readings(port, address)
update_rrd('tariffs.rrd', readings[:2])
def add_vcp(port, address):
voltage, current, power = commands.instant_vcp(port, address)
update_rrd('pcv.rrd', [power, current, voltage])
def main():
settings = config.get_settings()
port = communications.open_serial(settings['device'])
now =
if now.minute % 5 == 0:
add_readings(port, settings['address'])
add_vcp(port, settings['address'])
if __name__ == '__main__':
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment