Impossible de lier un nouveau périphérique

Bonjour,

J’ai cherché des posts similaires mais je n’ai pas trouvé de problèmes similaire au mien.

J’avais eu beaucoup de problèmes pour faire fonctionner mes périphériques depuis les différentes MaJ de ce printemps. J’avais surveillé les posts mais ce n’est qu’à la mise à jour 1.17 que j’ai pu refaire fonctionner mes périphériques (il y en a 3). Depuis je n’ai plus de problèmes.

Or, j’ai mon téléphone qui a rendu l’âme et j’en ai donc acheté un nouveau. Et il m’est impossible de le lier avec JC. J’avais bien détaché l’ancien pourtant.

J’ai essayé : redémarrage de plugin, régénération de QR code, reboot de Jeedom, purge des données de l’app à chaque fois, création d’un nouvel utilisateur, réinstallation du plugin etc.

Comme je suis en VM, j’avais snapshotté à chaque fois et rollback pour éviter de casser des choses qui marchaient jusqu’à présent.

En revanche, sur le téléphone de ma femme, ça fonctionne parfaitement (en connexion externe ou interne)

Je vois bien dans les logs qu’il y a un problème avec l’apikey mais malgré avoir régénéré l’apikey de l’utilisateur ou du plugin ou de l’équipement dans JC, ça ne change rien côté comportement. J’ai éssayé de délier et relier ma tablette (qui fonctionnait bien avant que je la délie) mais je ne peux plus la relier : même problème qu’avec mon mobile

Voici donc mes différents logs lorsque je tente de rajouter mon mobile (Appli JC vierge, QR code regénéré, logs purgés avant redémarrage du daemon).


Mes infos de config :
(Oui les ports parraissent chelou mais j’ai fait des redirections de ports et ça fonctionne depuis des années.)

Jeedom Core : 4.4.20 (master)
DNS Jeedom : non

Statut Démon : Démarré  (2025-12-04 15:43:50)
Version JC : 1.17.3 stable
Version OS : debian 11.11
Version PHP : 7.4.33
Bin : ok / vNotif_2
Dépendances : ok

Equipements : 
  Tablette-Klem : v1.20.0 (1782) stable  [os : 36] (ws) - PU
  TPH-Klem : v1.20.0 (1782) stable  [os : 34] (ws) - PU
  TPH-Sab : v1.20.0 (1782) stable sur android [os : 31] (ws) - PU


Logs Plugin

