TL;DR onderaan
Vooropgesteld, ik ben geen C++ coder en Domoticz is een prachtig pakket, ik probeer hier niemand te bashen...
Huidig
Ik gebruik al enige tijd Domoticz i.c.m. RFXtrx433 en RaZberry.
Over het algemeen ben ik zeer tevreden over Domoticz
- Draait goed op een Raspberry Pi
- Makkelijk te beheren
- Actief development "team"
- Mooie WebUI die op alle browsers naar behoren werkt
- Makkelijke (onofficiële) Android app
- Z-Wave support middels Z-Way (mogelijk niet lang meer) en via OpenZWave
So far so good.
Nu ben ik echter sinds kort in het bezit van een paar Philips Hue lampen.
Leuk speelgoed met een mooie JSON api die goed gedocumenteerd is.
Ondersteuning hiervoor ontbrak echter nog in Domoticz, dus braaf een feature requests ingeschoten op het forum.
Hier werd ik er op gewezen dat er wel support was voor Limitless / AppLamp / etc (die wifi lamp die onder vele namen verkocht wordt), deze implementatie zou een goede basis / goed voorbeeld zijn om Hue support in te bouwen.
Ondanks mijn gebrek aan C++ wilde ik toch een poging wagen om zelf support in te bouwen en zo iets terug te doen voor de community.
Hiervoor ben ik in de code gaan kijken naar de Limtiless implementatie.
Tot mijn schrik kwam ik op heel veel verschillende plaatsen referenties naar Limitless tegen, zelfs in code die bedoelt leek voor de RFXtrx433.
Het lijkt er dus op dat Domoticz zonder enige vorm van modulariteit is opgezet.
An sich niet gek, gezien de ontwikkelingen die Domoticz in korte tijd heeft doorgemaakt en het feit dat het van origine (volgens mij) alleen bedoelt was om met de RFXtrx433 te werken.
Daarbij opgeteld dat het overgrote deel van de ontwikkeling door slechts 2 ontwikkelaars gedaan wordt, zie ik het niet snel gebeuren dat er een re-build van de code komt.
Dit alles heeft mij er toe doen besluiten om naar alternatieven te gaan kijken.
Nieuw
Al snel kwam ik uit op
openHAB.
What is openHAB?
openHAB is a software for integrating different home automation systems and technologies into one single solution that allows over-arching automation rules and that offers uniform user interfaces.
This means openHAB
- is designed to be absolutely vendor-neutral as well as hardware/protocol-agnostic
- can run on any device that is capable of running a JVM (Linux, Mac, Windows)
- lets you integrate an abundance of different home automation technologies into one
- has a powerful rule engine to fulfill all your automation needs
- comes with different web-based UIs as well as native UIs for iOS and Android
- is fully open source
- is maintained by a passionate and growing community
- is easily extensible to integrate with new systems and devices
- provides APIs for being integrated in other systems
...
Architectural Principles
openHAB does not try to replace existing solutions, but rather wants to enhance them - it can thus be considered as a system of systems. It therefore assumes that the sub-systems are setup and configured independently of openHAB as this is often a very specific and complex matter (including "pairing" processes, direct device links etc.). Instead, openHAB focuses on the "daily use" side of things and abstracts from the devices themselves.
A core concept for openHAB is the notion of an "item". An item is a data-centric functional atomic building block - you can think of it as an "capability". openHAB does not care whether an item (e.g. a temperature value) is related to a physical device or some "virtual" source like a web service or an calculation result. All features offered by openHAB are using this "item" abstraction, which means that you will not find any reference to device specific things (like IP addresses, IDs etc.) in automation rules, UI definitions and so on. This makes it perfectly easy to replace one technology by another without doing any changes to rules and UIs.
A very important aspect of openHAB's architecture is its modular design. It is very easy to add new features (like the integration with yet another system through a "binding") and you can add and remove such features at runtime. This modular approach has been a huge enabler for the active community around openHAB with many engaged contributors.
Voordelen:
- Cross-platform (Java), dus ook op de Raspberry Pi
- RFXtrx433 support
- Z-Wave support (als het goed is ook middels de RazBerry)
- Modulair van opzet d.m.v. bindings
- WebUI, iOS en Android app beschikbaar
Nadelen:
- Beheer is meer gericht op de gevorderde gebruiker (al vind ik dit zelf geen ramp)
- WebUI is gemaakt voor Webkit en werkt dus niet even goed op Firefox.
- Eigen implementatie van Z-Wave, geen gebruik gemaakt van bestaande implementaties als OpenZWave. Deels dus wiel opnieuw uitvinden. (hiervoor is gekozen om zo cross platform mogelijk te blijven)
Na mijn eerste test opzet in openHAB ben ik zeer positief en wil binnenkort dan ook mijn Domotica system om gaan zetten.
Echter...
TL;DR
Ik kan op GoT (en op domoticaforum.eu) maar weinig vinden over openHAB.
Onbekend maakt onbemind?
Of is het een dermate slecht pakket dat het beter gemeden kan worden?