Je ne crois pas que ce soit un problème avec CURL sinon les autres requêtes ne passeraient non plus.
De plus j’ai pris les examples exactement qui sont donnés sur les pages de l’API.
Je vais installer ton firmware pour voir.
Ca dépend car c’est un petit bordel entre la nouvelle api full json et les anciens endpoints dont on a besoin encore dont certains sont des http form, d’autre en urlencoding, etc… J’ai bien galéré à chaque fois à devoir verifiéer dans le code du fw comment c’était implementé.
Donc la V2 va officellement sortir d’ici quelques jours, bien!
Regardes mon p’tit code et dis moi si tu trouves des choses pas bien …
Merci tout plein!
Salut @Sattaz, je viens de tester ta modif ( /override max_current ) et ca marche très bien. Je ne sais pas ce qu’il s’est passé quand tu as testé, mais ca fonctionne
J’ai bien les bonnes donnees publiées, le pilot se met à jours, et le slider aussi coté client ( new ui ):
edit: je zieute vite fait ton code:
sauf erreur de ma part tu ne lis pas la réponse serveur sur tes publications. Un post /override doit te répondre {msg: « OK »} si le claim est bien passé. Ca peut valoir le coup de vérifier.
J’ai pas regardé encore comment tu récupères la valeur du slider pour la mettre à jours coté interface jeedom.
Chose à laquelle je me suis retrouvé confronté qui peux t’interesser en fonctiin de ce que tu veux faire: Si tu ne lis que la valeur charge_current du endpoint /override, tu es sûr de n’afficher que la commande manuelle qui a été émise soit par ton plugin, ou ailleurs en /override par ex depuis l’UI2.
Mais si un service autre a envoyé un claim avec une priorité supérieure ou juste qu’il n’y a pas d’override et un claim d’un autre service ( Divert par ex ), tu ne le verras pas depuis /override
Et si tu lis directement le endpoint /claims c’est un peu chiant à parser pour chopper celui qui est actif.
Tu as un endpoint non documenté qui s’appelle /claims/target
Il permet de savoir rapidement quel service controle quelle propriété. ex:
tu vois ici tout de suite ici que c’est le client 65548 ( Shaper) , qui controle « max_current », et le client 65537 ( Manual override) qui controle « charge_current »
Je récupère ces données pour afficher le petit tooltip sous le slider avec l’identifiant qui le controle.
aussi, plutot que de poll regulièrement les endpoint http pour topper les données, tu peux te connecter au websocket /ws , toutes les donnes du endpoint /status sont publiées dessus , et tu recois des infos claims_version target_version, override_version config_version à chaque modif d’un de ces endpoint. Ce qui te permet d’aller recuperer des données fresh au bon moment, sans avoir à poll régulièrement
@KipK , j’avais pas le temps ces derniers jours de travailler sur le plugin mais je vais m’y mettre.
Deja c’est tres etrange que ma borne ne reagisse pas comme chez toi …
Je vais essayer de mettre ton dernier firmware pour voir si c’est mieux. Dois-je prendre la V2 GUI Pre-Release depuis le site d’openEVSE?
Si oui, quel fichier? (gui-v2 ou wifi_gui) ?
OK, j’ai mis le dernier firmware. Belle ton interface au passage
Mais la j’ai un soucis:
RAPI ne fonctionne plus.
/override charge_current depuis la nouvelle API fonctionne
Je continue mes tests.
Edit:
Selon ta deuxieme remarque, tu dis que je ne lis pas si le claim/override est bien passe … en fait je recupere la reponse dans le log du plugin Jeedom, je vois bien un {msg: Created}
Mais que faire avec cela? si j’ai une erreur de communication alors err de CURL me le dit et je le log aussi.
Puis le refresh du slider en lisant pilot indique si la la valeur est bien passee.
C’est suffiant non?
Pour ta troisieme remarque, c’est la valeur de l’endoint /status pilot qui est recupere puis compare a la valeur du slider de Jeedom, si pas pareil alors le slider se met a la position de la valeur de pilot.
Bon ou pas ?
quatrieme point, j’ai pas bein compris le truc du /claims/target
A voir pour la suite …
dernier point qui m’interesse beaucoup c’est d’utiliser un websocket pour recuperer les valeurs en temps reel … mais je ne sais trop ou commencer avec ca.
Tu aurais un petit exemple php sous la main? (pas de dependance necessaire j’espere?)
mes remarques étaient plutot à titre informatif , j’ai pas eu le temps de bien regarder le plugin.
pour la 3eme oui tu peux faire comme ça, dans 90% des cas ca sear suffisant.
Sur la nouvelle UI j’ai utilisé justement le /claims/target , ce qui me permet d’afficher sous le slider quel service controle cette valeur et de pouvoir même supprimer certains ordres externes ( par ex un ordre depuis mqtt sur le charge_current , j’affiche une vignette mqtt sous le slider pour mentionner que c’"est lui qui definit le charge_current à l’instant t. Si je le supprime depuis l’ui, alors une nouvelle vignette apparait avec manual, qui correspond à l’ordre que j’aurais donné depuis l’UI avant celle de MQTT ( c’est juste un ex )
pour le dernier point, tu as l’exemple en javascript sur la nouvelle ui , pour du php, je sais pas trop, mais ca doit etre bien documenté.
Encore un truc:
Si je change la valeur du ‹ charge rate › depuis l’interface ou depuis l’endpoint /override charge_current, parfois sur l’interface la valeur de ‹ setpoint › change et parfois pas … idem quand je recupere l’endoint /status pilot
Non aucune erreur surle navigateur du PC.
Depuis mon iphone c’est pareil.
J’avais remarque ceci lors de mes premiers tests, j’ai fait un restart du firmware wifi et ca fonctionnait alors.
Puis c’est encore arrive par la suite. Je viens de redemarrer encore une fois et la ca fonctionne a nouveau.
T’es sur que c’est pas la connection wifi qui saute ? Regarde si les logs marchent correctement depuis l’ui ( /config/developpeur ), si le module esp decroche du wifi la console devrait freeze.
Edit: en rafraichissant l’interface, le pilot reste toujours sur l’ancienne valeur ?
alors le courant max se met apparement a la valeur du slider mais rien ne l’indique sur l’interface web.
rien non plus dans l’endoint /status pilot, tout rest pareil.
Donc si je regle a 10 amperes depuis cette commande RAPI je ne vois rien depuis l’interface mais aussi je ne peux plus depasser 10 amperes en essant d’ajuster depuis l’interface:
ah c’est normal oui, c’est justement pour ça qu’il faut éviter rapi.
L’api a été créee justement pour résoudre les soucis d’ordres venant de multiples sources différentes. Rapi ne peut etre utilisé que si un seul service controle l’evse en fait. Et maintenant c’est le module Wifi qui se charge de communiquer en RAPI avec le module, et normalement rien d’autre ne devrait s’en servir ( sauf pour debug )