Stopping daemon
Stopping daemon
Starting daemon
Starting daemon with cmd >>cd '/var/www/html/plugins/JeedomConnect' && /var/www/html/plugins/JeedomConnect/core/class/../../resources/venv/bin/python3 -m resources.JeedomConnectd.JeedomConnectd --loglevel debug --socketport 58090 --websocketport 5984 --callback http://127.0.0.1:80/plugins/JeedomConnect/core/api/JeedomConnect.api.php --apikey **************************************************************** --pid /tmp/jeedom/JeedomConnect/deamon.pid --trace 1<<
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 1bb*****************c7b
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey fb******************0f26
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey f5c****************307efb
[TRACE] notif bin type >> sendNotif_x64
[WS] Request Received {"method": "CONNECT", "params": {"apiKey": null, "deviceId": "e1727e3271bdfdab", "deviceName": "OnePlus 15", "userHash": "GLLxQqYMqW******************************************************", "appVersion": "1.20.0", "pluginRequire": "1.7.1", "token": "f4IOT*******************************************************U", "platformOs": "android", "osVersion": 36, "appTypeVersion": "stable", "buildVersion": "1782", "connexionFrom": "WS"}, "jsonrpc": "2.0", "id": 1764861252401}
Send {"type":"EXCEPTION","payload":{"message":"Error with 'CONNECT' method Can't find eqLogic"}}
Error with 'CONNECT' method Can't find eqLogic
[WS] Request Received {"method": "CONNECT", "params": {"apiKey": null, "deviceId": "e1727e3271bdfdab", "deviceName": "OnePlus 15", "userHash": "GLLxQqYMqW******************************************************", "appVersion": "1.20.0", "pluginRequire": "1.7.1", "token": "f4IOT*******************************************************U", "platformOs": "android", "osVersion": 36, "appTypeVersion": "stable", "buildVersion": "1782", "connexionFrom": "WS"}, "jsonrpc": "2.0", "id": 1764861252401}
Send {"type":"EXCEPTION","payload":{"message":"Error with 'CONNECT' method Can't find eqLogic"}}
Error with 'CONNECT' method Can't find eqLogic
[WS] Request Received {"method": "CONNECT", "params": {"apiKey": null, "deviceId": "e1727e3271bdfdab", "deviceName": "OnePlus 15", "userHash": "GLLxQqYMqW******************************************************", "appVersion": "1.20.0", "pluginRequire": "1.7.1", "token": "f4IOT*******************************************************U", "platformOs": "android", "osVersion": 36, "appTypeVersion": "stable", "buildVersion": "1782", "connexionFrom": "WS"}, "jsonrpc": "2.0", "id": 1764861252401}
Send {"type":"EXCEPTION","payload":{"message":"Error with 'CONNECT' method Can't find eqLogic"}}
Error with 'CONNECT' method Can't find eqLogic
[WS] Request Received {"method": "CONNECT", "params": {"apiKey": null, "deviceId": "e1727e3271bdfdab", "deviceName": "OnePlus 15", "userHash": "GLLxQqYMqW******************************************************", "appVersion": "1.20.0", "pluginRequire": "1.7.1", "token": "f4IOT*******************************************************U", "platformOs": "android", "osVersion": 36, "appTypeVersion": "stable", "buildVersion": "1782", "connexionFrom": "WS"}, "jsonrpc": "2.0", "id": 1764861252401}
Send {"type":"EXCEPTION","payload":{"message":"Error with 'CONNECT' method Can't find eqLogic"}}
Error with 'CONNECT' method Can't find eqLogic
[WS] Request Received {"method": "CONNECT", "params": {"apiKey": null, "deviceId": "e1727e3271bdfdab", "deviceName": "OnePlus 15", "userHash": "GLLxQqYMqW******************************************************", "appVersion": "1.20.0", "pluginRequire": "1.7.1", "token": "f4IOT*******************************************************U", "platformOs": "android", "osVersion": 36, "appTypeVersion": "stable", "buildVersion": "1782", "connexionFrom": "WS"}, "jsonrpc": "2.0", "id": 1764861252401}
Send {"type":"EXCEPTION","payload":{"message":"Error with 'CONNECT' method Can't find eqLogic"}}
Error with 'CONNECT' method Can't find eqLogic
[WS] Request Received {"method": "CONNECT", "params": {"apiKey": null, "deviceId": "e1727e3271bdfdab", "deviceName": "OnePlus 15", "userHash": "GLLxQqYMqW******************************************************", "appVersion": "1.20.0", "pluginRequire": "1.7.1", "token": "f4IOT*******************************************************U", "platformOs": "android", "osVersion": 36, "appTypeVersion": "stable", "buildVersion": "1782", "connexionFrom": "WS"}, "jsonrpc": "2.0", "id": 1764861252401}
Send {"type":"EXCEPTION","payload":{"message":"Error with 'CONNECT' method Can't find eqLogic"}}
Error with 'CONNECT' method Can't find eqLogic
[WS] Request Received {"method": "CONNECT", "params": {"apiKey": null, "deviceId": "e1727e3271bdfdab", "deviceName": "OnePlus 15", "userHash": "GLLxQqYMqW******************************************************", "appVersion": "1.20.0", "pluginRequire": "1.7.1", "token": "f4IOT*******************************************************U", "platformOs": "android", "osVersion": 36, "appTypeVersion": "stable", "buildVersion": "1782", "connexionFrom": "WS"}, "jsonrpc": "2.0", "id": 1764861252401}
Send {"type":"EXCEPTION","payload":{"message":"Error with 'CONNECT' method Can't find eqLogic"}}
Error with 'CONNECT' method Can't find eqLogic
[WS] Request Received {"method": "CONNECT", "params": {"apiKey": null, "deviceId": "e1727e3271bdfdab", "deviceName": "OnePlus 15", "userHash": "GLLxQqYMqW******************************************************", "appVersion": "1.20.0", "pluginRequire": "1.7.1", "token": "f4IOT*******************************************************U", "platformOs": "android", "osVersion": 36, "appTypeVersion": "stable", "buildVersion": "1782", "connexionFrom": "WS"}, "jsonrpc": "2.0", "id": 1764861252401}
Send {"type":"EXCEPTION","payload":{"message":"Error with 'CONNECT' method Can't find eqLogic"}}
Error with 'CONNECT' method Can't find eqLogic
[WS] Request Received {"method": "CONNECT", "params": {"apiKey": null, "deviceId": "e1727e3271bdfdab", "deviceName": "OnePlus 15", "userHash": "GLLxQqYMqW******************************************************", "appVersion": "1.20.0", "pluginRequire": "1.7.1", "token": "f4IOT*******************************************************U", "platformOs": "android", "osVersion": 36, "appTypeVersion": "stable", "buildVersion": "1782", "connexionFrom": "WS"}, "jsonrpc": "2.0", "id": 1764861252401}
Send {"type":"EXCEPTION","payload":{"message":"Error with 'CONNECT' method Can't find eqLogic"}}
Error with 'CONNECT' method Can't find eqLogic
[WS] Request Received {"method": "CONNECT", "params": {"apiKey": null, "deviceId": "e1727e3271bdfdab", "deviceName": "OnePlus 15", "userHash": "GLLxQqYMqW******************************************************", "appVersion": "1.20.0", "pluginRequire": "1.7.1", "token": "f4IOT*******************************************************U", "platformOs": "android", "osVersion": 36, "appTypeVersion": "stable", "buildVersion": "1782", "connexionFrom": "WS"}, "jsonrpc": "2.0", "id": 1764861252401}
Send {"type":"EXCEPTION","payload":{"message":"Error with 'CONNECT' method Can't find eqLogic"}}
Error with 'CONNECT' method Can't find eqLogic
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 1bbcf******************2fc7b
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey fb*******************1760f26
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey f5**********************7efb
[TRACE] notif bin type >> sendNotif_x64

Logs Daemon


[2025-12-04 15:43:49] DEBUG  : Signal 15 caught, exiting...
[2025-12-04 15:43:49] DEBUG  : Shutdown
[2025-12-04 15:43:49] DEBUG  : Shutdown websocket server
[2025-12-04 15:43:49] DEBUG  : Removing PID file /tmp/jeedom/JeedomConnect/deamon.pid
[2025-12-04 15:43:49] DEBUG  : Closing Jeedom Socket connexion
[2025-12-04 15:43:49] INFO  : LoopNetServer Thread stopped
[2025-12-04 15:43:49] DEBUG  : Exit 0
[2025-12-04 15:43:51] INFO  : Start daemon
[2025-12-04 15:43:51] INFO  : Log level : debug
[2025-12-04 15:43:51] DEBUG  : Socket port : 58090
[2025-12-04 15:43:51] DEBUG  : PID file : /tmp/jeedom/JeedomConnect/deamon.pid
[2025-12-04 15:43:51] DEBUG  : ** Starting Jeedom daemon **
[2025-12-04 15:43:51] INFO  : Writing PID 2754193 to /tmp/jeedom/JeedomConnect/deamon.pid
[2025-12-04 15:43:51] INFO  : Init request module v2.32.5
[2025-12-04 15:43:51] INFO  : ** Jeedom daemon started **
[2025-12-04 15:43:51] DEBUG  : ** Starting JC Websocket daemon **
[2025-12-04 15:43:51] INFO  : Listening on port 5984 for clients..
[2025-12-04 15:43:51] INFO  : Starting JCWebsocketServer on thread Thread-1.
[2025-12-04 15:43:51] INFO  : ** JC Websocket daemon started **
[2025-12-04 15:43:51] DEBUG  : Starting loop to retrieve all events
[2025-12-04 15:43:51] DEBUG  : Start listening
[2025-12-04 15:43:51] INFO  : Socket interface started
[2025-12-04 15:43:51] INFO  : LoopNetServer Thread started
[2025-12-04 15:43:51] INFO  : Listening on: [localhost:58090]
[2025-12-04 16:14:12] INFO  : New connection: #1 from IP: ('90*******19', 23263)
[2025-12-04 16:14:12] INFO  : Number of client connected #1
[2025-12-04 16:14:12]WARNING : Clients not authenticated #1
[2025-12-04 16:14:12] DEBUG  : [WEBSOCKET RECEIVE] message: {"method":"CONNECT","params":{"apiKey":null,"deviceId":"e1727e3271bdfdab","deviceName":"OnePlus 15","userHash":"GLLxQqY********************************************************rdo","appVersion":"1.20.0","pluginRequire":"1.7.1","token":"f4IOT*******************************************************U","platformOs":"android","osVersion":36,"appTypeVersion":"stable","buildVersion":"1782"},"jsonrpc":"2.0","id":1764861252401}
[2025-12-04 16:14:12] INFO  : [DAEMON SEND] message:  {'method': 'CONNECT', 'params': {'apiKey': None, 'deviceId': 'e1727e3271bdfdab', 'deviceName': 'OnePlus 15', 'userHash': 'GLL****************************************************Itrdo', 'appVersion': '1.20.0', 'pluginRequire': '1.7.1', 'token': 'f4IOT*******************************************************U', 'platformOs': 'android', 'osVersion': 36, 'appTypeVersion': 'stable', 'buildVersion': '1782', 'connexionFrom': 'WS'}, 'jsonrpc': '2.0', 'id': 1764861252401}
[2025-12-04 16:14:12] DEBUG  : Starting new HTTP connection (1): 127.0.0.1:80
[2025-12-04 16:14:12] DEBUG  : Client connected to [127.0.0.1:36834]
[2025-12-04 16:14:12] INFO  : Message read from socket: b'{"type":"EXCEPTION","payload":{"message":"Error with \'CONNECT\' method Can\'t find eqLogic"},"jeedomApiKey":"66hA7Cgyw9n*************************************BjI"}'
[2025-12-04 16:14:12] DEBUG  : http://127.0.0.1:80 "POST /plugins/JeedomConnect/core/api/JeedomConnect.api.php?apikey=66hA7*****************************************iIBjI HTTP/1.1" 200 0
[2025-12-04 16:14:12] DEBUG  : Client disconnected from [127.0.0.1:36834]
[2025-12-04 16:14:12]WARNING : no apiKey found ! -- skip msg EXCEPTION
[2025-12-04 16:14:13] DEBUG  : trying to close unauthenticate client. current time 1764861253.7310047 with max time 3
[2025-12-04 16:14:13]WARNING : no api key found for client ${'id': 1, 'handler': <__main__.JCWebSocketHandler object at 0x7f406e20c2b0>, 'address': ('90********19', 23263), 'realIpAdd': None, 'apiKey': None, 'configVersion': None, 'lastReadTimestamp': None, 'lastHistoricReadTimestamp': None, 'openTimestamp': 1764861252.8235085}
[2025-12-04 16:14:14] DEBUG  : trying to close unauthenticate client. current time 1764861254.7323833 with max time 3
[2025-12-04 16:14:14]WARNING : no api key found for client ${'id': 1, 'handler': <__main__.JCWebSocketHandler object at 0x7f406e20c2b0>, 'address': ('9*********9', 23263), 'realIpAdd': None, 'apiKey': None, 'configVersion': None, 'lastReadTimestamp': None, 'lastHistoricReadTimestamp': None, 'openTimestamp': 1764861252.8235085}
[2025-12-04 16:14:15] DEBUG  : trying to close unauthenticate client. current time 1764861255.7337606 with max time 3
[2025-12-04 16:14:15]WARNING : no api key found for client ${'id': 1, 'handler': <__main__.JCWebSocketHandler object at 0x7f406e20c2b0>, 'address': ('90.*******19', 23263), 'realIpAdd': None, 'apiKey': None, 'configVersion': None, 'lastReadTimestamp': None, 'lastHistoricReadTimestamp': None, 'openTimestamp': 1764861252.8235085}
[2025-12-04 16:14:16] DEBUG  : trying to close unauthenticate client. current time 1764861256.7350786 with max time 3
[2025-12-04 16:14:16]WARNING : Over time unauthenticate closing connexion for {'id': 1, 'handler': <__main__.JCWebSocketHandler object at 0x7f406e20c2b0>, 'address': ('90********9', 23263), 'realIpAdd': None, 'apiKey': None, 'configVersion': None, 'lastReadTimestamp': None, 'lastHistoricReadTimestamp': None, 'openTimestamp': 1764861252.8235085}
[2025-12-04 16:14:16] DEBUG  : Closing connection client #1 from address: ('9*******9', 23263)
[2025-12-04 16:14:16] INFO  : Client asked to close connection.
[2025-12-04 16:14:17] INFO  : New connection: #2 from IP: ('9*********9', 32967)
[2025-12-04 16:14:17] INFO  : Number of client connected #1
[2025-12-04 16:14:17]WARNING : Clients not authenticated #1
[2025-12-04 16:14:17] DEBUG  : [WEBSOCKET RECEIVE] message: {"method":"CONNECT","params":{"apiKey":null,"deviceId":"e1727e3271bdfdab","deviceName":"OnePlus 15","userHash":"GLLxQqYMqWBiK4Xf**********************************VUGItrdo","appVersion":"1.20.0","pluginRequire":"1.7.1","token":"f4IOT*******************************************************U","platformOs":"android","osVersion":36,"appTypeVersion":"stable","buildVersion":"1782"},"jsonrpc":"2.0","id":1764861252401}
[2025-12-04 16:14:17] INFO  : [DAEMON SEND] message:  {'method': 'CONNECT', 'params': {'apiKey': None, 'deviceId': 'e1727e3271bdfdab', 'deviceName': 'OnePlus 15', 'userHash': 'GLLxQ******************************************UGItrdo', 'appVersion': '1.20.0', 'pluginRequire': '1.7.1', 'token': 'f4IOT*******************************************************U', 'platformOs': 'android', 'osVersion': 36, 'appTypeVersion': 'stable', 'buildVersion': '1782', 'connexionFrom': 'WS'}, 'jsonrpc': '2.0', 'id': 1764861252401}
[2025-12-04 16:14:17] DEBUG  : Starting new HTTP connection (1): 127.0.0.1:80
[2025-12-04 16:14:17] DEBUG  : Client connected to [127.0.0.1:33214]
[2025-12-04 16:14:17] DEBUG  : http://127.0.0.1:80 "POST /plugins/JeedomConnect/core/api/JeedomConnect.api.php?apikey=66hA**************************************BjI HTTP/1.1" 200 0
[2025-12-04 16:14:17] INFO  : Message read from socket: b'{"type":"EXCEPTION","payload":{"message":"Error with \'CONNECT\' method Can\'t find eqLogic"},"jeedomApiKey":"66hA7Cgyw9nj6**************************************iIBjI"}'
[2025-12-04 16:14:17] DEBUG  : Client disconnected from [127.0.0.1:33214]
[2025-12-04 16:14:17]WARNING : no apiKey found ! -- skip msg EXCEPTION
[2025-12-04 16:14:18] DEBUG  : trying to close unauthenticate client. current time 1764861258.7374947 with max time 3
[2025-12-04 16:14:18]WARNING : no api key found for client ${'id': 2, 'handler': <__main__.JCWebSocketHandler object at 0x7f406e20c610>, 'address': ('90*****19', 32967), 'realIpAdd': None, 'apiKey': None, 'configVersion': None, 'lastReadTimestamp': None, 'lastHistoricReadTimestamp': None, 'openTimestamp': 1764861257.8593976}
[2025-12-04 16:14:19] DEBUG  : trying to close unauthenticate client. current time 1764861259.738936 with max time 3
[2025-12-04 16:14:19]WARNING : no api key found for client ${'id': 2, 'handler': <__main__.JCWebSocketHandler object at 0x7f406e20c610>, 'address': ('90********19', 32967), 'realIpAdd': None, 'apiKey': None, 'configVersion': None, 'lastReadTimestamp': None, 'lastHistoricReadTimestamp': None, 'openTimestamp': 1764861257.8593976}
[2025-12-04 16:14:20] DEBUG  : trying to close unauthenticate client. current time 1764861260.740287 with max time 3
[2025-12-04 16:14:20]WARNING : no api key found for client ${'id': 2, 'handler': <__main__.JCWebSocketHandler object at 0x7f406e20c610>, 'address': ('90********19', 32967), 'realIpAdd': None, 'apiKey': None, 'configVersion': None, 'lastReadTimestamp': None, 'lastHistoricReadTimestamp': None, 'openTimestamp': 1764861257.8593976}
[2025-12-04 16:14:21] DEBUG  : trying to close unauthenticate client. current time 1764861261.7417026 with max time 3
[2025-12-04 16:14:21]WARNING : Over time unauthenticate closing connexion for {'id': 2, 'handler': <__main__.JCWebSocketHandler object at 0x7f406e20c610>, 'address': ('90********19', 32967), 'realIpAdd': None, 'apiKey': None, 'configVersion': None, 'lastReadTimestamp': None, 'lastHistoricReadTimestamp': None, 'openTimestamp': 1764861257.8593976}
[2025-12-04 16:14:21] DEBUG  : Closing connection client #2 from address: ('90********19', 32967)
[2025-12-04 16:14:22] INFO  : Client asked to close connection.

