Skip to content

Legrand 067776A Firmware v71 May 15 2026#1171

Merged
Koenkk merged 2 commits into
Koenkk:masterfrom
alexhk:master
May 18, 2026
Merged

Legrand 067776A Firmware v71 May 15 2026#1171
Koenkk merged 2 commits into
Koenkk:masterfrom
alexhk:master

Conversation

@alexhk

@alexhk alexhk commented May 15, 2026

Copy link
Copy Markdown
Contributor

New firmware 71 for Legrand 067776A Netatmo wired shutter switch with level control (NLLV). Original file download captured via tcpdump/traffic of Legrand Gateway. Tested via manual z2m OTA update to some of my devices.

Edit:

minFileVersion: 458752 = 0x00070000 = "device must be on build 7 or higher"

[
    {
        "fileName": "1021-000f-004745ff-NLL.zigbee",
        "minFileVersion": 458752
    }
]

alexhk added 2 commits May 15, 2026 20:12
New v71 firmware for Legrand 067776A Netatmo wired shutter switch with level control (NLLV). Original file download captured via tcpdump/traffic of Legrand Gateway
Legrand 067776A Firmware v71 May 15 2026
@github-actions

Copy link
Copy Markdown
Contributor

Merging this pull request will add these changes in a following commit:

diff --git a/images/Legrand/1021-000f-004345ff-NLL.zigbee b/images/Legrand/1021-000f-004345ff-NLL.zigbee
deleted file mode 100644
index 0ba3cfc..0000000
Binary files a/images/Legrand/1021-000f-004345ff-NLL.zigbee and /dev/null differ
diff --git a/images1/Legrand/1021-000f-004145ff-NLL.zigbee b/images1/Legrand/1021-000f-004145ff-NLL.zigbee
deleted file mode 100644
index 0cc9aef..0000000
Binary files a/images1/Legrand/1021-000f-004145ff-NLL.zigbee and /dev/null differ
diff --git a/index.json b/index.json
index bd0f2f3..32f7692 100644
--- a/index.json
+++ b/index.json
@@ -6419,16 +6419,6 @@
     "sha512": "034af1852da3573963bc79372e3ac2e5ae8511112ae4da7137073246f4cd087daa8918647c2cf1edb3f4d1c246ee61fb802fca6f2c7b458080f2f4942f06999a",
     "otaHeaderString": "                                "
   },
-  {
-    "fileName": "1021-000f-004345ff-NLL.zigbee",
-    "fileVersion": 4408831,
-    "fileSize": 255127,
-    "url": "https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/images/Legrand/1021-000f-004345ff-NLL.zigbee",
-    "imageType": 15,
-    "manufacturerCode": 4129,
-    "sha512": "aa89a06714e446662dc2f183f0cd72a54dcf344ed62a30ab14b12943eca06857418eba4958398452af60470dc9665e380f155f7d693abb79532d55759b75d772",
-    "otaHeaderString": "                                "
-  },
   {
     "fileName": "A60_RGBW_T-0x00B6-0x03483712-MF_DIS.OTA",
     "fileVersion": 55064338,
@@ -9701,5 +9691,15 @@
     "manufacturerCode": 5127,
     "sha512": "7f8670e7411b83b2d41fccd551b03daa834707654344b015925a30a2d234538d3942dada616c2004d294da33cf4a1babc7c1866b93a8059984f4a7534de6d278",
     "otaHeaderString": "temp_humi_sensor"
+  },
+  {
+    "fileName": "1021-000f-004745ff-NLL.zigbee",
+    "fileVersion": 4670975,
+    "fileSize": 255143,
+    "url": "https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/images/Legrand/1021-000f-004745ff-NLL.zigbee",
+    "imageType": 15,
+    "manufacturerCode": 4129,
+    "sha512": "dc9bb4669f947be422747de971285f917301b343bb1be5e78e7dbbe68988ea1fcaf1eaa0989a22a2f64647f0897c1d45d7967e08f36d2c4c8634a8fd9581efd4",
+    "otaHeaderString": "                                "
   }
 ]
\ No newline at end of file
diff --git a/index1.json b/index1.json
index 49b627e..e433b02 100644
--- a/index1.json
+++ b/index1.json
@@ -1661,16 +1661,6 @@
     "originalUrl": "https://api.update.ledvance.com/v1/zigbee/firmwares/download?company=4489&product=205&version=3.32.54.96",
     "releaseNotes": "1. Support maximum 30 groups\r\n2. Enable the watchdog\r\n3. Set the Tx power to 9.8dB\r\n4. For Filament dimmable bulbs only, set the minimum level to 3%(according to APP) = the minimum PWM duty cycle is 15/255"
   },
