Plus de remontée des valeurs sur Ondilo ICO

Hello !
Depuis hier, je n’ai plus de remontée des valeurs de l’Ondilo ICO.
Cependant, sur l’application du produit, les dernières valeurs sont bien présentes et les remontées se font.

A tout hasard, je me suis ré-identifié (plusieurs fois), et il semble qu’en effet, il y a bien un soucis.
Les valeurs restent bien bloquées à hier soir.

Du coup, j’imagine un problème sur le plugin.

[2024-03-19 09:21:51][DEBUG] : url: https://interop.ondilo.com/api/customer/v1/pools/52402/lastmeasures
[2024-03-19 09:21:51][DEBUG] : headers: Array (     [0] => Accept: application/json     [1] => Accept-Charset: utf-8     [2] => Accept-Encoding: gzip, deflate     [3] => Authorization: Bearer b850fab08920e0cdc970c06e673a8d85b3e74c1d )
[2024-03-19 09:21:51][DEBUG] : data: Array (     [bearer] => XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX )
[2024-03-19 09:21:51][DEBUG] : lastMeasures: Array (     [0] => Array         (             [data_type] => temperature             [value] => 10.7             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )      [1] => Array         (             [data_type] => orp             [value] => 571             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )      [2] => Array         (             [data_type] => ph             [value] => 6.97             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )      [3] => Array         (             [data_type] => salt             [value] => 2885             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )      [4] => Array         (             [data_type] => battery             [value] => 62             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )      [5] => Array         (             [data_type] => rssi             [value] => 100             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )  )
[2024-03-19 09:21:51][DEBUG] : mesure: temperature=10.7
[2024-03-19 09:21:51][DEBUG] : mesure: orp=571
[2024-03-19 09:21:51][DEBUG] : mesure: ph=6.97
[2024-03-19 09:21:51][DEBUG] : mesure: salt=2885
[2024-03-19 09:21:51][DEBUG] : mesure: battery=62
[2024-03-19 09:21:51][DEBUG] : mesure: rssi=100
[2024-03-19 09:22:45][DEBUG] : url: https://interop.ondilo.com/oauth2/token
[2024-03-19 09:22:45][DEBUG] : headers: Array (     [0] => Content-Type: application/x-www-form-urlencoded )
[2024-03-19 09:22:45][DEBUG] : data: Array (     [code] => XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX     [grant_type] => authorization_code     [client_id] => customer_api     [redirect_uri] => http://192.168.1.115/plugins/ondilo/core/api/ondilo.php?action=autorize )
[2024-03-19 09:23:44][DEBUG] : return: <div class="eqLogic eqLogic-widget allowResize allowReorderCmd allowLayout " style="position: relative; width:230px; height:110px; " data-eqLogic_id="3034" data-eqLogic_uid="eqLogic3034__923122213__" data-version="dashboard" data-category="">   <span class="statusCmd"></span>   <span class="cmd refresh pull-right cursor" data-cmd_id="21064"> 		<i class="fas fa-sync"></i>   </span>   <center class="widget-name">     <a href="index.php?v=d&p=ondilo&m=ondilo&id=3034" style="#hideEqLogicName#">ICO <span class="object_name">Piscine</span></a>   </center>   <div class="center">        </div>   <div class="row row-overflow">     <div class="col-xs-4 center">10.7 °</div>     <div class="col-xs-4">Signal 100 %</div>     <div class="col-xs-4">Batterie 62 %</div>   </div>   <div class="row row-overflow">     <div class="col-xs-4"></div>     <div class="col-xs-4 center"><img src="plugins/ondilo/desktop/images/pool.png" width="100" title ="ICO" class="ui-sortable-handle"/></div>     <div class="col-xs-4"></div>   </div>   <div class="row row-overflow">     <div class="col-xs-4 center">Redox<br/>571 mV</div>     <div class="col-xs-4 center">pH<br/>6.97</div>     <div class="col-xs-4 center">Sel<br/>2885 mg/l</div>   </div>   <div class="row row-overflow">     <div class="col-xs-12 left">       <i class="fas fa-sync"></i> 18/03/2024 17:21:07     </div>   </div>  </div> <script type="text/javascript">     $('.eqLogic[data-eqLogic_uid=eqLogic3034__923122213__] .refresh').on('click', function () {       jeedom.cmd.execute({id: '21064'});     }); </script>
[2024-03-19 09:28:04][DEBUG] : url: https://interop.ondilo.com/oauth2/token
[2024-03-19 09:28:04][DEBUG] : headers: Array (     [0] => Content-Type: application/x-www-form-urlencoded )
[2024-03-19 09:28:04][DEBUG] : data: Array (     [code] =>      [grant_type] => authorization_code     [client_id] => customer_api     [redirect_uri] => /plugins/ondilo/core/api/ondilo.php?action=autorize )
[2024-03-19 09:30:08][DEBUG] : url: https://interop.ondilo.com/api/customer/v1/pools/52402/lastmeasures
[2024-03-19 09:30:08][DEBUG] : headers: Array (     [0] => Accept: application/json     [1] => Accept-Charset: utf-8     [2] => Accept-Encoding: gzip, deflate     [3] => Authorization: Bearer  )
[2024-03-19 09:30:08][DEBUG] : data: Array (     [bearer] =>  )
[2024-03-19 09:30:08][DEBUG] : lastMeasures: Array (     [error] => invalid_request     [error_description] => Malformed auth header )
[2024-03-19 09:30:21][DEBUG] : url: https://interop.ondilo.com/oauth2/token
[2024-03-19 09:30:21][DEBUG] : headers: Array (     [0] => Content-Type: application/x-www-form-urlencoded )
[2024-03-19 09:30:21][DEBUG] : data: Array (     [refresh_token] =>      [grant_type] => refresh_token     [client_id] => customer_api )
[2024-03-19 09:35:09][DEBUG] : url: https://interop.ondilo.com/oauth2/token
[2024-03-19 09:35:09][DEBUG] : headers: Array (     [0] => Content-Type: application/x-www-form-urlencoded )
[2024-03-19 09:35:09][DEBUG] : data: Array (     [refresh_token] =>      [grant_type] => refresh_token     [client_id] => customer_api )
[2024-03-19 09:35:23][DEBUG] : url: https://interop.ondilo.com/oauth2/token
[2024-03-19 09:35:23][DEBUG] : headers: Array (     [0] => Content-Type: application/x-www-form-urlencoded )
[2024-03-19 09:35:23][DEBUG] : data: Array (     [code] => XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX     [grant_type] => authorization_code     [client_id] => customer_api     [redirect_uri] => http://192.168.1.115/plugins/ondilo/core/api/ondilo.php?action=autorize )
[2024-03-19 09:37:03][DEBUG] : url: https://interop.ondilo.com/oauth2/token
[2024-03-19 09:37:03][DEBUG] : headers: Array (     [0] => Content-Type: application/x-www-form-urlencoded )
[2024-03-19 09:37:03][DEBUG] : data: Array (     [code] => XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX     [grant_type] => authorization_code     [client_id] => customer_api     [redirect_uri] => http://192.168.1.115/plugins/ondilo/core/api/ondilo.php?action=autorize )
[2024-03-19 09:37:39][DEBUG] : url: https://interop.ondilo.com/api/customer/v1/pools/52402/lastmeasures
[2024-03-19 09:37:39][DEBUG] : headers: Array (     [0] => Accept: application/json     [1] => Accept-Charset: utf-8     [2] => Accept-Encoding: gzip, deflate     [3] => Authorization: Bearer 4bbb5ce950fb9ea4b1ff80c9d445abf6d23ab3b8 )
[2024-03-19 09:37:39][DEBUG] : data: Array (     [bearer] => XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX     )
[2024-03-19 09:37:39][DEBUG] : lastMeasures: Array (     [0] => Array         (             [data_type] => temperature             [value] => 10.7             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )      [1] => Array         (             [data_type] => orp             [value] => 571             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )      [2] => Array         (             [data_type] => ph             [value] => 6.97             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )      [3] => Array         (             [data_type] => salt             [value] => 2885             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )      [4] => Array         (             [data_type] => battery             [value] => 62             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )      [5] => Array         (             [data_type] => rssi             [value] => 100             [value_time] => 2024-03-18T16:21:07+0000             [is_valid] => 1             [exclusion_reason] =>          )  )
[2024-03-19 09:37:39][DEBUG] : mesure: temperature=10.7
[2024-03-19 09:37:39][DEBUG] : mesure: orp=571
[2024-03-19 09:37:39][DEBUG] : mesure: ph=6.97
[2024-03-19 09:37:39][DEBUG] : mesure: salt=2885
[2024-03-19 09:37:39][DEBUG] : mesure: battery=62
[2024-03-19 09:37:39][DEBUG] : mesure: rssi=100

Merci de votre aide.

Bonne journée,

Fabrice

Le problème est toujours présent, mais j’ai pu déterminer que l’API d’Ondilo semblait en cause.
En effet, elle répond correctement, mais ne donne plus les dernières infos.

On voit avec Postman que l’API semble « bloquée » (value_time => 16h21 hier):

Leur propre application Android ne doit pas utiliser leur API, car elle donne bien les dernières infos :

1 « J'aime »

Leurs serveurs étaient en maintenance hier

1 « J'aime »

C’est ce qu’ils pensaient aussi : que leur maintenance était peut-être en cause.

Hélas, le problème est toujours présent. Que ce soit dans Jeedom ou via Postman, mes données sont toujours celles du 18/03 en fin d’après-midi, alors qu’elles sont à jour sur leur application Android…

Je suis en relation avec eux, ils sont dessus…

Avec Postman tout comme le plugin Jeedom, on voit que les dernières mesures (lastmeasures) remontent désormais… mais toutes à zéro.

{{url_prefix}}/pools/{{pool_id}}/lastmeasures

Désormais, si l’on demande les mesures une à une, elles sont cependant bonnes :

{{url_prefix}}/pools/{{pool_id}}/measures?type=temperature&period=day
{{url_prefix}}/pools/{{pool_id}}/measures?type=ph&period=day
{{url_prefix}}/pools/{{pool_id}}/measures?type=orp&period=day
{{url_prefix}}/pools/{{pool_id}}/measures?type=salt&period=day

Sauf tds qui renvoie « NULL » :

{{url_prefix}}/pools/{{pool_id}}/measures?type=tds&period=day

Donc, je ne sais pas ce qu’ils trafiquotent chez Ondilo, mais ils trafiquotent :wink:

Moi non plus je n’avais plus de remontées de valeurs. Aujourd’hui le wifi remonte à 0 alors que depuis l’appli c’est bon. Merci pour vos investigations. J’espère qu’Ondilo se bouge…!

Encore un changement, désormais :

{
    "error": {
        "message": "Cannot get pool latest measures"
    }
}

Les mesures une à une sont toujours possibles (le plugin Jeedom n’utilise pas cette technique), ça ils ne l’ont pas encore recassé.

Je pense qu’en effet, ils bricolent toujours !

Ils m’indiquent que ça fonctionne désormais.
Hélas, je ne reçois plus que (deux simples crochets sans plus aucune valeur) :

[]

Ils continuent de bricoler…

J’ai toujours les valeurs du 18 Mars à 17:45
sauf pour le Wifi et le sel du 21 mars à 2:30 avec des valeurs 0.

Je vois que tu as un peu les mêmes symptômes, ils ont bien fait une réinit de certains trucs la nuit dernière.
Je n’ai pas eu de nouvelle de leur part depuis ce début d’après-midi.

Bricolage en cours chez Ondilo :wink:

Désormais, toutes les infos sont à zéro ou NULL dans la fonction « lastmeasures » de l’API.
Même la date est HS.

Ondilo Bricole toujours…

Idem pour moi

Il y a des fois, les supports techniques, j’ai envie de les étriper…
J’ai eu beau leur dire que le problème était sur « lastMeasures » (fonction utilisée sur le plugin Jeedom), ils n’en ont pas tenu compte… malgré mes copies d’écran, mes relances…
J’ai essayé de garder mon calme en leur répondant, mais pas évident…
Voici le mail que j’ai reçu de leur part :

Bon, en fait, ils ont fait une modif sur la fonction lastmeasures.
Il faut désormais indiquer les mesures que l’on souhaite obtenir, il ne donne plus toutes les mesures par défaut.

{{url_prefix}}/pools/{{pool_id}}/lastmeasures?types[]=temperature&types[]=orp&types[]=ph&types[]=salt&types[]=tds&types[]=rssi&types[]=battery

Il faut donc essayer de contacter le dév de ce plugin pour qu’il le modifie.

J’ai pu le contacter sur LinkedIn, je vais lui donner l’info, mais si vous avez son mail…

Pour ceux qui maîtrisent, il est possible de modifier deux fichiers pour que cela refonctionne de manière optimale.
Pour ceux qui ne maîtrisent pas leur Jeedom ou qui ne peuvent y accéder via SSH, il est possible de le faire via l’interface de Jeedom directement :
Réglages → Système → Editeur de fichiers

image

Naviguer vers plugins → ondilo → core → class

Les deux fichiers à modifier sont là, il suffit de cliquer sur chacun d’entre eux puis de cliquer sur le crayon en haut :

image

PREMIER FICHIER

/var/www/html/plugins/ondilo/core/class/ondilo.api.class.php

Anciennement, il faut modifier cette ligne (c’est au début du fichier) :

private $lastmeasures    = '/api/customer/v1/pools/%d/lastmeasures;

par cette ligne :

private $lastmeasures    = '/api/customer/v1/pools/%d/lastmeasures?types[]=temperature&types[]=orp&types[]=ph&types[]=salt&types[]=tds&types[]=rssi&types[]=battery';

SECOND FICHIER
De plus, la date fournie par Ondilo est désormais au format GMT.
Il faut donc l’indiquer lors de la récupération.
Pour cela, il faut modifier le fichier :

/var/www/html/plugins/ondilo/core/class/ondilo.class.php

Anciennement, il faut modifier la ligne 452 :

               $lastSeen[] =  strtotime( $measure['value_time'] );

par cette ligne :

               $lastSeen[] =  strtotime( $measure['value_time'] . ' GMT' );

En effet, les remontées sont hs

Sauf si tu fais la modif que je donne :wink:

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.

bonjour tout le monde j’ai poussé en beta les modifications.
si vous pouviez être plusieurs a tester que je pousse en stable apres

3 « J'aime »