Logs Appli Smartphone

16:13:21 | INFO : Start logger 
16:13:30 | INFO : App state changed to background 
16:13:30 | DEBUG : [ConnectionManager][Polling] send data 
{
  "type": "SET_APPSTATE"
}

16:13:31 | INFO : App state changed to active 
16:13:31 | DEBUG : [ConnectionManager][Polling] send data 
{
  "type": "SET_APPSTATE"
}

16:13:32 | INFO : qr code data : 
{
  "useWs": "1",
  "polling": "0",
  "eqName": "TPH-Klem",
  "userName": "clement",
  "httpUrl": "https://crux.**********.ovh:4619",
  "internalHttpUrl": "https://*******.maison",
  "wsAddress": "ws://crux.*******.ovh:39746",
  "internalWsAddress": "ws://*********.maison:5984",
  "apiKey": "fb2***********************0f26",
  "userHash": "GL*************************************************do"
}

16:13:32 | DEBUG : sendToJcApi  
{
  "url": "https://*******.maison/plugins/JeedomConnect/core/api/JeedomConnect.api.php",
  "data": {
    "method": "PING",
    "jsonrpc": "2.0",
    "id": 1764861212790,
    "params": {
      "apiKey": null
    }
  },
  "baseUrl": "https://***********.maison"
}

16:13:32 | DEBUG : [BackgroundGeolocation] set config success 
{
  "state": {
    "didDeviceReboot": true,
    "didLaunchInBackground": false,
    "odometer": 0,
    "didShowBackgroundPermissionRationale": false,
    "trackingMode": 1,
    "triggerActivities": "in_vehicle, on_bicycle, on_foot, running, walking",
    "stopOnStationary": false,
    "enabled": false,
    "stopAfterElapsedMinutes": 0,
    "stationaryRadius": 25,
    "startOnBoot": true,
    "scheduleUseAlarmManager": false,
    "schedule": [],
    "persistMode": 2,
    "persist": true,
    "notification": {
      "strings": {},
      "sticky": false,
      "largeIcon": "",
      "layout": "",
      "channelId": "jcLocChannel",
      "color": "#1ba1f2",
      "smallIcon": "drawable/ic_small_icon",
      "text": "Service de géolocalisation en cours",
      "priority": -1,
      "channelName": "Jeedom Connect localisation",
      "actions": [],
      "title": ""
    },
    "motionTriggerDelay": 0,
    "maxMonitoredGeofences": 97,
    "geofenceTemplate": "",
    "locationAuthorizationRequest": "Always",
    "locationUpdateInterval": 1000,
    "locationTemplate": "",
    "isMoving": false,
    "disableLocationAuthorizationAlert": false,
    "httpRootProperty": "params",
    "maxDaysToPersist": 1,
    "httpTimeout": 60000,
    "geofenceProximityRadius": 3000,
    "geofenceModeHighAccuracy": false,
    "fastestLocationUpdateInterval": -1,
    "headers": {},
    "params": {
      "jsonrpc": "2.0",
      "method": "GEOLOC",
      "id": "fb24e9eb2024a5e49d2599c681760f26"
    },
    "elasticityMultiplier": 1,
    "extras": {},
    "enableTimestampMeta": true,
    "headlessJobService": "com.transistorsoft.rnbackgroundgeolocation.HeadlessTask",
    "distanceFilter": 10,
    "disableStopDetection": false,
    "disableProviderChangeRecord": false,
    "url": "https://crux.*************.ovh:4619/plugins/JeedomConnect/core/api/JeedomConnect.api.php",
    "maxBatchSize": -1,
    "method": "POST",
    "foregroundService": true,
    "isFirstBoot": true,
    "disableElasticity": false,
    "logMaxDays": 2,
    "useSignificantChangesOnly": false,
    "heartbeatInterval": -1,
    "disableMotionActivityUpdates": false,
    "speedJumpFilter": 300,
    "debug": false,
    "disableAutoSyncOnCellular": false,
    "desiredAccuracy": -1,
    "minimumActivityRecognitionConfidence": 75,
    "locationTimeout": 60,
    "schedulerEnabled": false,
    "enableHeadless": false,
    "geofenceInitialTriggerEntry": true,
    "configUrl": "",
    "deferTime": 0,
    "stopOnTerminate": false,
    "desiredOdometerAccuracy": 100,
    "crashDetector": {
      "accelerometerThresholdLow": 4.5,
      "gyroscopeThresholdLow": 4.5,
      "gyroscopeThresholdHigh": 20,
      "accelerometerThresholdHigh": 20,
      "enabled": false
    },
    "batchSync": false,
    "backgroundPermissionRationale": {
      "negativeAction": "Annuler",
      "positiveAction": "Changer pour {backgroundPermissionOptionLabel}",
      "message": "Dans le but de suivre votre position en arrière plan, veuillez activer la permission de localisation {backgroundPermissionOptionLabel}",
      "title": "Autoriser Jeedom Connect à la localisation de cet appareil en arrière plan ?"
    },
    "maxRecordsToPersist": -1,
    "activityRecognitionInterval": 10000,
    "stopTimeout": 10,
    "autoSyncThreshold": 0,
    "locationsOrderDirection": "ASC",
    "allowIdenticalLocations": false,
    "autoSync": true,
    "logLevel": 0,
    "authorization": {}
  }
}

16:13:32 | ERROR : Error in sendToJcApi PING Network Error 
16:13:33 | DEBUG : sendToJcApi  
{
  "url": "https://crux.************.ovh:4619/plugins/JeedomConnect/core/api/JeedomConnect.api.php",
  "data": {
    "method": "CHECK_USER",
    "params": {
      "userHash": "GLLx*************************************************************GItrdo",
      "apiKey": null
    },
    "jsonrpc": "2.0",
    "id": 1764861213217
  }
}

16:13:33 | ERROR : Error in sendToJcApi CHECK_USER Network Error 
16:13:33 | ERROR : CHECK_USER error Network Error 
16:13:43 | INFO : App state changed to background 
16:13:43 | DEBUG : [ConnectionManager][Polling] send data 
{
  "type": "SET_APPSTATE"
}

salut

pas de soucis avec tous les ports !

une nouvelle version est en cours de déploiement pour corriger le soucis du websocket.
en attendant passe en connexion classique.

d autre part, httpS en local … t as un certificat qui signe ton local ??? ya peu de chance, dans ce cas, passe en http

2 « J'aime »

J’ai effectivement une autorité interne. En externe j’utilise Let’s Encrypt.

Du coup en réseau interne, les WebView ne fonctionne pas (Ils me servent à afficher mes designs à distance).

Malgré que la CA soit dans le magasin du téléphone, ça ne valide pas le certificat.

