PiOn is a home automation system designed to run on multiple Raspberry Pi's or any linux based system. It's purpose is to join together multiple smart (i.e. linux capable) devices ("Nodes") which are distributed throughout the home performing various smart home type tasks. PiOn is run on all devices and enables them to easily communicate and use each other's resources all using a single shared set of configuration files describing the system. This makes individual Node setup very simple, just point it at the configuration and add the Items etc to the config which that Node provides. PiOn provides a web interface intended to work well on all devices. The web UI can be accessed on any Node.
A primary goal of PiOn is to create a decentralised, fault tolerant network. For example in a traditional HA system one might have a central linux machine acting as the server, and 2 rpi's as effective slaves to implement a thermostat. One pi may be providing a temperature reading in one room, and the other controlling the heating via a relay. In this setup the loss of the central server could result in the relay pi simply remaining in it's last state (depending on how "dumb" it is in the system). This effectively means if your central server goes down, your heating along with all other switches, LED controllers, RFID controllers etc stop working.
PiOn is (almost) completely decentralised. I say almost completely because the shared config files themselves are kept in a centralised private git repo to allow all Nodes to say in sync with config changes. Should the config repo become unavailable the network will be unaffected, save for no config updates being possible of course, but will otherwise continue running as normal. The loss of any Node does not affect other Nodes, except of course for the loss of resources attached to the dead Node, but this can be gracefully handled. In this instance an rpi controlling a heating relay could lose contact with the Node providing it with room temperature data, but the relay Node is capable of acting independently and could be toggled manually until the temperature Node becomes available again, or this could be handled in some other way by a script, possibly failing over to another termperature sensor, or adopting a purely time-based system until the fault with the temperature Node is rectified.
PiOn is very much a work in progress, not really quite yet at a stage where I would recommend you try it, unless you're confident debugging PHP. That said, most of the above goals are implemented in at least basic form, and much of the backend power is there. The UI is still being developed, there are many more backend features to add and several liters of polish to apply.