JEMMA is a open-source (LGPL) framework which implements the Energy@home specifications for energy monitoring and management application. JEMMA currently supports the ZigBee Home Automation 1.2 and the ZigBee Gateway Device standards resulting from of a collaboration between the Energy@home Association and the ZigBee Alliance.
More information are available on the JEMMA Website and the JEMMA GitHub page.
JEMMA is a modular framework. To better handle development of each module, bundle developments are spread in a number of separate GitHub projects. The following table summarizes the current official JEMMA bundles.
Project | Description | Version |
---|---|---|
ismb/jemma | The core set of JEMMA components | 1.0.0-rc0 |
ismb/jemma.osgi.dal.adapter | JEMMA Dal Adapter | 1.1.1 |
ismb/jemma.drafts.org.osgi.osgi.service.dal | Dal Base Classes (draft) | 1.0.1 |
ismb/jemma.drafts.org.osgi.osgi.service.dal.functions | Dal Base Functions (draft) | 1.0.1 |
ismb/jemma.osgi.dal.functions.eh | DAL Classes Functions for Energy@home devicess | 1.0.1 |
ismb/jemma.osgi.dal.web-apis | JEMMA REST and WebSocket API to access Devices, Functions and Events available in OSGi Device Abstraction Layer | 2.0.1 |
ismb/jemma.osgi.ah.adapter.http | JEMMA HTTP AH Adapter | 2.0.4 |
ismb/jemma.osgi.ah.app | This bundle is just a placeholder for the whole framework version | 3.3.1 |
ismb/jemma.osgi.ah.configurator | jemma.osgi.ah.configurator | 1.0.8 |
ismb/jemma.osgi.ah.demo.fakevalues | Fake devices for JEMMA testing/tutorials | 0.1.2 |
ismb/jemma.osgi.ah.energyathome | Energy@Home Home Automation bundle | 2.2.31 |
ismb/jemma.osgi.ah.felix.console.web | Apache web console plugin for Jemma | 1.0.10 |
ismb/jemma.osgi.ah.greenathome | Greenathome Appliance | 2.1.21 |
ismb/jemma.osgi.ah.hac | JEMMA Home Automation Core services | 3.1.4 |
ismb/jemma.osgi.ah.hac.lib | JEMMA Home Automation Core libraries | 3.1.5 |
ismb/jemma.osgi.ah.hap.client | A service adding a reliable layer to transfer data from the platform to the provisioning server | 1.2.16 |
ismb/jemma.osgi.ah.io | This bundles implements a state machine to properly handle FlexGateway's leds | 1.0.17 |
ismb/jemma.osgi.ah.m2m.device | Exposes stateless XML Rest API to send data and to perform queries. | 1.2.16 |
ismb/jemma.osgi.ah.upnp.energyathome | This bundle allows UPnP discovery. | 1.0.2 |
ismb/jemma.osgi.ah.webui.base | This bundles base common utilities to the web interfaces. | 2.0.13 |
ismb/jemma.osgi.ah.webui.energyathome | This bundle provides a web interface to configure appliances and the entire system. | 1.0.61 |
ismb/jemma.osgi.ah.webui.energyathome.demo | This bundle provides a web interface to configure appliances and the entire system. | 1.0.46 |
ismb/jemma.osgi.ah.zigbee | ZigBee Network Manager | 2.1.27 |
ismb/jemma.osgi.ah.zigbee.appliances | This bundle is a generic driver for ZigBee Home Automation devices used by the driver locator when a device is discovered to support all its clusters. | 1.0.3 |
ismb/jemma.osgi.ah.zigbee.appliances.generic | This bundle is a generic driver for ZigBee Home Automation devices used by the driver locator when a device is discovered to support all its clusters. | 1.0.3 |
ismb/jemma.osgi.javagal | Java-based ZigBee Gateway Abstraction Layer Implementation | 2.0.9 |
ismb/jemma.osgi.javagal.gui | JavaGAL Web GUI | 1.0.6 |
ismb/jemma.osgi.javagal.json | JavaGAL JSON interfaces | 1.0.2 |
ismb/jemma.osgi.javagal.rest | JavaGAL REST interfaces | 1.0.1 |
ismb/jemma.osgi.utils | JEMMA utils for OSGi environemnt | 1.0.7 |
ismb/jemma-maven-repository | Support project used to store binary dependencies for JEMMA. | 1.0.0 |
Tutorials, how-tos and other resources are available on the project wiki-based documentation.
JEMMA can also be controlled through REST/WebSocket APIs relying on OSGi Device Abstraction Layer. To start interacting with it you need also these bundles:
- OSGi Device Abstraction Layer
- OSGi Device Abstraction Layer functions
- Energy@Home specific OSGi Device Abstraction Layer functions
- The DAL adapter for JEMMA: it registers DAL services for JEMMA devices
- The DAL web APIs
Take a look at this wiki page to discover functionalities that can be exposed by JEMMA devices
The JEMMA code-base has been developed since 2010 by Telecom Italia which holds the Copyright on the original code base.
The full JEMMA source code, unless specified otherwise in specific files, have been released under the GNU Lesser General Public License (LGPL) version 3. LGPL conditions can be found on the GNU website.
Willing to contribute ? Check our project tracker. Information on how to contribute can be found here
- ZCL cluster generator - A code generator which creates jemma zcl proxy classes from xml descriptions.
- Simple command provider - A simple OSGi CommandProvider demonstrating JEMMA device APIs usage