Mais ce n’est pas grave car en interne j’ai des tablettes en mode kiosque pour afficher les designs et en externe ça fonctionne niquel.

Merci pour le retour !

Bonjour,
Version du plugin passée en 1.20.5. (+ Relance dépendances au cas où).
Mon appli Android est en revanche restée en 1.20.0

Ça ne fonctionne toujours pas. Je constate que les logs plugin et démon sont bien moins verbeux que précédemment. (Les logs Smartphone sont les mêmes)

Démon

Stopping daemon
Starting daemon
Starting daemon with cmd >>cd '/var/www/html/plugins/JeedomConnect' && /var/www/html/plugins/JeedomConnect/core/class/../../resources/venv/bin/python3 -m resources.JeedomConnectd.JeedomConnectd --loglevel debug --socketport 58090 --websocketport 5984 --callback http://127.0.0.1:80/plugins/JeedomConnect/core/api/JeedomConnect.api.php --apikey **************************************************************** --pid /tmp/jeedom/JeedomConnect/deamon.pid --trace 1<<
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 1bbcfc***********************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey fb24e9***************************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey f5cc5************************
[TRACE] notif bin type >> sendNotif_x64
Generate qrcode with data {"useWs":"1","polling":"0","eqName":"TPH-Klem","userName":"clement","httpUrl":"https:\/\/cr******************","internalHttpUrl":"https:\/\/jeedom*******","wsAddress":"ws:\/\/cr****************","internalWsAddress":"ws:\/\/jeedom.********:5984","apiKey":"fb24e9***************************","userHash":"GLLxQqYMqW******************************************************"}
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 1bbcfc***********************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey fb24e9***************************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey f5cc5************************
[TRACE] notif bin type >> sendNotif_x64
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 1bbcfc***********************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey fb24e9***************************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey f5cc5************************
[TRACE] notif bin type >> sendNotif_x64
new api key generated : 4a840b8a****************************** - previous one was [fb24e9***************************]
Generate qrcode with data {"useWs":"1","polling":"0","eqName":"TPH-Klem","userName":"clement","httpUrl":"https:\/\/cr******************","internalHttpUrl":"https:\/\/jeedom*******","wsAddress":"ws:\/\/cr****************","internalWsAddress":"ws:\/\/jeedom*******:5984","apiKey":"4a840b8a******************************","userHash":"GLLxQqYMqW******************************************************"}
Copying notification config file
Copying backup config folder
Copying custom data from fb24e9*************************** to ["4a840b8ae7f6********a802297d7b3"]
Copying config file from fb24e9*************************** to 4a840b8ae7f**********802297d7b3
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 4a840b8ae***************802297d7b3
widgets found in the current equipment -- updating configVersion to 507
Saving conf in file : /var/www/html/plugins/JeedomConnect/core/class/../../data/configs/4a840b8ae7f*********************97d7b3.json
Renewing the version of the widgets configuration
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 1bbcfc***********************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 4a840b8a******************************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey f5cc5************************
[TRACE] notif bin type >> sendNotif_x64
[TRACE] notif bin type >> sendNotif_x64
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 1bbcfc***********************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 4a840b8a******************************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey f5cc5************************
[TRACE] notif bin type >> sendNotif_x64
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 1bbcfc***********************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 4a840b8a******************************
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey f5cc5************************
[TRACE] notif bin type >> sendNotif_x64

Plugin

[2025-12-08 18:00:48] INFO  : Start daemon
[2025-12-08 18:00:48] INFO  : Log level : debug
[2025-12-08 18:00:48] DEBUG  : Socket port : 58090
[2025-12-08 18:00:48] DEBUG  : PID file : /tmp/jeedom/JeedomConnect/deamon.pid
[2025-12-08 18:00:48] DEBUG  : ** Starting Jeedom daemon **
[2025-12-08 18:00:48] INFO  : Writing PID 11778 to /tmp/jeedom/JeedomConnect/deamon.pid
[2025-12-08 18:00:48] INFO  : Init request module v2.32.5
[2025-12-08 18:00:48] INFO  : ** Jeedom daemon started **
[2025-12-08 18:00:48] DEBUG  : ** Starting JC Websocket daemon **
[2025-12-08 18:00:48] INFO  : Listening on port 5984 for clients..
[2025-12-08 18:00:48] INFO  : Starting JCWebsocketServer on thread Thread-1.
[2025-12-08 18:00:48] INFO  : ** JC Websocket daemon started **
[2025-12-08 18:00:48] DEBUG  : Starting loop to retrieve all events
[2025-12-08 18:00:48] DEBUG  : Start listening
[2025-12-08 18:00:48] INFO  : Socket interface started
[2025-12-08 18:00:48] INFO  : LoopNetServer Thread started
[2025-12-08 18:00:48] INFO  : Listening on: [localhost:58090]

Ça y’est l’appli est disponible sur le PlayStore en V1.21. J’ai donc mis à jour.

Sur mon smartphone => Impossible de lier le téléphone
Sur celui de ma femme qui marchait jusqu’à présent :

  • en interne tout fonctionne
  • en externe les commandes fonctionnent mais leur retour d’état ne fonctionne pas.

Bonjour,

Le problème est toujours présent : je ne peux pas lier un nouveau périphérique.

Voici les logs d’une nouvelle tentative après MaJ, Dépendance, Regen de QR Code, Reboot, etc.

Je ne comprend pas, dans les logs de l’appli, pourquoi lors de l’erreur sendToJcApi PING Network Error, dans la methode CHECK_USER le userHash correspond bien à celui de mon utilisateur Jeedom mais que l’apiKey (qui pourtant à bien été passée dans le QR-Code) est à null. Mais ça n’a peut être rien à voir avec mon problème.
Je note aussi que même en mode verbose pour le plugin, les logs sont moins verbeux qu’avec la version précédente.

  • Plugin