-  {
-    "fileName": "1021-000f-004145ff-NLL.zigbee",
-    "fileVersion": 4277759,
-    "fileSize": 254391,
-    "url": "https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/images1/Legrand/1021-000f-004145ff-NLL.zigbee",
-    "imageType": 15,
-    "manufacturerCode": 4129,
-    "sha512": "7521165f14bdb3b2c8b7ba3bd9ba8fe4a9a715178abc559cee8fdff89ac671715cca3c05fa434ccd8ccce90e1371c29e7755c8136746b71174e2ff1c5bd0f8da",
-    "otaHeaderString": "                                "
-  },
   {
     "fileName": "1021-0012-005145ff-NLT.zigbee",
     "fileVersion": 5326335,
@@ -3513,5 +3503,15 @@
     "manufacturerCode": 5127,
     "sha512": "c128dd22f9bd281d05f791fb0660e196b76a272940400246031873179bb26747265eeb2a276dc3a6e291f7d74f9a11e25556cb71b3055c563a70792e1752ca4c",
     "otaHeaderString": "temp_humi_sensor"
+  },
+  {
+    "fileName": "1021-000f-004345ff-NLL.zigbee",
+    "fileVersion": 4408831,
+    "fileSize": 255127,
+    "url": "https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/images1/Legrand/1021-000f-004345ff-NLL.zigbee",
+    "imageType": 15,
+    "manufacturerCode": 4129,
+    "sha512": "aa89a06714e446662dc2f183f0cd72a54dcf344ed62a30ab14b12943eca06857418eba4958398452af60470dc9665e380f155f7d693abb79532d55759b75d772",
+    "otaHeaderString": "                                "
   }
 ]
\ No newline at end of file

@andrei-lazarov

Copy link
Copy Markdown
Contributor

Hi. Can you check (and revive) this thread?

I see the updates are available for download after you create an account.
But for a few devices you can't update directly to the latest version, there is one update in-between

@alexhk

alexhk commented May 16, 2026

Copy link
Copy Markdown
Contributor Author

@andrei-lazarov

I saw that thread and I know the device firmware download page. Let's just say it's complicated.

The 067776A uses the NLL firmware. On that page, it is served for the Light Switch with Neutral. While it's not the fw 71, and if I remember correctly, I compared the checksum of the available download fw 67 with the firmware z2m has for the shutter, it's the same file.
On the other hand, they list the Shutter Switch with Neutral as NLV type, with another firmware file. I believe that is the 067776 non-A (old version). The new 067776A they don't even list as variant on that page. So I assume it's outdated.

image

I tried to make sense of it for a few days and gave up. As far as I can tell Legrand doesn't keep that download page up-to-date. There are fw version in production (served by Legrand Gateway to devices) ahead of what is on that developer download page, I think in the thread this was also mentioned.

It also gets more confusing because the device type names and firmware names. Case in point:
NLL family: imageType 0x000f, covers multiple devices including 067776A, 067797, etc.
NLV family: imageType 0x0013, used by the original 067776 non-A variant, which has no level control.
NLLV: Legrand's hardware/product designation for the 067776A's electronics/component generation. NLLV devices use NLL firmware binaries (per Legrand dev forum), not a separate NLLV-named firmware. And yes, there are also NLL type devices without the V. It's a mess. If you look at Image Block Requests to the Legrand Gateway in Wireshark it gets even more confusing, as the application builds don't seem to match.

Also look at this (no account required):
https://developer.legrand.com/local-interoperability/#How%20it%20works
They are listed as NLLV there it seems. The old ones (NLV) are not even in the same list it seems.
Shutter switch with neutral SHUTTERS NLLV
Light switch with neutral LIGHTING NLL

Update in-between old versions:
Legrand's dev download page lists for NLL type firmware that if your fw is <7 you need to use fw 31 first, before updating. I am not sure when fw 7 happened and I have only used Legrand devices for a few months. Does z2m have such conditional updates for any of the other devices?

@alexhk alexhk marked this pull request as draft May 16, 2026 13:34
@alexhk

alexhk commented May 16, 2026

Copy link
Copy Markdown
Contributor Author

@andrei-lazarov

I changed this to draft.

