Eclipse SmartHome
Product Details
Eclipse SmartHome is open-source home automation and IoT framework from the Eclipse Foundation. It supports many embedded devices such as Raspberry Pi, BeagleBone, Intel Edison, Orange Pi, Rock64 and more. It has been used by many companies around the world.
Eclipse SmartHome is a framework for building smart home solutions. With its very flexible architecture, it fosters the modularity provided by OSGi for Java applications. As such, Eclipse SmartHome consists of a rich set of OSGi bundles that serve different purposes. Not all solutions that build on top of Eclipse SmartHome will require all of those bundles - instead they can choose what parts are interesting for them.
There are the following categories of bundles:
- config: everything that is concerned with general configuration of the system like config files, xml parsing, discovery, etc.
- core: the main bundles for the logical operation of the system - based on the abstract item and event concepts.
- io: all kinds of optional functionality that have to do with I/O like console commands, audio support or HTTP/REST communication.
- model: support for domain specific languages (DSLs).
- designer: Eclipse RCP support for DSLs and other configuration files.
- ui: user interface related bundles that provide services that can be used by different UIs, such as charting or icons.
The goals of the Eclipse SmartHome project can be summarized as:
- Provide a flexible framework for smart home and ambient assisted living (AAL) solutions. This framework focuses on the use cases of this domain, e.g. on easy automation and visualization aspects.
- Specify extension points for integration possibilities and higher-level services. Extending and thus customizing the solution must be as simple as possible and this requires concise and dedicated interfaces.
- Provide implementations of extensions for relevant systems, protocols or standards. Many of them can be useful to many smart home solutions, so this project will provide a set of extensions that can be included if desired. They can also be in the shape of a general Java library or an OSGi bundle, so that these implementations can be used independently of the rest of the project as well.
- Provide a development environment and tools to foster implementations of extensions. The right tooling can support the emergence of further extensions and thus stimulates future contributions to the project.
- Create a packaging and demo setups. Although the focus is on the framework, it needs to be shown how to package a real solution from it, which can be used as a starting point and for demo purposes. Description
- The Eclipse SmartHome project is a framework that allows building smart home solutions that have a strong focus on heterogeneous environments, i.e. solutions that deal with the integration of different protocols or standards. Its purpose is to provide a uniform access to devices and information and to facilitate different kinds of interactions with them. This framework consists out of a set of OSGi bundles that can be deployed on an OSGi runtime and which defines OSGi services as extension points.
The stack is meant to be usable on any kind of system that can run an OSGi stack - be it a multi-core server, a residential gateway or a Raspberry Pi.
Features of Eclipse SmartHome
Extension Service
Eclipse SmartHome comes with an API that allows implementing a service that manages the installed extensions within a solution. All that needs to be done is to register an OSGi service that implements org.eclipse.smarthome.core.extension. ExtensionService. Such a service has to provide a list of available extensions and then can be called in order to install and uninstall them.
What kind of implementation is chosen is completely up to the solution. Suitable mechanisms might be Eclipse p2, Apache Felix FileInstall, Apache Karaf FeatureInstaller, etc. For testing purposes, Eclipse SmartHome comes with a sample implementation in the bundle org.eclipse.smarthome.core.extension.sample.
Installation and uninstallation requests are executed by a thread pool named “extensionService”. If an implementation does not support concurrent execution of such operations, the thread pool size should be set to 1.
User Interfaces
User interfaces normally use the REST API for communication, but if they are not client-side, but served from the runtime, they also have the option to use all local Java services.
Currently, there are 3 available user interfaces in Eclipse SmartHome: the Classic UI, the Basic UI and the Paper UI.
All user interfaces can share icon sets, so that these do not have to be included in every single user interface. Eclipse SmartHome comes with the following iconsets:
- org.eclipse.smarthome.ui.iconset.classic
Voice Services
Voice extensions provide implementations for Text-to-Speech, Speech-to-Text and Human Language Interpreter services.
These services are often very solution specific, so there is no one-fits-all implementation in Eclipse SmartHome. For easy demonstration, there is a TTS service available, which uses the built-in “say” command of MacOS (which obviously only works on Macs, though). Additionally, there is a basic human language interpreter implementation, which supports simple smart home commands like switching lights and controlling music both in English and German.
Pricing
39 Best Alternatives of Eclipse SmartHome
Braina
Siri
Sensory
Mycroft
Proxem
SoundHound
Josh.ai
Home Assistant
Ubidots
MisterHouse
OpenMotics
Home of FHEM
MajorDoMo
MyController
ioBroker Cloud
Gladys Assistant
Gorse
Genei
Spinner Chief
Chimp Rewriter
Writefull
Paraphraser.io
Word AI
Rephrasely
Duplichecker
Google Assistant
Amazon Alexa
Murf
Cortana
ELSA Speak
Socratic
Youper
Bixby
Gasby AI
Lindy.ai
Parrot AI
Leon Ai
Hound
Data Bot
Eclipse SmartHome Reviews
No reviews available.