Stopping daemon
Stopping daemon
Starting daemon
Starting daemon with cmd >>cd '/var/www/html/plugins/JeedomConnect' && /var/www/html/plugins/JeedomConnect/core/class/../../resources/venv/bin/python3 -m resources.JeedomConnectd.JeedomConnectd --loglevel debug --socketport 58090 --websocketport 5984 --callback http://127.0.0.1:80/plugins/JeedomConnect/core/api/JeedomConnect.api.php --apikey **************************************************************** --pid /tmp/jeedom/JeedomConnect/deamon.pid --trace 1<<
Generate qrcode with data {"useWs":"1","polling":"0","eqName":"TPH-Klem","userName":"clement","httpUrl":"https:\/\/crux****************","internalHttpUrl":"https:\/\/jeedom.maison","wsAddress":"ws:\/\/crux.hy**************","internalWsAddress":"ws:\/\/jeedom.maison:5984","apiKey":"3ecab6**********************29","userHash":"GLLxQqYMqW******************************************************"}
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 1bbcf**********************c7b
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 3ecab6**********************29
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey f5c**********************307efb
[TRACE] notif bin type >> sendNotif_x64
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 1bbcf**********************c7b
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey 3ecab6**********************29
[TRACE] ¤¤¤¤¤ only send the config file without enrichment for apikey f5c**********************307efb
[TRACE] notif bin type >> sendNotif_x64
  • Démon WS
[2025-12-17 09:53:49] DEBUG  : Signal 15 caught, exiting...
[2025-12-17 09:53:49] DEBUG  : Shutdown
[2025-12-17 09:53:49] DEBUG  : Shutdown websocket server
[2025-12-17 09:53:49] DEBUG  : Removing PID file /tmp/jeedom/JeedomConnect/deamon.pid
[2025-12-17 09:53:49] DEBUG  : Closing Jeedom Socket connexion
[2025-12-17 09:53:49] INFO  : LoopNetServer Thread stopped
[2025-12-17 09:53:49] DEBUG  : Exit 0
[2025-12-17 09:54:03] INFO  : Start daemon
[2025-12-17 09:54:03] INFO  : Log level : debug
[2025-12-17 09:54:03] DEBUG  : Socket port : 58090
[2025-12-17 09:54:03] DEBUG  : PID file : /tmp/jeedom/JeedomConnect/deamon.pid
[2025-12-17 09:54:03] DEBUG  : ** Starting Jeedom daemon **
[2025-12-17 09:54:03] INFO  : Writing PID 2681 to /tmp/jeedom/JeedomConnect/deamon.pid
[2025-12-17 09:54:03] INFO  : Init request module v2.32.5
[2025-12-17 09:54:03] INFO  : ** Jeedom daemon started **
[2025-12-17 09:54:03] DEBUG  : ** Starting JC Websocket daemon **
[2025-12-17 09:54:03] INFO  : Listening on port 5984 for clients..
[2025-12-17 09:54:03] INFO  : Starting JCWebsocketServer on thread Thread-1.
[2025-12-17 09:54:03] INFO  : ** JC Websocket daemon started **
[2025-12-17 09:54:03] DEBUG  : Starting loop to retrieve all events
[2025-12-17 09:54:03] DEBUG  : Start listening
[2025-12-17 09:54:03] INFO  : Socket interface started
[2025-12-17 09:54:03] INFO  : LoopNetServer Thread started
[2025-12-17 09:54:03] INFO  : Listening on: [localhost:58090]
  • Appli Jeedom Connect
09:53:19 | INFO : Start logger 
09:53:50 | INFO : App state changed to background 
09:53:50 | DEBUG : [ConnectionManager][Polling] send data 
{
  "type": "SET_APPSTATE"
}

09:54:20 | INFO : App state changed to active 
09:54:20 | DEBUG : [ConnectionManager][Polling] send data 
{
  "type": "SET_APPSTATE"
}

09:54:22 | INFO : App state changed to background 
09:54:22 | DEBUG : [ConnectionManager][Polling] send data 
{
  "type": "SET_APPSTATE"
}

09:54:23 | INFO : App state changed to active 
09:54:23 | DEBUG : [ConnectionManager][Polling] send data 
{
  "type": "SET_APPSTATE"
}

09:54:24 | INFO : qr code data : 
{
  "useWs": "1",
  "polling": "0",
  "eqName": "TPH-Klem",
  "userName": "clement",
  "httpUrl": "https://crux.**************:4619",
  "internalHttpUrl": "https://jeedom.*******",
  "wsAddress": "ws://crux.**************:39746",
  "internalWsAddress": "ws://jeedom.*******:5984",
  "apiKey": "3eca**********************29",
  "userHash": "GLLx**********************UGItrdo"
}

09:54:24 | DEBUG : sendToJcApi  
{
  "url": "https://jeedom.*******/plugins/JeedomConnect/core/api/JeedomConnect.api.php",
  "data": {
    "method": "PING",
    "jsonrpc": "2.0",
    "id": 1765961664559,
    "params": {
      "apiKey": null
    }
  },
  "baseUrl": "https://jeedom.*******"
}