Investigating if we should add something like this (if this can even be done, otherwise new PR it is if it's confirmed to be needed):

[
    {
        "fileName": "1021-000f-004745ff-NLL.zigbee",
        "minFileVersion": 458752
    }
]
// minFileVersion: 458752 = 0x00070000 = "device must be on build 7 or higher"

@andrei-lazarov

Copy link
Copy Markdown
Contributor

Yeah it seems complicated. Thanks for investigating!
It's ok to add this device only, it's up to you.

Yes minFileVersion + multiple images should work. I think it's used for Philips Hue.
You can edit the initial message in this PR and the bot will run again.

@alexhk alexhk marked this pull request as ready for review May 16, 2026 14:10
@github-actions

Copy link
Copy Markdown
Contributor

Merging this pull request will add these changes in a following commit:

diff --git a/index.json b/index.json
index bd0f2f3..93428ef 100644
--- a/index.json
+++ b/index.json
@@ -9701,5 +9701,16 @@
     "manufacturerCode": 5127,
     "sha512": "7f8670e7411b83b2d41fccd551b03daa834707654344b015925a30a2d234538d3942dada616c2004d294da33cf4a1babc7c1866b93a8059984f4a7534de6d278",
     "otaHeaderString": "temp_humi_sensor"
+  },
+  {
+    "fileName": "1021-000f-004745ff-NLL.zigbee",
+    "fileVersion": 4670975,
+    "fileSize": 255143,
+    "url": "https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/images/Legrand/1021-000f-004745ff-NLL.zigbee",
+    "imageType": 15,
+    "manufacturerCode": 4129,
+    "sha512": "dc9bb4669f947be422747de971285f917301b343bb1be5e78e7dbbe68988ea1fcaf1eaa0989a22a2f64647f0897c1d45d7967e08f36d2c4c8634a8fd9581efd4",
+    "otaHeaderString": "                                ",
+    "minFileVersion": 458752
   }
 ]
\ No newline at end of file

@Koenkk

Koenkk commented May 16, 2026

Copy link
Copy Markdown
Owner

ready for merge?

@alexhk

alexhk commented May 16, 2026

Copy link
Copy Markdown
Contributor Author

Yes, please go ahead.

@Koenkk Koenkk merged commit e54206b into Koenkk:master May 18, 2026
2 checks passed
@Koenkk

Koenkk commented May 18, 2026

Copy link
Copy Markdown
Owner

Thanks!

@alexhk

alexhk commented Jun 5, 2026

Copy link
Copy Markdown
Contributor Author

@andrei-lazarov I think the back and forth we had here resulted in the commit not removing the old entry, maybe because the old entry didn't have a min or max version specified.

As a result we have now both entries in the index and no OTA update is offered via z2m:

Old v67 firmware:

  {
    "fileName": "1021-000f-004345ff-NLL.zigbee",
    "fileVersion": 4408831,
    "fileSize": 255127,
    "url": "https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/images/Legrand/1021-000f-004345ff-NLL.zigbee",
    "imageType": 15,
    "manufacturerCode": 4129,
    "sha512": "aa89a06714e446662dc2f183f0cd72a54dcf344ed62a30ab14b12943eca06857418eba4958398452af60470dc9665e380f155f7d693abb79532d55759b75d772",
    "otaHeaderString": "                                "
  },
   
New v71 firmware:

{
    "fileName": "1021-000f-004745ff-NLL.zigbee",
    "fileVersion": 4670975,
    "fileSize": 255143,
    "url": "https://raw.githubusercontent.com/Koenkk/zigbee-OTA/master/images/Legrand/1021-000f-004745ff-NLL.zigbee",
    "imageType": 15,
    "manufacturerCode": 4129,
    "sha512": "dc9bb4669f947be422747de971285f917301b343bb1be5e78e7dbbe68988ea1fcaf1eaa0989a22a2f64647f0897c1d45d7967e08f36d2c4c8634a8fd9581efd4",
    "otaHeaderString": "                                ",
    "minFileVersion": 458752
  },

@andrei-lazarov

Copy link
Copy Markdown
Contributor

What is the version currently installed? Did you make sure the imageType and manufacturerCode match? (see debug logs when checking for updates)

@alexhk

alexhk commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

Installed is v67. z2m should offer the update for v71.

Currently in the index we have v67 and v71. When I reverse the order (v71 comes first) in the index.json z2m finds a news OTA update, even with both present. But in the order v67 and then v71 like it is now, it doesn't find a new update. And of course if I remove the v67 and only keep v71, it also offers and update.

Should the github-action bot have removed v67 from the index or kept it?

At the beginning the github-action bot wanted to remove the old and replace it with new:
#1171 (comment)

Later, presumably after adding "minFileVersion": 458752, it only added the new one, didn't remove the v67:
#1171 (comment)

alexhk added a commit to alexhk/zigbee-OTA that referenced this pull request Jun 17, 2026
Removing old Legrand firmware v67, which was replaced with v71 in PR Koenkk#1171.

With both the v67 and v71 json present in the index file no OTA update is offered by z2m.

I believe due to back and forth in Koenkk#1171 and late adding of `minFileVersion`, this has accidentally been left in the index by github-action bot.

Let me know if this was intention.  But currently no update is offered for devices on v67, despite v71 being in the index too.

Koenkk#1171 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants