ZigBeeForDomoticZ plugin Wiki

Legrand corner & faq

Update Legrand firmware

Overview

Purpose is to present the finding around pairing Legrand/Netatmo devices (Celiane, Mosaic, dooxie to Zigate and Domoticz A big thanks to @fgrimaldi who contributes heaviliy to this, a big thanks also to @Thorgal789

Quiet a lot of work have been done throught sniffing of the Zigbee traffic between the Legrand Hub and the devices as well as Try and Test approach.

Preamble

By default some of the Legrand/Netamoi devices come with a basic firmware, which do not provide all features. In that context, I still feel that having the Legrand Hub is a good investement for upgrading your device, and then switching to Zigate to avoid Legrand cloud.

WARNING

If you have the starter pack, do not reset it. It is factory preset with the corresponding remote and any reset will make it unusable and must be return to Legrand.

Validated devices

Not Validated

Prerequisites

Add on

Some specific Legrand settings are accessible via the Web GUI settings page.

Channels

Pairing process

  1. Remove the device cover in order to get access to the Factory Reset hole (or button). Do not mix the factory reset hole/button with the led.

  2. Enable the Zigate pairing mode and make sure that Domoticz accept new hardware is also on
  3. Press the factory reset
    • after few seconds it should be flashing green/red (stay pressing)
    • after around 8 seconds it should be flashing red (the pairing process should be starting)
    • click immediatly on the factory reset once more
    • when turning the led is green the pairing process is completed.

Alternative is :

When the led is red (not paired):

Internals

How the Pairing works

Wireless devices

Analysis of Double gangs remote switch

Scenes

Groups when pairing a remote with a wired devices

Wired devices

Plug-in Unit: Connected outlet

  1. Add Group 0xfff7
    1. Add SceneId 0x01 / Cluster 0x0006
  2. Add Group 0xfff5
    1. Add SceneId 0x01 / Cluster 0x0006
  3. Bind Cluster 0x0006
  4. Configure Report 0x0006 / 0x0001
  5. Bind Cluster 0x0b04
  6. Configure Report 0x0b04 / 0x050b
  7. Bind Cluster 0x0003

Micromodule: Micromodule switch

  1. Add Group 0xfff6
    1. Add Scene 0x01 / Cluster 0x0006
  2. Add Group 0xfff4
    1. Add Scene 0x01 / Cluster 0x0006
  3. Bind 0x0006
  4. Configure Report 0x0006 / 0x0001
  5. Bind 0x000f
  6. Bind 0x0003

Inter w/o neutral: Dimmer switch w/o neutral

  1. Add Group 0xfff6
    1. Add Scene 0x01 / Cluster 0x0006
    2. Add Scene 0x01 / Cluster 0x0008
  2. Add Group 0xfff4
    1. Add Scene 0x01 / Cluster 0x0006
    2. Add Scene 0x01 / Cluster 0x0008
  3. Bind 0x0006
  4. Configure Report 0x0006 / 0x0001 (Bind and Configure Reporting on 0x0008, will be done when enabling dimmer)
  5. Bind 0x000f
  6. Bind 0x0003

Shutter: Shutter switch with neutral

  1. Bind 0x000f
  2. Bind 0x0003
  3. Configure Report 0x0102
Commands

Status return ( 0xff: Open, 0x00: Closed, 0x50: in between ) Ad Hoc status can be obtain by a read Attribute

Other findings and decoding

Attributes

Suite à Device Annoucement after Power Off/On

After a main Power Off, On, the device is sending a Device Annoucement , in response the Legrand HUB is sending a Wrte Attribute No Response in Broadcast

Cluster 0x0003

__ATTENTION WIP / UNDER INVESTIGATIONS __

Command: 0x40

Cluster 0xfc01

Device Attribute Values Data Type
Dimmer switch w/o neutral 0x0000 0x0101/0x0000 enable/disbale Dimmer mode ( cluster 0x0008 should be binded) 0x09 (16bit data)
Dimmer switch w/o neutral 0x0001 0x01/0x00 enable/disbale Led in Dark 0x10 ( Bool )
Dimmer switch w/o neutral 0x0002 0x01/0x00 enable/disable Led if On 0x10
Connected outlet 0x0002 0x01/0x00 enable/disable Led if On 0x10
Shutter switch with neutral 0x0001 0x01/0x00 enable/disable Led if On 0x10
Fil Pilote 0x0000 0x0001/0x0002 enable/disable fil pilote 0x0x09 (16 bit data)

__ATTENTION WIP / UNDER INVESTIGATIONS __

Comamnd: 0x02
Command: 0x03
Command: 0x05 (wireless switch)
Command: 0x08 set group id (wireless single remote)
Commande: 0x09 (Checked)
Command: 0x0a
Commande: 0x0c set group id (wireless double remote)
Command: 0x0d
Command: 0x10

Cluster 0xfc40

Attribute Heating Mode Value Data Type
0x0000 Confort 0x00 0x30 (Enum8)
  Contort -1 0x01 0x30 (Enum8)
  Confort -2 0x02 0x30 (Enum8)
  Eco 0x03 0x30 (Enum8)
  Hors Gel 0x04 0x30 (Enum8)
  Off 0x05 0x30 (Enum8)

Specific Commands

Cluster Command Data Type Data Value Description
0xfc01 0x02 1 byte 0x00  

OTA

OTA Code Manuf Code Image Type Product Size (B.) App. Rel. App Build Stack Rel. Stack Build
NLF 0x1021 0x000e (14) Switch w/o neural 229319 0 43 0 0
NLM 0x1021 0x0010 (16) Micromodule 221655 0 32 0 0
NLP 0x1021 0x0011 (17) Hub Plug   0 35 0 0
NLP 0x1021 0x0011 (17) Mobile outlet     35 0 0
NLP 0x1021 0x0011 (17) Connected outlet     35 0 0
NLT 0x1021 0x0012 (18) Main Remote   0 33 0 0
NLV 0x1021 0x0013 (19) Shutter   0 43 0 0
NLD 0x1021 0x0016 (22) Double Remote Switch   0 6 0 0
  0x1021   Remote Shutter     18    
NLC 0x1021 0x0015 (21) Cable outlet     10    

More informations/scripts …. can be found here: https://github.com/pipiche38/Capture-OTA-from-Wireshark

Pairing Mecansism

The HUB seems in addition of having Time Server, seems to store in the 0x0000/0xf000 the time since the HUB has been powered on. This attribute server as of time of operation. At Pairing, the HUB is broadcasting this value to other devices, and the up coming devices is requesting this attribute also from the oher already connected devices. The Operating time ( 0x0000/0xf000) is reset to 0 after Power Off/On

Other matters