Community Forum
    • Blog
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Problème API

    Scheduled Pinned Locked Moved Remora
    39 Posts 7 Posters 55.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Y Offline
      Yoan
      last edited by

      Merci ! ça me rassure. Je teste ça ce soir.

      Dany21000D 1 Reply Last reply Reply Quote
      • Dany21000D Offline
        Dany21000 @Yoan
        last edited by

        @Yoan said:

        Merci ! ça me rassure. Je teste ça ce soir.

        Idem pour moi,
        Je profitais de cette matinée calme pour regarder le problème au niveau du code et je suis tombé aussi sur la fonction que tu as modifié.
        Beau code, bien documenté.

        1 Reply Last reply Reply Quote
        • Dany21000D Offline
          Dany21000
          last edited by

          Je viens de flasher cette nouvelle mouture 1.3.0 du logiciel.

          Les requîtes de lecture retournent toujours des 404. En debug via putty ... rien de mechant :

          URI[7]='/relais'
          URI[3]='/fp'
          URI[10]='/delestage'
          URI[7]='/relais'
          URI[3]='/fp2'
          URI[10]='/delestage'
          URI[7]='/relais'
          URI[3]='/fp1'
          URI[10]='/delestage'
          URI[7]='/relais'
          URI[3]='/fp4'
          URI[10]='/delestage'
          URI[7]='/relais'
          URI[3]='/fp'
          URI[10]='/delestage'

          Mais le résultat est identique.
          J'ai eu peut d'avoir remis l'ancien version du software, suppression intégrale du dossier remora_soft et téléchargement sur github du zip complet... mais problème toujours présent.

          1 Reply Last reply Reply Quote
          • CharlesC Offline
            Charles
            last edited by Charles

            t'es sur que t'as pas 2 fois le / dans ta requête ? j'ai le même soucis si je tapes
            0_1450373304256_upload-6b9a8c64-3f7f-440c-aa15-cca687fe6ae7
            URI[3]='/fp'

            alors qu'avec un seul (le nombre entre [] de uri correspond aux nombre de caractères de la requête)
            0_1450373345421_upload-39fd3a07-f949-49de-bb01-4911ff28cd51
            URI[2]='fp'
            C'est pas normal que t'ais un / devant

            1 Reply Last reply Reply Quote
            • Y Offline
              Yoan
              last edited by

              Le fix fonctionne chez moi. Merci !

              1 Reply Last reply Reply Quote
              • Dany21000D Offline
                Dany21000
                last edited by Dany21000

                C'est bien ce que j'ai vu dans le code. Il compte les caractères.

                URL dans le navigateur : http://192.168.50.251/relais

                File Not Found
                URI: /relais
                Method: GET
                Arguments: 0
                
                root@openmediavault:~# wget http://192.168.50.251/relais
                --2015-12-17 19:39:59--  http://192.168.50.251/relais
                Connexion vers 192.168.50.251:80...connecté.
                requête HTTP transmise, en attente de la réponse...404 Not Found
                2015-12-17 19:39:59 ERREUR 404: Not Found.
                
                

                Mode parano actif :
                Pour être bien certain, j'ai un second PC sous le coude, j'ai installé l'IDE, les drivers et récupérer depuis github les "nouvelles" sources.
                Reprogrammation du node ... aucun problèmes mais même résultat.

                J'ai un second node, qui n'aura pas accès au reste de la carte du remora mais qui aura l'accès au réseau wifi, résultat identique.

                1 Reply Last reply Reply Quote
                • Dany21000D Offline
                  Dany21000
                  last edited by Dany21000

                  Je crois avoir compris.
                  Voici les modifications que je fais sur le code :
                  remora.h :
                  -les identiifiants infrastructure Wifi
                  -L'identifiant Wifi hotspot
                  -Je désactive le support du téléinfo

                  Fichier remora_soft.ino
                  -Modification de la fonction WifiHandleConn pour disposer d'une IP statique

                  int WifiHandleConn(boolean setup = false) 
                  {
                    int ret = WiFi.status();
                    uint8_t timeout ;
                  
                    if (setup) {
                  
                      Serial.print(F("========== SDK Saved parameters Start")); 
                      WiFi.printDiag(Serial);
                      Serial.println(F("========== SDK Saved parameters End")); 
                  
                      IPAddress ip(192,168,50,252);
                      IPAddress gateway(192,168,50,254);
                      IPAddress subnet(255,255,255,0);
                      WiFi.config(ip, gateway, subnet);
                  
                      #if defined (DEFAULT_WIFI_SSID) && defined (DEFAULT_WIFI_PASS)
                        Serial.print(F("Connection au Wifi : ")); .......
                  
                  

                  Mes conclusions après tests avec mon second nodemcu "nu" :
                  Support téléinfo actif = pas de problème code http 200 et réponse en json
                  Support téléinfo non-actif = problème code http 404 sans réponse fiable

                  1 Reply Last reply Reply Quote
                  • A Offline
                    alban
                    last edited by

                    @Charles

                    Dans le retour d'info de la téléinfo, à quoi correspond les 2 derniers paramètres MOTDETAT et MAT ?

                    "_UPTIME":5251,"ADCO":xxxxxxxxxxx,"OPTARIF":"HC..","ISOUSC":60,"HCHC":58316761,"HCHP":78312403,"PTEC":"HP..","IINST":11,"IMAX":47,"PAPP":2450,"HHPHC":"D","MOTDETAT":400000,"MAT":400000
                    
                    

                    EDIT : après une bonne heure de fonctionnement j'ai ça :

                    {
                    "_UPTIME":14523,"ADCO":xxxxxxxxxxx,"OPTARIF":"HC..","ISOUSC":60,"HCHC":58316761,"HCHP":78316938,"IINST":2,"IMAX":47,"PAPP":480,"HHPHC":"D","MOTDETAT":400000,"MAT":400000,"IMAHHPHC":"D","PTEC":"HP..X","OF":"HC.."
                    }
                    

                    Les derniers élements semblent étranges.

                    EDIT 2 : Il y a un vrai souci. Le rendu n'est pas un json, et les données se mélangent au bout d'un moment.

                    1 Reply Last reply Reply Quote
                    • CharlesC Offline
                      Charles
                      last edited by

                      @alban,

                      Merci du retour, ah vrai dire je l'attendais en peu celle-ci, c'est un vilain bug présent aussi sur WifInfo (normal le code est copier/coller) je voulais voir il il était aussi présent sur rémora.
                      Le truc c'est que ce code fonctionne parfaitement avec un Particle et le problème se produit uniquement avec l'ESP8266. Il faut que j'arrive à le reproduire et le "choper" au moment ou il ajoute la mauvaise donnée. C'est dans ma top priority, je vais ajouter des contrôles supplémentaires pour éviter le soucis mais ça ne va pas m'expliquer pourquoi çà déconne.
                      En fait j'ajoute dans la liste des valeurs uniquement les étiquettes non présentes ou différentes, mais elles sont ajoutées uniquement si la checksum est correcte. donc je comprends pas comment on peu se retrouver avec des valeurs incorrectes
                      Si quelqu'un veux aller voir le code ici, peut-être que je suis passé a coté d'un truc simple. Mais ce code marche parfaitement avec le programme teleinfo.c et avec cette librairie sur un particle donc j'ai un gros doute. Peut être une mauvaise utilisation du SDK

                      1 Reply Last reply Reply Quote
                      • A Offline
                        alban
                        last edited by alban

                        @Charles ,
                        J'ai beau être développeur, je ne suis pas sûr de bien lire ton code.

                        Au niveau du checksum, celui-ce ne se fait peut-être pas à chaque appel. S'il n'est fait qu'au démarrage, sur le premier appel, et que le checksum est bon, alors d'autres variables peuvent faire leur apparition. C'est assez bizarre puisque ça rajoute des noms de variable fabriqués à partir des autres.

                        Cela dit, un contournement serait de balancer en variable un tableau des noms de variables que l'on attend. Ensuite ta fonction regarde si la variable qu'elle récupère est bien contenue dans le tableau des noms de variables attendues. Dans le cas présent, avec la version 1.3, on attend pour la téléfinfo : _UPTIME, ....etc ...MODETAT et rien d'autre.

                        1 Reply Last reply Reply Quote
                        • CharlesC Offline
                          Charles
                          last edited by

                          La checksum est vérifié systématiquement à l'entrée de la fonction valueAdd donc c'est le 1er check, si elle n'est pas bonne, on ne fait rien et on retourne NULL (pas de nouvelle valeur). Le problème se produit donc entre les 2 et c'est la ou j'ai des doutes sur la partie concernée (le malloc et les memcpy)

                          Pour contourner je vais la revérifier à la sortie , c'est à dire si la checksum n'est pas bonne je ne sors pas la valeur (même si elle est présente)

                          1 Reply Last reply Reply Quote
                          • A Offline
                            alban
                            last edited by alban

                            Tu sais, moi sorti de php, html, css, js et un peu de java, je suis bon à rien ... pour le moment 😃

                            le checksum est fait sur un name et une value. Tu aurais un exemple à décrire pour que je comprenne ?

                            Pour info, à la ligne 193 :

                            TI_Debug((char) cheksum);
                            

                            il manque un "c" à checksum

                            1 Reply Last reply Reply Quote
                            • B Offline
                              bsheep
                              last edited by

                              Un correctif rapide peut être de ne renseigner que des étiquettes valides (PAPP, IINST).
                              Bien évidemment, il faut connaitre toutes les possibilités (compteur monophasé, triphasé) etc...

                              1 Reply Last reply Reply Quote
                              • CharlesC Offline
                                Charles
                                last edited by

                                @bsheep
                                Yes c'est exact mais c'est exactement ce que je voulais éviter, mettre les étiquettes en dur dans le code. Mais comme j'ai publié la release candidate hier soir, je vais pouvoir me pencher sur le problème, si je récupère mon internet chez moi, la l'ADSL vient de tomber ça va pas être simple.

                                1 Reply Last reply Reply Quote
                                • A Offline
                                  alban
                                  last edited by

                                  @Charles,

                                  Je reviens sur ce sujet car après 24 heures de fonctionnement, en plus de la création de variables farfelues, maintenant les bonnes variables ont des valeurs complètement folles - en gros les valeurs sont des concaténations des autres éléments ...
                                  Comme dirait la princesse Leia :

                                  Au secours Obi-Wan Kenobi, vous êtes mon seul espoir.
                                  

                                  🙂
                                  Du coup, je reboote le nodemcu (en téléversant par OTA) et ça repart.

                                  1 Reply Last reply Reply Quote
                                  • CharlesC Offline
                                    Charles
                                    last edited by

                                    @alban
                                    Quel est la version du SDK dans les log série ?
                                    Je n'ai plus constaté le soucis sur WifInfo depuis que j'ai passé le CPU à 160HMz et avec le dernier repo git arduino/esp8266 qui compile avec le SDK 1.5.0 ce serait intéressant de voir si tu as le SDK 1.3.0 de ton coté.

                                    Pour info je viens de pousser une nouvelle version tu peux maintenant faire un reset depuis l'interface Web ou avec ipremora/reset

                                    1 Reply Last reply Reply Quote
                                    • A Offline
                                      alban
                                      last edited by alban

                                      @Charles,
                                      Sur tes conseils, je suis passé sur le dernier git arduino/esp8266.
                                      Pour le SDK je ne sais pas où trouver cette information.
                                      Par contre les compils et téléversements se font avec le CPU à 80 MHz.

                                      EDIT : j'ai vu pour le SDK : 1.50 ... par contre ça reboote sans cesse.
                                      EDIT 2 : j'ai recompilé avec le CPU à 160 MHz et le nodemcu reboote toutes les minutes ou toutes les 2 minutes

                                      1 Reply Last reply Reply Quote
                                      • A Offline
                                        alban
                                        last edited by alban

                                        @Charles,
                                        Je complète mon précédent post. En fait, en plus du reboot, il me crée toujours des variables farfelues ... actuellement DCO, MAT, SC, TEC.
                                        Je ne comprends pas.

                                        EDIT : je me demande si cela ne vient pas de la carte remora. Je m'explique. Lorsque Remora tournait avec le Core, pour moi tout allait bien. Cela dit, dans jeedom, j'avais des messages d'erreur comme si jeedom n'avait pas pu récupérer les données. A l'époque, je m'étais ça sur le compte de Spark en me disant qu'il pouvait y avoir sans doute des pertes de connexion avec leur serveur.

                                        Mais maintenant, je me dis que déjà le Remora devait booter déjà sans cesse. Du coup, as-tu une idée d'où cela pourrait provenir sur la carte (v1.2c de mémoire) ?

                                        1 Reply Last reply Reply Quote
                                        • CharlesC Offline
                                          Charles
                                          last edited by Charles

                                          Alban je fais des tests sur une 1.2 et visiblement j'arrive maintenant à de bons uptime (depuis ce matin là, 12H), tu peux avoir toutes les infos sur l'onglet système :
                                          d'ailleurs erreur, c'est une 1.2 compilé pour 1.3 mais comme j'ai pas branché les fils pilotes pour tester çà fonctionne
                                          0_1452218610394_uptime_remora.jpg

                                          1 Reply Last reply Reply Quote
                                          • A Offline
                                            alban
                                            last edited by

                                            Merci @Charles
                                            Donc je recompile avec l'option version version 1.3 et je reviens vers toi.
                                            Pour information comme mon chauffage est piloté par la vera pour le moment, j'attends que tout soit bien stable avec de brancher les fils pilotes.

                                            1 Reply Last reply Reply Quote
                                            • First post
                                              Last post

                                            2

                                            Online

                                            5.7k

                                            Users

                                            534

                                            Topics

                                            5.0k

                                            Posts

                                            Top Topics

                                            • Denky 4 - Domoticz - Triphasé -
                                              Nicolas BernaertsN
                                              Nicolas Bernaerts
                                              0
                                              7
                                              266

                                            • Denky D4 et Linky Standard TInfo Rx Non Configuré
                                              CharlesC
                                              Charles
                                              0
                                              5
                                              286

                                            Popular Tags

                                            teleinfo
                                            24 topics
                                            arduino
                                            19 topics
                                            remora
                                            16 topics
                                            esp8266
                                            10 topics
                                            arduipi
                                            10 topics
                                            wifinfo
                                            7 topics
                                            raspberry
                                            7 topics
                                            broadcast
                                            7 topics
                                            Copyright © 2022 Charles-Henri Hallard | Return to blog page | Powered by NodeBB