Perte wifi Ico ondilo mqtt via docker ou bluetooth via esp32

Bonsoir,

Je possède un ico ondilo pour prendre des mesures dans l’eau d’une piscine mais son wifi ne fonctionne plus mais je peux récupérer ses différentes mesures en bluetooth via l’application mobile manuellement.

Ce qui n’est pas pratique car s’il avait toujours sa connection wifi il se synchroniserait seul avec le serveur ico pour lequel une intégration existe dans HA.

Mon idée est de pouvoir récupérer ses mesures sans devoir passer l’appication mobile.

Je ne maitrise pas tout mais la mise en place d’un docker mqtt ne changerait pas la donne non ?

Est ce que sinon avec un esp en bluetooth on pourrait récupérer ses données ? Via ble scanner des propriétés peuvent être lues mais il faut les traduire en hexadecimal il me semble.

Merci par avance pour vos idées, solutions

Salut,
je ne connais pas du tout ton appareil, mais pour le wifi qui ne marche plus ça mériterait un contact avec le service client.
Pour le bluetooth, un docker mqtt ça n’a rien à voir. Mais si tu arrives vraiment à lire des choses juste avec une esp blutetooth, alors tu peux envoyer ces valeur par MQTT (ou l’Api ESPHome) à HA.

Mais encore il faut arriver à communiquer en bluetooth, quand tu dis qu’on arrive à lire des valeurs, tu às vu ça sur un site ou une vidéo de quelqu’un qui y arrive?
La docs expliquant la communication entre l’app du constructeur et l’appareil n’est pas forcément publique..

1 « J'aime »

Bonjour,
Effectivement, j’ai appelé le service client et il me propose de remplacer la pièce à mes frais. Je m’orientais sur d’autres pistes.

Pour le bluetooth, j’ai accès à des valeurs de l’appareil via ble scanner. Le service client m’avait donné la marche à suivre et on arrive à se connecter assez facilement.

Tu penses qu’en mettant un esp qui fera sorte de relais bluetooth lui même relié via HA je pourrais envoyer les données de l’appareil en mqtt pour après les retranscrire dans mosquitto ?

Alors, en théorie oui, mais il faudra gérer la communication Bluetooth manuellement.
Et les instructions données sur la page du support c’est pour lire l’ID de l’appareil.
Donc comment savoir quel code envoyer pour récupérer les valeurs des sondes, je ne sais pas si ils ont détaillé ça, généralement ce genre d’infos sur le protocole n’est pas public… a mois de tatonner…
Après convertir de l’Hexa en Decimal ce n’est pas compliqué.

Oui effectivement je voulais tenter pour essayer de les déchiffrer par la suite. Mais l’idée c’était déjà de voir si je pouvais le relier à HA dans un premier temps.
Là je l’ai rapproché de HA et dans la visualisation bluetooth de HA, HA voit l’appareil marqué en appareil inconnu c’est peut-être déjà un début. Mais comment l’appareiller à HA par la suite ?

Bonjour, je progresse j’arrive à lire des données avec ces paramètres :

sensor:  
  - platform: ble_client
    type: rssi
    ble_client_id: ico
    #update_interval: 180s
    name: "ico RSSI"
                                                                                                            
  - platform: ble_client
    type: characteristic
    ble_client_id: ico
    name: "ico_a"
    notify: True
    service_uuid: '00001801-0000-1000-8000-00805f9b34fb'
    characteristic_uuid: '00002a05-0000-1000-8000-00805f9b34fb'
  
  - platform: ble_client
    type: characteristic
    ble_client_id: ico
    name: "ico_b"
    service_uuid: '00001800-0000-1000-8000-00805f9b34fb'
    characteristic_uuid: '00002a00-0000-1000-8000-00805f9b34fb'


Il doit cependant avoir un problème de traduction des données que je ne maitrise pas, j’ai essayé avec ce code présenté dans la documentation :

  - platform: ble_client
    type: characteristic
    ble_client_id: ico
    name: "ico_b"
    service_uuid: '00001800-0000-1000-8000-00805f9b34fb'
    characteristic_uuid: '00002a00-0000-1000-8000-00805f9b34fb'
    lambda: |-
      return *((float*)(&x[0])); 
      
  - platform: ble_client
    type: characteristic
    ble_client_id: ico
    name: 'ico_c'
    service_uuid: '00001800-0000-1000-8000-00805f9b34fb'
    characteristic_uuid: '00002a00-0000-1000-8000-00805f9b34fb'  
    #update_interval: 180s
    #device_class: "temperature"
    lambda: |-
       return *((float*)(&x[0])); 


Mais j’ai une erreur pour lire une donnée

[12:05:26.657][W][ble_sensor:095]: Error reading char at handle 3, status=2

Du coup pour savoir comment transformer les données il faut que je demande la documentation non ?

Je vois qu’il y a d’autres adaptations par exemple