Bonjour
Ayant acquis l’excellente serrure connectée switchbot ultra j’ai aussi acquis son plugin jeedom.
Le plugin ne voit pas la serrure, probablement trop récente. Je regarde sur ce forum et constate que le plugin est abandonné par son auteur.
Comment est il possible de se faire rembourser l’achat ? ce n’est pas pour le montant dérisoire, c’est pour le principe. Je trouve çà inacceptable de garder un mécanisme d’achat sur un plugin abandonné.
Salut,
Je suis dans le même cas. mais tu peux la faire fonctionner si modifier les fichiers du plugins te fait pas peur.
dans le dossier plugins/switchbotcloud/core/php/switchbotcloud.php
vers la ligne 621 tu devrais trouvé une « case ‹ Smart Lock Pro ›: »
l’idée et de copiée cela pour t’as serrure ultra.
Rajoute après le ‹ break; › du ‹ smart lock pro › ce bout de code.
case 'Smart Lock Ultra':
$type = "WoLockPro";
break;
enregistre le fichier et ensuite tu pourras refaire une synchro des dispositifs et elle devrais apparaître.
elle fonctionne chez moi maintenant
bonne piste mais çà marche pas:
La synchro plante:
0111|[Thu Jun 26 14:35:00.244126 2025] [php:error] [pid 390273:tid 390273] [client 127.0.0.1:34876] PHP Fatal error: Uncaught TypeError: implode(): Argument #1 ($array) must be of type array, string given in /var/www/html/plugins/switchbotcloud/core/php/switchbotcloud.php:587\nStack trace:\n#0 /var/www/html/plugins/switchbotcloud/core/php/switchbotcloud.php(587): implode()\n#1 {main}\n thrown in /var/www/html/plugins/switchbotcloud/core/php/switchbotcloud.php on line 587
C’est peut être autre chose dans le code à modifier ?
Je sais pas si cela joue ici, cela devrait pour php, mais dans ta copie d’écran le case encadré n’est pas alligné sur ceux du dessus et dessous. Il y a de forte chance que la casse ne soit pas bonne.
J’ai refaire à l’identique niveau caractères et indentation, mais idem.
j’ai activé les logs en debug t çà m’affiche çà:
0000|[2025-06-26 14:50:15] DEBUG : ################################## AJAX #############################################
0001|[2025-06-26 14:50:15] DEBUG : lancement de la synchro des dispositifs : /usr/bin/python3 /var/www/html/plugins/switchbotcloud/core/ajax/../../resources/switchbotcloud//switchbotcloud.py --loglevel=debug --type=devices --callback=http://127.0.0.1:80/plugins/switchbotcloud/core/php/switchbotcloud.php --apikey=gKJb2f8tolJlK4bf7ndMxklz1DoAaG5Z04puqSzrf --token=87bca9ac89d9a61fd89e0edcbe7451db64051834a5eba27d0e14c4904f5692334697ad4ba7c6e --logpath=/var/www/html/plugins/switchbotcloud/core/ajax/../../../../log/switchbotcloud --secret=c01d64fef7050dedf32c608c9b51f24a
0002|[2025-06-26 14:50:15] DEBUG : Préparation commande API
0003|[2025-06-26 14:50:15] DEBUG : token: 87bca9ac89d9d0e14c4904f5692334697ad4ba7c6e
0004|[2025-06-26 14:50:15] DEBUG : secret: c01d644a
0005|[2025-06-26 14:50:15] DEBUG : _type = devices
0006|[2025-06-26 14:50:15] DEBUG : _commande =
0007|[2025-06-26 14:50:15] DEBUG : Préparation commande API synchro des dispositifs (dispositifs)
0008|[2025-06-26 14:50:15] DEBUG : Starting new HTTPS connection (1): api.switch-bot.com:443
0009|[2025-06-26 14:50:16] DEBUG : https://api.switch-bot.com:443 "GET /v1.1/devices HTTP/1.1" 200 416
0010|[2025-06-26 14:50:16] DEBUG : {'statusCode': 100, 'body': {'deviceList': [{'deviceId': 'B0E9FEBD4520', 'deviceName': 'Serrure Ultra 20', 'deviceType': 'Smart Lock Ultra', 'enableCloudService': True, 'hubDeviceId': 'DA2D183E1D41', 'group': False, 'master': True, 'lockDevicesIds': []}, {'deviceId': 'DA2D183E1D41', 'deviceName': 'Hub Mini 41', 'deviceType': 'Hub Mini2', 'enableCloudService': True, 'hubDeviceId': '000000000000'}], 'infraredRemoteList': []}, 'message': 'success'}
0011|[2025-06-26 14:50:16] DEBUG : Set info to jeedom
0012|[2025-06-26 14:50:16] DEBUG : {'statusCode': 100, 'body': {'deviceList': [{'deviceId': 'B0E9FEBD4520', 'deviceName': 'Serrure Ultra 20', 'deviceType': 'Smart Lock Ultra', 'enableCloudService': True, 'hubDeviceId': 'DA2D183E1D41', 'group': False, 'master': True, 'lockDevicesIds': []}, {'deviceId': 'DA2D183E1D41', 'deviceName': 'Hub Mini 41', 'deviceType': 'Hub Mini2', 'enableCloudService': True, 'hubDeviceId': '000000000000'}], 'infraredRemoteList': []}, 'message': 'success'}
0013|[2025-06-26 14:50:16] DEBUG : envoi à jeedom : {'action': 'setDevices', 'infos': '{"statusCode": 100, "body": {"deviceList": [{"deviceId": "B0E9FEBD4520", "deviceName": "Serrure Ultra 20", "deviceType": "Smart Lock Ultra", "enableCloudService": true, "hubDeviceId": "DA2D183E1D41", "group": false, "master": true, "lockDevicesIds": []}, {"deviceId": "DA2D183E1D41", "deviceName": "Hub Mini 41", "deviceType": "Hub Mini2", "enableCloudService": true, "hubDeviceId": "000000000000"}], "infraredRemoteList": []}, "message": "success"}'}
0014|[2025-06-26 14:50:16] DEBUG : Starting new HTTP connection (1): 127.0.0.1:80
0015|[2025-06-26 14:50:16] DEBUG : passage puis action (switchcoud.php) :setDevices
0016|[2025-06-26 14:50:16] DEBUG : passage puis action (switchcoud.php) :Array ( [action] => setDevices [infos] => {"statusCode": 100, "body": {"deviceList": [{"deviceId": "B0E9FEBD4520", "deviceName": "Serrure Ultra 20", "deviceType": "Smart Lock Ultra", "enableCloudService": true, "hubDeviceId": "DA2D183E1D41", "group": false, "master": true, "lockDevicesIds": []}, {"deviceId": "DA2D183E1D41", "deviceName": "Hub Mini 41", "deviceType": "Hub Mini2", "enableCloudService": true, "hubDeviceId": "000000000000"}], "infraredRemoteList": []}, "message": "success"} )
0017|[2025-06-26 14:50:16] DEBUG : Devices : stdClass Object ( [statusCode] => 100 [body] => stdClass Object ( [deviceList] => Array ( [0] => stdClass Object ( [deviceId] => B0E9FEBD4520 [deviceName] => Serrure Ultra 20 [deviceType] => Smart Lock Ultra [enableCloudService] => 1 [hubDeviceId] => DA2D183E1D41 [group] => [master] => 1 [lockDevicesIds] => Array ( ) ) [1] => stdClass Object ( [deviceId] => DA2D183E1D41 [deviceName] => Hub Mini 41 [deviceType] => Hub Mini2 [enableCloudService] => 1 [hubDeviceId] => 000000000000 ) ) [infraredRemoteList] => Array ( ) ) [message] => success )
0018|[2025-06-26 14:50:16] DEBUG : ****************************************** INTEGRATION EQUIPEMENT (Smart Lock Ultra)**********************************************
0019|[2025-06-26 14:50:16] DEBUG : device->enableCloudService (iscloud) : 1
0020|[2025-06-26 14:50:16] DEBUG : keylist de keypad :
0021|[2025-06-26 14:50:16] DEBUG : Device : Smart Lock Ultra
0022|[2025-06-26 14:50:16] DEBUG : mac : B0:E9:FE:BD:45:20
0023|[2025-06-26 14:50:16] DEBUG : iscloud : 1
0024|[2025-06-26 14:50:16] DEBUG : hubDeviceId : DA2D183E1D41
0025|[2025-06-26 14:50:16] DEBUG : lockDeviceId :
0026|[2025-06-26 14:50:16] DEBUG : master : 1
0027|[2025-06-26 14:50:16] DEBUG : http://127.0.0.1:80 "POST /plugins/switchbotcloud/core/php/switchbotcloud.php?apikey=gKJb2f8tolJlK4bf7ndQklz1DoAaG5Z04puqSzrf HTTP/1.1" 500 0
0028|[2025-06-26 14:50:16] DEBUG : Status Code : 500
0029|[2025-06-26 14:50:16] ERROR : Erreur requete vers jeedom, return code 500 - Internal Server Error
0030|[2025-06-26 14:50:16] ERROR : Error during update status set Devices
Avec des espaces pas des tabulations?
Je suis pas compétent pour la suite mais stp les logs pas sous forme de copie d’écran. Depuiy le temps que tu es sur lw forum, tu dois le savoir.
Copié collé du texte et coller dans un poste en utilisant le formatage:
Texte préformaté
Vérifié 3 fois.
c’est corrigé
Erreur 500. Est-ce que le log http.error donne quelque chose en lien avec le plugin?
Oui c’est ce que j’ai mis plus haut :
0115|[Thu Jun 26 14:50:16.058138 2025] [php:error] [pid 390390:tid 390390] [client 127.0.0.1:35132] PHP Fatal error: Uncaught TypeError: implode(): Argument #1 ($array) must be of type array, string given in /var/www/html/plugins/switchbotcloud/core/php/switchbotcloud.php:587\nStack trace:\n#0 /var/www/html/plugins/switchbotcloud/core/php/switchbotcloud.php(587): implode()\n#1 {main}\n thrown in /var/www/html/plugins/switchbotcloud/core/php/switchbotcloud.php on line 587
Normalement en php l’indentation est la uniquement pour faciliter la lecture, elle n’a pas d’impact sur le traitement du code en lui même.
Attention ce n’est pas la même chose avec tous les langages.
Tu peux donner le bout de code de la ligne 587?
Page santé jeedom aussi.
$eq->setConfiguration('curtainDevicesIds',implode(",",$device->curtainDevicesIds));
Un truc peut être bizarre c’est que je ne reçois pas de lockdeviceid:
0052|[2025-06-26 15:53:05] DEBUG : {'statusCode': 100, 'body': {'deviceList': [{'deviceId': 'B0E9FEBD4520', 'deviceName': 'Serrure Ultra 20', 'deviceType': 'Smart Lock Ultra', 'enableCloudService': True, 'hubDeviceId': 'DA2D183E1D41', 'group': False, 'master': True, 'lockDevicesIds': []}, {'deviceId': 'DA2D183E1D41', 'deviceName': 'Hub Mini 41', 'deviceType': 'Hub Mini2', 'enableCloudService': True, 'hubDeviceId': '000000000000'}], 'infraredRemoteList': []}, 'message': 'success'}
As-tu installé la version stable ou beta ?
perso j’ai mis en beta directe au vu des autres messages du forum.
php ne tient pas compte des espaces ou tabulation.
pour le lockdeviceid j’avais pareil.
par contre j’ai fait la même chose pour le hub mini2 copier celui du hub mini. mais ça m’as pas l’air utile.
Je suis en stable. Je pensais que depuis le temps que le plugin n’évolue plus, il était à jour.