09:54:24 | DEBUG : [BackgroundGeolocation] set config success 
{
  "state": {
    "didDeviceReboot": false,
    "didLaunchInBackground": false,
    "odometer": 0,
    "didShowBackgroundPermissionRationale": false,
    "trackingMode": 1,
    "triggerActivities": "in_vehicle, on_bicycle, on_foot, running, walking",
    "stopOnStationary": false,
    "enabled": false,
    "stopAfterElapsedMinutes": 0,
    "stationaryRadius": 25,
    "startOnBoot": true,
    "scheduleUseAlarmManager": false,
    "schedule": [],
    "persistMode": 2,
    "persist": true,
    "notification": {
      "strings": {},
      "sticky": false,
      "largeIcon": "",
      "layout": "",
      "channelId": "jcLocChannel",
      "color": "#1ba1f2",
      "smallIcon": "drawable/ic_small_icon",
      "text": "Service de géolocalisation en cours",
      "priority": -1,
      "channelName": "Jeedom Connect localisation",
      "actions": [],
      "title": ""
    },
    "motionTriggerDelay": 0,
    "maxMonitoredGeofences": 97,
    "geofenceTemplate": "",
    "locationAuthorizationRequest": "Always",
    "locationUpdateInterval": 1000,
    "locationTemplate": "",
    "isMoving": false,
    "disableLocationAuthorizationAlert": false,
    "httpRootProperty": "params",
    "maxDaysToPersist": 1,
    "httpTimeout": 60000,
    "geofenceProximityRadius": 3000,
    "geofenceModeHighAccuracy": false,
    "fastestLocationUpdateInterval": -1,
    "headers": {},
    "params": {
      "jsonrpc": "2.0",
      "method": "GEOLOC",
      "id": "3eca**********************29"
    },
    "elasticityMultiplier": 1,
    "extras": {},
    "enableTimestampMeta": true,
    "headlessJobService": "com.transistorsoft.rnbackgroundgeolocation.HeadlessTask",
    "distanceFilter": 10,
    "disableStopDetection": false,
    "disableProviderChangeRecord": false,
    "url": "https://crux.**************:4619/plugins/JeedomConnect/core/api/JeedomConnect.api.php",
    "maxBatchSize": -1,
    "method": "POST",
    "foregroundService": true,
    "isFirstBoot": true,
    "disableElasticity": false,
    "logMaxDays": 2,
    "useSignificantChangesOnly": false,
    "heartbeatInterval": -1,
    "disableMotionActivityUpdates": false,
    "speedJumpFilter": 300,
    "debug": false,
    "disableAutoSyncOnCellular": false,
    "desiredAccuracy": -1,
    "minimumActivityRecognitionConfidence": 75,
    "locationTimeout": 60,
    "schedulerEnabled": false,
    "enableHeadless": false,
    "geofenceInitialTriggerEntry": true,
    "configUrl": "",
    "deferTime": 0,
    "stopOnTerminate": false,
    "desiredOdometerAccuracy": 100,
    "crashDetector": {
      "accelerometerThresholdLow": 4.5,
      "gyroscopeThresholdLow": 4.5,
      "gyroscopeThresholdHigh": 20,
      "accelerometerThresholdHigh": 20,
      "enabled": false
    },
    "batchSync": false,
    "backgroundPermissionRationale": {
      "negativeAction": "Annuler",
      "positiveAction": "Changer pour {backgroundPermissionOptionLabel}",
      "message": "Dans le but de suivre votre position en arrière plan, veuillez activer la permission de localisation {backgroundPermissionOptionLabel}",
      "title": "Autoriser Jeedom Connect à la localisation de cet appareil en arrière plan ?"
    },
    "maxRecordsToPersist": -1,
    "activityRecognitionInterval": 10000,
    "stopTimeout": 10,
    "autoSyncThreshold": 0,
    "locationsOrderDirection": "ASC",
    "allowIdenticalLocations": false,
    "autoSync": true,
    "logLevel": 0,
    "authorization": {}
  }
}

09:54:24 | ERROR : Error in sendToJcApi PING Network Error 
09:54:24 | DEBUG : sendToJcApi  
{
  "url": "https://crux.**************:4619/plugins/JeedomConnect/core/api/JeedomConnect.api.php",
  "data": {
    "method": "CHECK_USER",
    "params": {
      "userHash": "GLLx**********************UGItrdo",
      "apiKey": null
    },
    "jsonrpc": "2.0",
    "id": 1765961664965
  }
}

09:54:25 | ERROR : Error in sendToJcApi CHECK_USER Network Error 
09:54:25 | ERROR : CHECK_USER error Network Error 
09:54:34 | INFO : App state changed to background 
09:54:34 | DEBUG : [ConnectionManager][Polling] send data 
{
  "type": "SET_APPSTATE"
}


Bonjour,

J’ai fait une réinstallation complète de jeedom. A vide, ça fonctionne.

J’ai fait un import de mes données jeedom et là, ça ne fonctionnait pas.

J’ai continué à chercher et j’ai trouvé le problème.

En connexion interne, j’utilise en temps normal, HTTPS avec un certificat signé par une autorité personnelle.

Si je passe l’adresse http interne de HTTPS à HTTP, j’arrive à lier des périphériques. Ce qui explique pourquoi rien ne fonctionnait même sans passer par le WebSocket.

J’en conclu que le problème est qu’en HTTPS, l’appli ne trouve pas la CA associée au certificat, donc ça plante. Pour les périphériques déjà liés auparavant, la communication se faisant via le WebSocket, c’est transparent pour les utilisateurs. (J’arrive à reproduire le comportement avec mes périphériques fraichement importés si je repasse de HTTP à HTTPS)
Je parie que l’appli utilise ses propres CA grand publique mais ne consulte pas le magasin interne d’Android.
C’est exactement le même comportement, par défaut, de Firefox Mobile. Une option permet de forcer l’appli à également consulter le magasin de l’appareil.

L’autorité étant dans mon magasin de CA, je pense qu’il serait intéressant qu’une évolution de l’appli soit faite pour qu’elle consulte également le magasin d’autorités du smartphone en, sus de son propre magasin.