External integration - netatmo camera issue

Hello everyone!

@Terdious

I have an issue with my Netatmo camera not displaying. But if I get the local URL via CAMERA_URL, there is no issue (I add it in the Camera integration for example)

Here is the log in a loop on this:

[2026-08-08T10:08:54.221Z] [WARN] [netatmo-camera] Camera snapshot still exceeds the 96 KB budget after re-encoding — skipping this frame

[2026-08-08T10:10:54.964Z] [WARN] [netatmo-camera] Camera snapshot still exceeds the 96 KB budget after re-encoding — skipping this frame

Hey @spenceur!

Sorry, an old limit was in place because the core didn’t accept them before. Image too heavy.

The core has been fixed but not updated on the external integration side for me.

Claude is taking care of it :wink:

I’ll keep you posted

Thanks for reporting, it’s fixed in 1.1.2 :tada:
What was happening: the integration capped camera images at 96 KB — a workaround for an old core limit (the host API was behind a 100 KB JSON parser, which returned a 413 error). Your snapshots exceeded this threshold even after re-encoding, so each image was ignored → no images on the dashboard. Live view, however, worked because it doesn’t go through that path (hence your workaround with CAMERA_URL that works).
What changes in 1.1.2:

  • the core now parses the host API with a dedicated 20 MB limit → back to the real 150 KB budget;
  • if a snapshot is still too heavy even at minimum quality, it is now automatically resized instead of being discarded — a smaller image is better than no image.
    Available in about 1 hour, update the integration (Supervision → Force Update) and the image should appear. If it persists, send me the netatmo-camera logs after the update.

Good news: the triggers have arrived! :tada: They are available in 1.2.0.

New Features (usable in scene triggers)

Device Features
Indoor and outdoor camera Motion, Person detected
Outdoor camera (Presence) + Animal detected, Vehicle detected
Smoke detector Smoke

These detections are one-time events: they only exist in the Netatmo event stream, no API query can retrieve them — that’s exactly why they need webhooks.

How it works

Each detection goes to Yes, then automatically returns to No after a minute (Netatmo never sends an event of « end of detection »). In a scene, use the trigger « the value changes to Yes ».

:warning: A necessary step

If your cameras already existed in Gladys, these new features won’t appear automatically:

  1. Update the integration (Supervision → Force update)
  2. Go to the Discovery screen
  3. Click Update on each camera (and on the smoke detector)

Webhooks must obviously be configured (Gladys Plus Open API key pasted in the Configuration) for detections to be reported.

If a detection is not reported

Set the integration logs to debug level and send me what you see at the time of a detection. A recognized detection produces a line like Netatmo event: movement on ext:netatmo:.... If Netatmo uses an event name I haven’t planned for, it can be fixed in a minute.

Awesome I updated my device but I have a weird rectangle. Normal ^^ ?

It’s probably Meta-tmo glasses :joy:

It’s just that the feature added by Netatmo is not recognized by Gladys.

Quick question about the action

« Send a camera image »

Does it send the latest snapshot? Or does it take one and send it?

I get the impression that it’s the first option and therefore I don’t have the image at time t.

I was thinking that those who have Gladys for longer use webhooks to perform actions while sending an image. If the image is too old, that’s a shame :frowning:

I’ll answer you, but for the follow-up, @Terdious will give you more details on the Netatmo integration upon his return from leave.

Not normal, but don’t worry: it comes from Gladys itself, not your installation or the integration, and it’s purely cosmetic :slightly_smiling_face:

The Empty Label

This is the « Person detected » feature. The integration declares it in the presence detector category, with a binary Yes/No value — which is the logical choice.

However, until now, in Gladys, a « presence detector » could only mean one thing: your phone seen on the network or via Bluetooth — a sign of life, not a Yes/No. This category + type pair therefore had neither a translated label nor an icon on Gladys’s side, hence the empty gray label. @Will_71 was right :ok_hand:

Nothing is broken, though: the detection is still reported, and the trigger works.

Fixed in the Core

The PR is open, and it will arrive in a future version of Gladys:

  • the label is now called « Yes/No Presence Detection » and gets its icon;
  • on the dashboard, it displays a « Presence Detected / No Presence » badge, instead of a date like « seen X minutes ago » which makes no sense for a camera;
  • in the scene editor, this trigger actually displayed two selectors side by side (the Yes/No + a grayed-out « Device Detected » button): only the normal Yes/No remains, and you will also be able to trigger on the return to No.

No action required on your part: the features you’ve already created will display correctly after the update.

The PR:

And the Three Identical « Yes/No Motion Detection » Labels?

These labels display the name of the category, not the feature — and Gladys doesn’t have an « animal » or « vehicle » category, so the three detections are grouped under motion detector. Hence the triplet.

Nothing blocking: their names, however, are distinct (Motion, Animal detected, Vehicle detected, followed by the name of your camera), and that’s the name you’ll find everywhere it matters, starting with the scene trigger selector. And if the default names don’t suit you, you can rename them as you like from the device card.

Your Question About « Send a Camera Image »

Good news on both levels:

  • on Gladys’s side, the action does not send the last stored snapshot: when the scene runs, the core requests a fresh image from the integration, with 15 seconds to respond;
  • on the Netatmo integration side, this request indeed triggers a real capture at time t (first locally, via the Netatmo VPN as a backup). The last known snapshot is only served as a last resort if the fresh capture doesn’t arrive in time — and in this case, the integration writes a warning in its logs (On-demand snapshot failed … — serving the last image).

So your scenes do receive the image of the moment. What you see aging is probably the image displayed on the dashboard, which is refreshed by the periodic cycle (every 2 minutes): it’s normal, and unrelated to the action.

Fixes are available in Gladys Assistant 4.86!