home.newts.org is a tiny Raspberry Pi Linux computer. Currently it runs pyweather to connect my Davis Vantage Pro2 weather station to wunderground.com. It also runs my tf mud client in a screen session and has a Cherokee web server that consolidates some information about the house and the solar power generation.
http://home.newts.org:8089/cgi-bin/home.py
The page uses python to get XML data from the Vera Z-wave controller and thermostat and HTML data from the Enphase Envoy gateway controller.
#!/usr/bin/python import xml.etree.ElementTree as ET import urllib2 import re from bs4 import BeautifulSoup import time page = open('index.html').read() now = time.localtime(time.time()) day = now.tm_mday year = now.tm_year month = now.tm_mon # get the inside temperature # vera = 'http://192.168.1.4:3480/data_request?id=lu_sdata&output_format=xml' vera_xml_data = urllib2.urlopen(vera).read() root = ET.fromstring(vera_xml_data) units = root.findall(".")[0].attrib['temperature'] thermostat = root.findall(".//devices/device[@name='Thermostat']")[0] temperature = thermostat.attrib['temperature'] setting = thermostat.attrib['heatsp'] inside_temperature = 'Temperature = %s°%s Thermostat = %s°%s' % (temperature,units,setting,units) # Get the solar production data # solar_home_page = urllib2.urlopen('http://192.168.1.232/home').read() solar_production_page = urllib2.urlopen('http://192.168.1.232/production?locale=en').read() solar_re = re.compile(r'<!-- START MAIN PAGE CONTENT -->.*<!-- END MAIN PAGE CONTENT -->', re.MULTILINE+re.DOTALL) solar_home = solar_re.findall(solar_home_page)[0] solar_production = solar_re.findall(solar_production_page)[0] soup = BeautifulSoup(solar_home) tables = soup.find_all('table') solar_statistics = tables[1] solar_data = """ %s %s """ % (solar_statistics,solar_production) <h2>%s</h2> \n%s' % (time.asctime(now),graph_data) print 'Content-type: text/html\n\n' print page % (graph_data,inside_temperature,solar_data)