github mega-yfue/eufy-sdk v0.3.0

latest releases: v0.5.0, v0.4.0
one month ago

A fixes release. P2P streams lose less on a lossy link, pushes carry their device serial, and two races that dropped a working session or MQTT connection are gone.

npm install @mega-yfue/eufy-sdk@0.3.0

P2P

  • The device's punch can land on any of several registered source ports, so a connection that used to miss now comes up.
  • Retransmitted datagrams are reassembled in sequence instead of discarded, which means fewer gaps in live video.

Push

  • Motion, person, package and doorbell pushes now carry their deviceSn. Before, a push whose serial was only in the envelope arrived with deviceSn: undefined.

Session and realtime

  • The session key exchange is single-flight, so concurrent calls no longer race each other into a re-login. The "another client" hint no longer fires on a plain expiry.
  • One connection per SecureMqtt: a second watch() no longer evicts the first.

Devices

  • T84A1 Wall Light Cam S100 is recognised and treated as mains-powered.
  • T8423 floodlight: the light switch works.
  • HomeBase AI detection type (1299) decodes as JSON.

Breaking changes

Change What to do
pushRaw: raw.payload is now the whole push envelope, with its payload entry JSON-parsed in place (#180) For a push that has a payload entry, read detail fields from raw.payload.payload. push / PushEvent consumers are unaffected.

No export removed and no new LiveTrace phase, so an exhaustive phase table compiles unchanged.

Thanks to everyone who contributed to this release: @max246, @sapireli, @rwunsch, @ImSkully and @lenoxys.

What's Changed

  • fix(p2p): register several source ports so the device's punch can land by @sapireli in #211
  • fix(light): map T8423 floodlight switch to the int+string wire by @ImSkully in #252
  • fix(p2p): use the device's retransmissions instead of discarding them by @sapireli in #212
  • fix(http): single-flight the session key exchange and soften the contention hint by @max246 in #251
  • fix(push): keep the whole envelope, so every push carries its device serial by @rwunsch in #180
  • docs(agents): one rules file for every agent, the checks before a pull request, and a template gate by @lenoxys in #263
  • fix(device): decode hbAiDetectType (1299) as JSON by @max246 in #248
  • Ask for the examples' 2FA code and captcha in the same run by @max246 in #247
  • fix(mqtt): one connection per SecureMqtt, so a second watch() cannot evict the first by @max246 in #239
  • fix(camera): treat the T84A1 Wall Light Cam S100 as mains-powered by @max246 in #250
  • release: 0.3.0 by @lenoxys in #265

New Contributors

Full Changelog: v0.2.0...v0.3.0

Don't miss a new eufy-sdk release

NewReleases is sending notifications on new releases.