What can you do with Felix?
Well, it really depends on what you want to do. We have a long-term goal to make our automation save us real money. We want it to save energy by optimising our heating, ventilation, and pool filtration. We want to save water by more intelligently managing the watering system. And we want to maintain the pool chemistry more accurately than we can manually. These are long term goals and not at all easy to achieve. Our first step was to build a flexible software system that could handle just about anything. Felix is the result.
Simple Usage
The first step is to configure your various input and output Devices. In Felix, it’s all done through the user interface, and the User Guide describes everything in great detail. Felix will then regularly read and store the values of your sensors, and allow you to control your output devices.
You can, of course, just use Felix as a centralised control panel to view the state of your sensors and action your controls. And since Felix is a webserver, you can do that from any PC in your house, or, if you choose, anywhere in the world. That alone is a great start, but it’s where many so-called automation systems end. Felix goes much, much further.
You can define Panels so that people can access control functions without bothering about the system configuration. This is one area where we will continue to enhance Felix, by allowing the configuration of really sophisticated looking Panels with greater use of images, layouts and controls suitable for touch-screen interfaces and advanced mobile devices.
Remote Control
One really useful application is monitoring a building remotely using any computer connected to the internet, or a mobile phone. You really can switch the heating on while you are on your way home, or monitor the state of your pool from the beach!
Automation
As a next step you can use Felix’s Timers to perform simple regular switching functions. These work rather like a Central Heating timer, but are much more flexible.
The real power of Felix is in its Script language and Script execution engine. You can write Scripts of any complexity to make decisions based on input values, and implement actions based on them. Scripts can action output Devices, or execute external commands like sending an email or a text. They can also write to files, Panels, and Global Variables.
Most automation functions cannot be achieved with simplistic algorithms. It’s nowhere near good enough to say, “if pH > 7.3 add acid”. You need a lot more safeguards and intelligence than that. What if the pH sensor goes faulty, or sends a single erroneous reading? You might add far too much acid! What if the acid requirement gradually creeps up over time? You need to get a report about that, perhaps in an email. Safe, reliable algorithms are not trivial, and are likely to need tweaking to suit your exact requirements. And you need really comprehensive logging to know exactly what is going on. We once installed a commercial pH controller. It was a disaster. It was a terrible, closed system that gave us no information and no real control. Felix fixes that.
Data Archiving and Analysis
Felix has its own built-in SQL database with facilities for producing graphs and tables of current and historical data, but you can also export the data to an external system for more detailed analysis. We export to a MySql database on our web host, where we can also produce graphs and tables. Felix can export data in CSV, XML, or SQL format, and executes a post command after each export. In our case the post command FTP’s the SQL file to the web host, where a simple Cron job posts it into the database. We supply our FTP utility with Felix, and the user guide lists the Cron job. With Felix’s flexible export function, you should be able to do anything you like with your data.