Le container eufy-ws-security n'est pas connecté au Cloud Eufy

Bonjour,

je viens de franchir le pas de debian 12 sur mon Atlas (au passage tout s’est très bien passé :wink: )

Je surveille régulièrement le plugin eufy qui apparemment peut avoir des soucis suite au changement coté Eufy.

Jusqu’alors je n’avais pas de soucis avec simplement ma sonnette et homebase, mais depuis le passage en debian 12, seul ce plugin me pose problème et je ne pense pas que ça soit lié.

Voici en PJ mes logs en debug, voir si il peut y avoir une astuce pour arriver à me connecter au cloud eufy, ou pas .

eufy.txt (8,7 Ko)

eufy_packages.txt (12,7 Ko)

Merci et bonne journée


Informations Jeedom Delta

Core : 4.6.1 (master)
DNS Jeedom Delta : oui

Plugin : Eufy
Version : 2026-07-31 19:09:50 (beta)
Statut Démon : Stoppé - (2026-09-05 15:32:58)
Santé
🟢 Matériel : Atlas
🟢 Système à jour : OK
🟢 Cron actif : OK
🟢 Scénario actif : OK
🟢 Démarré : OK 2026-09-05 14:10:12
🟢 Date système (dernière heure enregistrée) : OK 2026-09-05 15:34:37 (2026-09-05 14:48:02)
🟢 Droits sudo : OK
🟢 Version Jeedom : 4.6.1
🟢 Version OS : debian 12.14
🟢 Version PHP : 8.2.31
🟢 Nombre de processus Apache : 15
🟢 Version OS : Linux JeedomAtlas 6.16.4-arm64 #1 SMP PREEMPT 2026-06-26 aarch64 GNU/Linux  [12.14]
🟢 Version database : 10.11.14-MariaDB-0+deb12u2
🟢 Espace disque libre : 70 %
🟢 Connexion active/max/autorisée : 21/49/151
🟢 Taille base de données : 516.39 MB
🟢 Espace disque libre tmp : 97 %
🟢 Mémoire disponible : 58 % (Total 3849 Mo)
🟢 Mémoire suffisante : 0 
🟢 Erreur I/O : 0
🟢 Swap disponible : 100 % (Total 1024 Mo)
🟢 Swappiness : 10 %
🟢 Charge : 6.93 - 7.07 - 7.17
🟢 Configuration réseau interne : OK
🟢 Configuration réseau externe : OK
🟢 Node : v22.23.1 
🟢 Python 3 : Python 3.11.2 
🟢 Persistance du cache : OK
🟢 Apache private tmp : OK

ainsi qu’une capture d’écran de la config du plugin:

Merci d’avance pour votre aide et bon week end.

salut

regardes ici

1 « J'aime »

Hello

merci je viens de mettre à jour. Chaque fois que je cliques sur redémarrer, je reçois un mail de la part d’eufy indiquant “connexion récente au compte”, mais j’ai toujours le NOK sur la configuration cloud eufy.

Bonne journée

Essaies la bêta

C’est ce que j’ai fais, j’avais désinstaller complètement la version stable, et je suis repartie sur la beta.

Si reseau mode host est coché je reçois un mail mais pb de container et cloud eufy, si je décoche pas de mail mais accès au container mais toujours pas au cloud eufy.

ci joint les lods si besoin.

eufy.txt (6,6 Ko)

eufy_packages.txt (13,1 Ko)

Effectivement je reproduis.
Essaies de passer sur le compte principal ou décoches réseau mode host
Chez moi ca a résolu le problème dans les 2 cas

j’ai retenter en changeant de compte (qui n’a pas non plus la double authentification) mais c’est pareil, avec ou sans coche du mode host.

tu es bien sur la beta?
tu as bien redémarré ton container à chaque changement de paramètres?

partages moi les logs de:

resources/eufy test
resources/eufy logs

Si possible ne coches pas réseau mode host

oui je suis bien en beta

dans le dossier ressource j’ai bien eufy mais rien ne se passe si je cliques dessus, et quand je clique dans la doc pour aller voir la section détaillée la page n’existe pas

Tu n’as pas configuré ssh?
Sinon:
Réglages > Système > Configuration > OSDB > administration système
puis:
sudo /var/www/html/plugins/eufy/resources/eufy xxx

voici ce que ca donne:

eufy action: xxx options:
usage: /var/www/html/plugins/eufy/resources/eufy [-h] [-d device] [-u url] action
-h show this help message and exit
action: { install|uninstall|upgrade|start|stop|restart|status|info|logs|test }
test optional arguments:
      -d DEVICE device serial number
      -u URL eufy service URL, default 127.0.0.1:3000
