|
|
# EnOcean Service Bundle
|
|
|
TODO implement |
|
|
\ No newline at end of file |
|
|
# ENOSAR EnOcean
|
|
|
|
|
|
The EnOcean implementation in ENOSAR is a service to handle incoming and outgoing messages from/to EnOcean Devices.
|
|
|
To do this a EnOcean Pi is required for the raspberry pi
|
|
|
|
|
|
|
|
|
## Interface
|
|
|
|
|
|
### Incoming EnOcean Messages (from a EnOcean device)
|
|
|
On incoming messages from EnOcean Devices the Service publishes the message with the MappingService as DTO's to the MessagingService with the topic:
|
|
|
`io.enocean.[ENOSAR ID]`
|
|
|
|
|
|
### Outgoing EnOcean Messages (from a EnOcean device) and commands for the service
|
|
|
To send commands to EnOcean devices the Service receives EventDTO's from Applications over the CommunicationService.
|
|
|
The technology for the CommunicationService is `org.enosar.service.io.enocean`.
|
|
|
Because of the AddressDTO from the message the Client maps the ID to the device. There are 2 types of incoming messages:
|
|
|
|
|
|
* if an empty EventDTO (EventDTO data is empty) arrives the Service returns the actual status of the device over the MessagingService
|
|
|
|
|
|
* if the EventDTO data is not empty the device handles the DTO's, generates and sends the EnOceanMessages to the EnOcean device. Actual implemented commands:
|
|
|
|
|
|
* for D2 01 08 Devices:
|
|
|
* SwitchDTO: Turns on or off
|
|
|
* PowerDTO: Returns the actual measured power value
|
|
|
* EnergyDTO: Returns the actual measured energy value
|
|
|
|
|
|
*for RCM250 Devices:
|
|
|
* SwitchDTO: Turns on or off
|
|
|
|
|
|
|
|
|
## Device and Address Management
|
|
|
Every device must have an entry in the Address Management of ENOSAR. For this it is necessary to add every device in the Address Management in ENOSAR.
|
|
|
You can find this on `http://[IP ENOSAR]:8080` under Address Management.
|
|
|
|
|
|
There every Entry must contain:
|
|
|
* Identifier: An unique ID in ENOSAR to identify the device (ENOSAR ID)(e.g.: switch1, socket1)
|
|
|
* Technology: For the EnOcean service `org.enosar.service.io.enocean`
|
|
|
* Receiver Information: Consists out of 2 information's. The EnOcean device ID and the packet description. The syntax is `0x[EnOcean ID in hex].[EEP]`:
|
|
|
|
|
|
* EnOcean ID: Is the unique ID of the device. The ID is displayed in the terminal when the device sends a message and is not in the Address Management
|
|
|
* EEP: Describes the data sent of the device and can be found in the manual of the device (EnOcean Equipment Profile (EEP)).
|
|
|
If the device has a teach in function this entry is not necessary. The teach in entries then the Packed description automatically when a teach in is done.
|
|
|
|
|
|
|
|
|
## Implemented Devices/Packets
|
|
|
|
|
|
Here is a List of implemented EEP packets and devices
|
|
|
|
|
|
| EEP | Used for |
|
|
|
| --------------------------------- | -------------------------------------------------------------------------------- |
|
|
|
| [A5 04 01](#a50401)| Temperature and Humidity Sensor |
|
|
|
| [A5 07 01](#a50701) | PIR Sensor with supply voltage |
|
|
|
| [A5 08 02](#a50802) | Temperature, Light and PIR Sensor |
|
|
|
| [D2 01 08](#d20108) | Electronic Switches and Dimmers |
|
|
|
| [D5 00 01](#d50001) | Singe Input contacts |
|
|
|
| [F6 02 01](#f60201) | Rocker Switch and 2 Rocker |
|
|
|
| [RCM250](#rcm250) | EnOcean easyfit RCM250 |
|
|
|
|
|
|
* <a name="a50401"></a>A5 04 01
|
|
|
|
|
|
Implementation of EnOcean A5 04 01 Radio EEP telegram (See EnOcean_Equipment_Profiles_EEP_V2.63_public.pdf page 32).
|
|
|
It is used for Temperature and Humidity Sensors at a Range of 0°C-40°C and 0%-100% (e.g.: Telefunken Feuchtesensor)
|
|
|
|
|
|
|
|
|
* <a name="a50701"></a>A5 07 01
|
|
|
|
|
|
Implementation of EnOcean A5 07 01 Radio EEP telegram (See EnOcean_Equipment_Profiles_EEP_V2.63_public.pdf page 36).
|
|
|
It is used for Occupancy Sensors with supply voltage (e.g.: PEHA Bewegungsmelder)
|
|
|
|
|
|
* <a name="a50802"></a>A5 08 02
|
|
|
|
|
|
Implementation of EnOcean A5 08 02 Radio EEP telegram (See EnOcean_Equipment_Profiles_EEP_V2.63_public.pdf page 38).
|
|
|
It is used for Light, temperature and Occupancy Sensors at a Range from 0lx - 1020lx, 0°C - 51°C and a Occupancy Button (e.g.: Telefunken Bewegungsmelder)
|
|
|
|
|
|
* <a name="d20108"></a>D2 01 08
|
|
|
|
|
|
Implementation of EnOcean D2 01 08 Radio EEP telegram (See EnOcean_Equipment_Profiles_EEP_V2.63_public.pdf page 115 ff).
|
|
|
It is used for Electronic Switches and Dimmers with Energy Measurement and Local control (e.g.: Telefunken Funktionssteckdose FS2)
|
|
|
|
|
|
* <a name="d50001"></a>D5 00 01
|
|
|
|
|
|
Implementation of EnOcean D5 00 01 Radio EEP telegram (See EnOcean_Equipment_Profiles_EEP_V2.63_public.pdf page 25).
|
|
|
It is used for Contacts and Switches with single input (e.g.: Telefunken Fenster/Türkontakt)
|
|
|
|
|
|
* <a name="f60201"></a>F6 02 01
|
|
|
|
|
|
Implementation of EnOcean F6 02 01 Radio EEP telegram (See EnOcean_Equipment_Profiles_EEP_V2.63_public.pdf page 14).
|
|
|
It is used for Rocker Switch and 2 Rocker (e.g.: Telefunken Doppeltaster)
|
|
|
|
|
|
* <a name="rcm250"></a>RCM250
|
|
|
|
|
|
Implementation of EnOcean easyfit RCM250.
|
|
|
This device can only receive commands (turn on or off). Therefor a teach in is necessary. See manual of EnOcean easyfit RCM 250.
|
|
|
The EnOcean ID of the device must be 0xFFFFFFFF (broadcast).
|
|
|
|
|
|
## Needed Permissions
|
|
|
|
|
|
* Topic: `io.enocean.*` Write
|
|
|
|
|
|
## How to add a new Device/ EEP Packet
|
|
|
|
|
|
In the manual of devices is a description called EnOcean Equipment Profile (EEP).
|
|
|
This information is necessary to get the detailed information of the sent data. All EEP are described in this PDF <http://www.enocean-alliance.org/eep/>.
|
|
|
To add a new EEP a new class must be created in the Package `eep`. This class inherits from `EEPRadioPacket.java`.
|
|
|
|
|
|
|
|
|
The new class matches the incoming bytes to DTO's, stores the actual data and can send new EnOcean Messages to the device.
|
|
|
To send a EnOcean Message to a device the ResponseRadioPacket is implemented (as new EnOcean Message).
|
|
|
|
|
|
|
|
|
The new implemented class then must be added to a list of all implemented Devices in the Package `ìmpl` Class `DeviceHandler.java`.
|
|
|
There is a Map called `radioProtocols` e.g.: `radioProtocols.put("A50701", A5_07_01Device.class);` where the first String ("A50701") is the description of the packet which must be entered in the Address Management.
|
|
|
|
|
|
|
|
|
For an example see the code. `A5_04_01Device.java` is a simple one and `D2_01_08Device.java` is an example also a EnOcean Message is sent.
|
|
|
|
|
|
|
|
|
## How it works
|
|
|
An implemented Basedriver is connected to the serial interface of the EnOcean Pi. Over this implementation incoming messages are forwarded and handled. Outgoing messages
|
|
|
are sent over the serial interface.
|
|
|
All devices must have an entry in the Address Management. |
|
|
\ No newline at end of file |