Solar Power Monitoring

Our home obtains its electrical power form both the local power company (the Grid) and from a Solar Electric Panel system.

The power system, while easy to use, is pretty complex to describe and to manage (especially if you are an engineer and want to know exactly what's happening). So I needed a system to let me "see" exactly what is going on and how much power is being processed where.

Outback Mate 3 - Ethernet connected

This package consists of two major parts:

  1. a continuously running program (obServer.py) that collects real-time data and saves it to a file once a minute. At midnight the file is cleared and the process begins again.
  2. a web browser page (mate3.html)that displays both the most recent real-time data and a set of charts of the most significant items for the current day.
The continuous program is currently a Python console process built using Python 2.71. It reads the MATE3 real time CGI process every 60 seconds via the LAN and appends what it receives to the file OBdata.txt in the local web servers ../outback folder. In addition the program also reads the Mate3 XML config file each hour and places that information file OBconfig.txt in the local web servers ../outback folder.

The web browser's Javascript file reads the OBdata.txt to produce the charts. It also reads OBConfig.txt to have that information available. The web page produced is a variant of Outbacks internal web page and provides all of the information it does as well as the daily chart set.

The web page provided here is written using features of HTML5 and a browser supporting the protocol is required. Also the browser must support CSS3 and JavaScript (ECMAScript 5). IE currently does not work; firefox 3.6+ & 4+, Chrome 11+, and Safari 5+ are all fine.

Currently the browser code assumes 2 FX Inverters, a FNDC Battery Monitor and a single MX Charge Controller. The user can comment out those devices not being used. It should be noted that while the Slave Inverter is plotted seperate from the Master, the tabulated information is for the Master alone (except for the accumulated kWh which includes both).

The Python program observer.py may be placed anywhere on the LAN you desire so long as it has access to your web servers page folders mentioned above. The broswer program mate3html (and its attendant parts) must also be placed in the above mentioned .../outback folder.
download package



The Original Outback Mate - Serial port connected

OB2SG - Outback to JDS Stargate

OB2SG takes advantage of the communications interface of my "Outback Power Systems" MATE controller to show in tabular and graphical form how the various components are performing. It also sends alarm information to my StarGate Home controller to let me know of events like loss of grid power, low battery, etc.

OB2SG performs these multiple functions:

The program is based on a generic Outback Device object with descendent objects for the FX inverter and MX controller. Each object knows how to plot its own performance, and log its activity.

This allows the program to deal with as many FX and/or MX devices as may appear in the communications stream. As each new device reports, a new display screen unique to it will appear.

At any time a user may view: tabular list of last 30 days for any device; average day's graph for any device for any past calendar month; actual performance graph for any past day for any device; download Delphi source code

download executable



Road Surface Management System

web-based version (2)

An unauthorized upgrade(?) of the Maine DOT distributed Road surface Management System (RSMS). It is designed as a web application using desktop, laptop, tablet or smartphone browsers. The central data repository is kept in a formal database which is locally cached at the browser. As the web pages themselves are also cached in the browser, independent offline use is possible.


This implementation has been enhanced to provide for inventory and status of road culverts, both driveway and cross-road. This is considered by the author to be information related to drainage. Currently the surface analysis functions do not make any use of this information.


This application REQUIRES Javascript; it will not work without Javascript being enabled. GPS function and Off-Line operation require browsers with that HTML5 support.


Users are strongly encouraged to use the latest desktop versions of Internet Explorer Firefox, Safari, Opera, or Google. All of these work well as does the Blackberry Browser version 6.0+ (and presumably other mobile browsers based upon Webkit). This application currently does not work well with MicroSoft Internet Explorer IE8 and earlier.


Run the online demo
(note: your first run will require you to refresh after the initial load. This is due to the need to initialize the browser caches.
If asked to allow local storage, please answer 'yes'.
Culvert surveys are not yet available )



OpenBiblio - Lookup.php

OpenBiblio is an easy to use, automated library system written in PHP containing OPAC, circulation, cataloging, and staff administration functionality. OpenBiblio library administration offers an intuitive interface with broad category tabs and sidebar.

Unfortunately it does not come with provisions to look up publications in an online catalog such as the U.S. Library of Congress - So I wrote an add-on for it.

This add-on provides a means to enter a ISBN, ISSN, or LCCN number for a publication and have the forthcoming data placed into the "new Bibliography" form for you. You may also search by Title & author, and you can specify Publisher, Publication location and date if necessary. In the event of multiple hits, you will be able to select the one to use; (note: The repository for the publication is noted on the results screen.) The add-on uses the international standard, Z3950, to obtain MARC records and places them into the correct entry fields of the OpenBiblio form. It also now supports the newer SRU protocol

The user may specify one or more Z3950 server Libraries to be searched. The same protocol (SRU or YAZ) will be used for all of them.

Release notes are included in the .zip file.

The best location to download from is SourceForge


OpenBiblio - new Member screen

OpenBiblio in it's original form requires the administrator to enter a previously manually assigned ID number. This may be suitable for larger libraries with library id cards having preprinted numbers on them.

However our community is small enough that all patrons are known on sight so no library cards are issued. Still OpenBiblio requires a unique card number for each patron.

I have modified the "mbr_Fields.php" file to determine the last assigned card number, increment that value, and put a proposed new number into the field.

view readme page (includes release notes updated 2 Mar 2005)

download new-Member files (version 2 Mar 2005)



WD2SG - WeatherDisplay to JDS Stargate

WD2SG was written to transfer weather data from a weather monitoring program to a Stargate Home Automation Controller.

In my case, weather data is collected by a Davis Weather Monitor II whose sensor package is located on my rooftop. The weather data is presented on a small LCD display on a hallway wall. From there it is transmitted to my household server where it is read by a Windows program called WeatherDisplay, (usually referred to as "WD")

Among other things, WD provides a log file each minute containing weather data of my choosing.

WD2SG looks for the file each minute, reads it, manipulates the data as needed, and then sends it in appropriate format via TELNET over my household LAN to my Stargate controller.

download Delphi source code

download executable