eufy action: test options:
test du container: 67958bb44630 options:
python3 path: /var/www/html/plugins/eufy/resources/../resources/python_venv/bin/python3
Traceback (most recent call last):
  File "/var/www/html/plugins/eufy/resources/python_venv/lib/python3.11/site-packages/websockets/http11.py", line 282, in parse
    status_line = yield from parse_line(read_line, StatusLineTooLong)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/html/plugins/eufy/resources/python_venv/lib/python3.11/site-packages/websockets/http11.py", line 365, in parse_line
    line = yield from read_line(MAX_LINE_LENGTH, too_long_exc_type)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/html/plugins/eufy/resources/python_venv/lib/python3.11/site-packages/websockets/streams.py", line 54, in read_line
    raise EOFError(f"stream ends after {p} bytes, before end of line")
EOFError: stream ends after 0 bytes, before end of line

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/var/www/html/plugins/eufy/resources/python_venv/lib/python3.11/site-packages/websockets/client.py", line 304, in parse
    response = yield from Response.parse(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/html/plugins/eufy/resources/python_venv/lib/python3.11/site-packages/websockets/http11.py", line 284, in parse
    raise EOFError("connection closed while reading HTTP status line") from exc
EOFError: connection closed while reading HTTP status line

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/var/www/html/plugins/eufy/resources/../resources/test_eufy.py", line 20, in <module>
    ws = client.connect("ws://" + url)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/html/plugins/eufy/resources/python_venv/lib/python3.11/site-packages/websockets/sync/client.py", line 816, in connect
    connection = connecter.connect()
                 ^^^^^^^^^^^^^^^^^^^
  File "/var/www/html/plugins/eufy/resources/python_venv/lib/python3.11/site-packages/websockets/sync/client.py", line 496, in connect
    connection = self.open_connection(deadline)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/www/html/plugins/eufy/resources/python_venv/lib/python3.11/site-packages/websockets/sync/client.py", line 406, in open_connection
    connection.handshake(
  File "/var/www/html/plugins/eufy/resources/python_venv/lib/python3.11/site-packages/websockets/sync/client.py", line 132, in handshake
    raise self.protocol.handshake_exc
websockets.exceptions.InvalidMessage: did not receive a valid HTTP response
eufy action: logs options:
Unable to start driver RequestError
    at ClientRequest.<anonymous> (file:///usr/src/app/node_modules/got/dist/source/core/index.js:667:107)
    at Object.onceWrapper (node:events:631:26)
    at ClientRequest.emit (node:events:521:24)
    at ClientRequest.emit (node:domain:489:12)
    at emitErrorEvent (node:_http_client:109:11)
    at TLSSocket.socketErrorListener (node:_http_client:593:5)
    at TLSSocket.emit (node:events:509:28)
    at TLSSocket.emit (node:domain:489:12)
    at emitErrorNT (node:internal/streams/destroy:170:8)
    at emitErrorCloseNT (node:internal/streams/destroy:129:3)AggregateError [ETIMEDOUT]:
    at internalConnectMultiple (node:net:1194:18)
    at afterConnectMultiple (node:net:1784:7) {
  input: undefined,
  code: 'ETIMEDOUT',
  timings: {
    start: 1788688280441,
    socket: 1788688280442,
    lookup: 1788688280509,
    connect: undefined,
    secureConnect: undefined,
    upload: undefined,
    response: undefined,
    end: undefined,
    error: 1788688416580,
    abort: undefined,
    phases: {
      wait: 1,
      dns: 67,
      tcp: undefined,
      tls: undefined,
      request: undefined,
      firstByte: undefined,
      download: undefined,
      total: 136139
    }
  },
  options: {
    request: undefined,
    agent: { http: undefined, https: undefined, http2: undefined },
    h2session: undefined,
    decompress: true,
    timeout: {
      connect: undefined,
      lookup: undefined,
      read: undefined,
      request: undefined,
      response: undefined,
      secureConnect: undefined,
      send: undefined,
      socket: undefined
    },
    prefixUrl: '',
    body: undefined,
    form: undefined,
    json: undefined,
    cookieJar: undefined,
    ignoreInvalidCookies: false,
    searchParams: undefined,
    dnsLookup: undefined,
    dnsCache: undefined,
    context: {},
    hooks: {
      init: [],
      beforeRequest: [],
      beforeError: [],
      beforeRedirect: [],
      beforeRetry: [],
      afterResponse: []
    },
    followRedirect: true,
    maxRedirects: 10,
    cache: undefined,
    throwHttpErrors: true,
    username: '',
    password: '',
    http2: false,
    allowGetBody: false,
    headers: {
      'user-agent': 'got (https://github.com/sindresorhus/got)',
      accept: 'application/json',
      'accept-encoding': 'gzip, deflate, br'
    },
    methodRewriting: false,
    dnsLookupIpVersion: undefined,
    parseJson: [Function: parse],
    stringifyJson: [Function: stringify],
    retry: {
      limit: 1,
      methods: [ 'GET' ],
      statusCodes: [
        408, 413, 429, 500,
        502, 503, 504, 521,
        522, 524
      ],
      errorCodes: [
        'ETIMEDOUT',
        'ECONNRESET',
        'EADDRINUSE',
        'ECONNREFUSED',
        'EPIPE',
        'ENOTFOUND',
        'ENETUNREACH',
        'EAI_AGAIN'
      ],
      maxRetryAfter: undefined,
      calculateDelay: [Function: calculateDelay],
      backoffLimit: Infinity,
      noise: 100
    },
    localAddress: undefined,
    method: 'GET',
    createConnection: undefined,
    cacheOptions: {
      shared: undefined,
      cacheHeuristic: undefined,
      immutableMinTimeToLive: undefined,
      ignoreCargoCult: undefined
    },
    https: {
      alpnProtocols: undefined,
      rejectUnauthorized: undefined,
      checkServerIdentity: undefined,
      certificateAuthority: undefined,
      key: undefined,
      certificate: undefined,
      passphrase: undefined,
      pfx: undefined,
      ciphers: undefined,
      honorCipherOrder: undefined,
      minVersion: undefined,
      maxVersion: undefined,
      signatureAlgorithms: undefined,
      tlsSessionLifetime: undefined,
      dhparam: undefined,
      ecdhCurve: undefined,
      certificateRevocationLists: undefined
    },
    encoding: undefined,
    resolveBodyOnly: false,
    isStream: false,
    responseType: 'json',
    url: URL {
      href: 'https://extend.eufylife.com/domain/FR',
      origin: 'https://extend.eufylife.com',
      protocol: 'https:',
      username: '',
      password: '',
      host: 'extend.eufylife.com',
      hostname: 'extend.eufylife.com',
      port: '',
      pathname: '/domain/FR',
      search: '',
      searchParams: URLSearchParams {},
      hash: ''
    },
    pagination: {
      transform: [Function: transform],
      paginate: [Function: paginate],
      filter: [Function: filter],
      shouldContinue: [Function: shouldContinue],
      countLimit: Infinity,
      backoff: 0,
      requestLimit: 10000,
      stackAllItems: false
    },
    setHost: true,
    maxHeaderSize: undefined,
    signal: undefined,
    enableUnixSockets: false
  },
  [cause]: AggregateError [ETIMEDOUT]:
      at internalConnectMultiple (node:net:1194:18)
      at afterConnectMultiple (node:net:1784:7) {
    code: 'ETIMEDOUT',
    [errors]: [
      [Error], [Error],
      [Error], [Error],
      [Error], [Error],
      [Error], [Error]
    ]
  }
}

tu as vu mon message précédent??
il fallait remplacer xxx par test puis logs

Yes, ce sont les 2 derniers dans mon message. J’avais modifié le post.

Hello, j’ai relancé les tests et investigations ce matin mais toujours Ko sur cloudeufy:

voila les résultats:

jeedom@JeedomAtlas:~$ sudo /var/www/html/plugins/eufy/resources/eufy logs
eufy action: logs options:
2026-09-07 07:16:42.052 INFO    eufy-security-ws        Eufy Security server listening on host 0.0.0.0, port 3000
2026-09-07 07:16:42.171 INFO    eufy-security-ws:eufy-security-client   [http] [MegaHTTPApi.estimateDomain] MegaApi estimate_domain {
  megaDomain: 'mega-eu-pr.eufy.com',
  domains: 
   {
     eufy_care: 'care-app-eu.eufylife.com',
     eufy_home: 'appliances-api-eu.eufylife.com',
     eufy_life: 'appliances-api-eu.eufylife.com',
     eufy_pet: 'pet-app-eu.eufylife.com',
     eufy_security: 'security-app-eu.eufylife.com' 
   } 
}
2026-09-07 07:16:42.943 INFO    eufy-security-ws        Client disconnected with ip: 127.0.0.1 port: 55626 code: 1006 reason: Abnormal Closure
2026-09-07 07:16:43.316 INFO    eufy-security-ws        Client disconnected with ip: 127.0.0.1 port: 55628 code: 1000 reason: Normal Closure
2026-09-07 07:16:45.180 INFO    eufy-security-ws:eufy-security-client   [http] [MegaHTTPApi.keyExchange] MegaApi key/exchange ok {
  openapiHost: 'app-openapi-eu-pr.eufy.com',
  keyIdent: '5c71606786636b33c85ebf116a33d5b0' 
}
2026-09-07 07:16:48.343 INFO    eufy-security-ws:eufy-security-client   [http] [MegaHTTPApi.login] MegaApi login ok {
  userId: '7185d7464fa4e96ade87a0131cb1cba395f0985c',
  keys: 
   [
     'ab_code',
     'ap_cloud_user_id',
     'auth_token',
     'avatar',
     'country_code',
     'domain',
     'email',
     'fa_info',
     'geo_key',
     'mac_addr',
     'nick_name',
     'params',
     'phone',
     'phone_2fa',
     'phone_code',
     'phone_code_2fa',
     'phone_number',
     'privilege',
     'server_secret_info',
     'token_expires_at',
     'token_id',
     'trust_list',
     'user_id' 
   ] 
}
2026-09-07 07:16:48.354 INFO    eufy-security-ws:eufy-security-client   [main] [MegaTransition.loginMega] v6 login: success, mega session persisted
2026-09-07 07:16:49.692 INFO    eufy-security-ws:eufy-security-client   [push] [generateFid] generateFid c0ehPdClKqoropXYUREc8c
2026-09-07 07:16:49.855 INFO    eufy-security-ws:eufy-security-client   [http] [Station.onConnect] Connected to station T8010P252417226B on host 192.168.0.216 and port 18489
2026-09-07 07:16:51.742 ERROR   eufy-security-ws:eufy-security-client   [http] [HTTPApi.checkPushToken] Check push token - Response code not ok {
  code: -1,
  msg: 'La demande a échoué.',
  data: 
   {
     code: -1,
     msg: 'La demande a échoué.' 
   } 
}
2026-09-07 07:16:51.888 INFO    eufy-security-ws:eufy-security-client   [main] [MegaTransition.registerMegaPushToken] v6 push: FCM token registered on the eufy_mega backend
2026-09-07 07:16:51.889 INFO    eufy-security-ws:eufy-security-client   [main] Push notification connection successfully established
2026-09-07 07:16:54.944 INFO    eufy-security-ws        Client disconnected with ip: 127.0.0.1 port: 59388 code: 1006 reason: Abnormal Closure
2026-09-07 07:16:55.292 INFO    eufy-security-ws        Client disconnected with ip: 127.0.0.1 port: 59398 code: 1000 reason: Normal Closure
2026-09-07 07:17:02.694 INFO    eufy-security-ws        Client disconnected with ip: 127.0.0.1 port: 46060 code: 1006 reason: Abnormal Closure
2026-09-07 07:17:03.275 INFO    eufy-security-ws        Client disconnected with ip: 127.0.0.1 port: 46072 code: 1000 reason: Normal Closure

et voici le log test:

eufy action: test options:
test du container: 9e93c207c8a2 options:
python3 path: /var/www/html/plugins/eufy/resources/../resources/python_venv/bin/python3

*** Create connexion to 127.0.0.1:3000 ***
/var/www/html/plugins/eufy/resources/../resources/test_eufy.py:30: DeprecationWarning: connect() must be used as a context manager: with connect(...) as websocket: ...; alternatively, use websocket = connect(..., legacy=True) to connect directly
  print(ws.recv())
{"type":"version","driverVersion":"4.1.0","serverVersion":"3.1.0","minSchemaVersion":0,"maxSchemaVersion":21}

*** Start listening ***
{"type":"result","success":true,"result":{"state":{"driver":{"version":"4.1.0","connected":true,"pushConnected":true},"stations":[{"name":"Station Eufy ","model":"T8010","serialNumber":"T8010P252417226B","hardwareVersion":"P0","softwareVersion":"3.4.2.2h","lanIpAddress":"192.168.0.216","macAddress":"10:2C:B1:5B:E4:04","currentMode":0,"guardMode":0,"connected":true}],"devices":[{"name":"Entrée","model":"T8210C","serialNumber":"T8210P8124192F3E","hardwareVersion":"01","softwareVersion":"3.0.8.6","stationSerialNumber":"T8010P252417226B","enabled":true,"state":1,"battery":63,"batteryTemperature":18,"lastChargingDays":0,"lastChargingTotalEvents":0,"lastChargingRecordedEvents":0,"lastChargingFalseEvents":0,"batteryUsageLastWeek":0,"motionDetected":false,"personDetected":false,"personName":"","ringing":false,"autoNightvision":true,"motionDetection":true,"watermark":1,"wifiRSSI":-68,"pictureUrl":"/media/mmcblk0p1/video/20260906233939_c00.jpg","ledStatus":true}]}}}

Hello

De ton côté tu as réussi à faire quelque choses ?

Je n’y arrive toujours pas moi :frowning:

Hello

non malheureusement je pense que c’est lié fortement au changement coté eufy, qu’il y a des comptes Ok encore mais d’autres non, je n’ai jamais eu le bouton de synchro cloud Ok depuis ma bascule en debian 12 et la réinstallation du plugin en béta, même si effectivement avec qq commandes je vois bien qu’ils sont présents je ne peux pas lancé de découverte coté plugin, je suis bloqué par cloud eufy non connecté.

1 « J'aime »