Ruby JavaScript Shell C Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



What is it?

Main goal is to create not expensive system for home users to help monitor, control and optimize various tasks such as heating or lights. It has to be universal, easy to develop new features, and gain more remote control than basic home automation systems. Universal means that user should be able to use it for everything that can be monitored and controlled. Is there sensor? Yes? You can use it!

HomeIO is a mix of my two projects:

  1. Wind turbine control system - multilayer (hardware firmware, pc deamon, and web app) software for ensuring safety of wind turbine, control it without need of human influence.

  2. MetarLogger G. Win - tool for storing METAR weather data and creating graphs.

…but this is not a merge of two projects. It is recreated version which utilize code and ideas from this two projects with a lot of new features.

It is not something unreal - my wind control system works from 2008 and has nearly 30 million of measurements. This is photo of hardware for that project.

What is it now?

Current version is something like alpha with limited functions. It has only:

  1. metar logging

  2. weather logging with future prediction

  3. storing in DB using active record

  4. use gadu-gadu and jabber account as bot

  5. some data processing (min, max, avg weather information)

  6. simple IO server to communicate with microcontroller via RS232 (not integrated)

Features may vary.


Requirements may vary. It is early stage so I'm concentrated more on features and bugs, and requirements tend to change more rapidly.

List of required software:

  1. Requirements:

  1. Ruby 1.8.7

  2. Gems required. Prefered version in parenthesis.

  • activemodel (3.0.3)

  • activerecord (3.0.3)

  • activesupport (3.0.3)

  • geokit (1.5.0)

  • jabber4r (0.8.0)

  • mkrf (0.2.3)

  • mysql (2.8.1)

  • rgadu (0.2.1)

  • sqlite3-ruby (1.3.2)

  • xmpp4r (0.5)

How to use?

  1. install Ruby and gems

  2. check config files (./config/*) and try get to know the project, most important files at start are:

  1. Geolocation.yml - set your geographic coords here

  2. MetarLogger.yml - choose cities which you are interested in if default set is not good enough

  3. StorageActiveRecord.yml - choose sqlite, mysql or other Active Record capable database, and set configuration here. Just like in Rails.

  4. WeatherInteriaPl.yml, WeatherOnetPl.yml, WeatherWpPl.yml - you can set places to log weather using some popular Polish portals

  1. Create database, not schema

  2. Run 'rake db:init' - it should create and populate tables

  3. Run app:

  1. 'rake supervisor:start' - it will start server which listen to commands

  2. 'rake action:fetch_metar' - fetch metars set in MetarLogger.yml

  3. 'rake action:fetch_weather' - fetch weather data using WeatherRipper using (at this moment) some popular polish portals

  4. 'rake client:fetch_metar' - send command to server started by 'rake supervisor:start', and make it do 'rake action:fetch_metar'

  5. 'rake client:fetch_weather' - send command to server started by 'rake supervisor:start', and make it do 'rake action:fetch_weather'


As code and LICENCE stands - everything is in GPLv3. I'm not going to change it or close the project.

Help and contribution

Other command are available after running 'rake -T'. If you have problems you can mail me login 'bobikx' and the server is ''. Feel free to post bugs, feature reports, or (wishful thinking :] ) contribution offer at