Skip to content
  • Blog
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Community Forum

  1. Home
  2. Categories
  3. Remora
  4. Problème API

Problème API

Scheduled Pinned Locked Moved Remora
39 Posts 7 Posters 61.0k Views 2 Watching
  • 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
    Y Offline
    Yoan
    wrote on last edited by
    #1

    Bonjour,
    Je viens d'assembler la bête. Tout semble OK .
    Sauf que les appels HTTP me renvoient ceci :

    File Not Found
    
    URI: /fp
    Method: GET
    Arguments: 0
    

    Voici ce que j'ai dans ma console

    HTTP server started
    Compile avec les fonctions : BOARD V1.3 MCP23017
    Initializing MCP23017...Searching...Setup...OK!
    Relais=ON   relais=1
    Relais=OFF
    relais=0
    setfp=1H
    setfp_interne : fp=1 ; cOrdre=H
    etatFP=H
    setfp=2H
    setfp_interne : fp=2 ; cOrdre=H
    etatFP=HH
    setfp=3H
    setfp_interne : fp=3 ; cOrdre=H
    etatFP=HHH
    setfp=4H
    setfp_interne : fp=4 ; cOrdre=H
    etatFP=HHHH
    setfp=5H
    setfp_interne : fp=5 ; cOrdre=H
    etatFP=HHHHH
    setfp=6H
    setfp_interne : fp=6 ; cOrdre=H
    etatFP=HHHHHH
    setfp=7H
    setfp_interne : fp=7 ; cOrdre=H
    etatFP=HHHHHHH
    Starting main loop
    URI[3]='/fp'
    
    

    Merci pour votre aide !

    1 Reply Last reply
    • CharlesC Offline
      CharlesC Offline
      Charles
      wrote on last edited by
      #2

      @Yoan
      Ce sont toutes les requêtes ou juste celle-ci (/fp) ?

      Peux-tu m'indiquer ta requête complète coté browser (ou client) stp ?

      1 Reply Last reply
      • Y Offline
        Y Offline
        Yoan
        wrote on last edited by
        #3

        Merci pour ta réponse.
        Voici ma requête : http://192.168.0.21/fp
        J'ai une réponse similaire pour tous mes appels

        Voici le début de l'initialisation

        {========== SDK Saved parameters StartMode: STA
        PHY mode: N
        Channel: 1
        AP id: 0
        Status: 1
        Auto connect: 1
        SSID (14): freebox
        Passphrase (14): XXXXXXXXXXXXX
        BSSID set: 0
        ========== SDK Saved parameters End
        Connection au Wifi : freebox avec la clC) 'XXXXXXXXXXXXX'...connecte!
        IP address   : 192.168.0.21
        MAC address  : 5C:CF:7F:0A:18:E3
        HTTP server started
        Compile avec les fonctions : BOARD V1.3 MCP23017 TELEINFO
        Initializing MCP23017...Searching...Setup...OK!
        
        
        1 Reply Last reply
        • A Offline
          A Offline
          alban
          wrote on last edited by
          #4

          Bonsoir,

          J'apporte mon témoignage.
          En fait, toutes les requêtes fonctionnent sauf celle-ci :

          http://IP_REMORA/fp
          

          Dans le browser, cela télécharge un fichier "fp" de type json, vide.
          En ligne de commande avec curl, cela ne renvoit rien, pas même une erreur.

          1 Reply Last reply
          • Dany21000D Offline
            Dany21000D Offline
            Dany21000
            wrote on last edited by Dany21000
            #5

            Les requêtes pour configurer une valeur (avec un paramètre en get derrière le /) ne posent pas de soucis par contre celle de lecture d'information/status si :

            http://192.168.50.251/relais
            File Not Found
            URI: /relais/
            Method: GET
            Arguments: 0

            http://192.168.50.251/delestage
            File Not Found
            URI: /delestage
            Method: GET
            Arguments: 0

            http://192.168.50.251/fp1
            File Not Found
            URI: /fp1
            Method: GET
            Arguments: 0

            1 Reply Last reply
            • CharlesC Offline
              CharlesC Offline
              Charles
              wrote on last edited by
              #6

              Ah yes, j'ai du faire une modif entre temps, la version de mon remora fonctionnait, mais avec un upload du repo, j'avais le même bug que vous.

              C'est corrigé, repo à jour

              1 Reply Last reply
              • Y Offline
                Y Offline
                Yoan
                wrote on last edited by
                #7

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

                Dany21000D 1 Reply Last reply
                • Y Yoan

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

                  Dany21000D Offline
                  Dany21000D Offline
                  Dany21000
                  wrote on last edited by
                  #8

                  @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
                  • Dany21000D Offline
                    Dany21000D Offline
                    Dany21000
                    wrote on last edited by
                    #9

                    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
                    • CharlesC Offline
                      CharlesC Offline
                      Charles
                      wrote on last edited by Charles
                      #10

                      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
                      • Y Offline
                        Y Offline
                        Yoan
                        wrote on last edited by
                        #11

                        Le fix fonctionne chez moi. Merci !

                        1 Reply Last reply
                        • Dany21000D Offline
                          Dany21000D Offline
                          Dany21000
                          wrote on last edited by Dany21000
                          #12

                          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
                          • Dany21000D Offline
                            Dany21000D Offline
                            Dany21000
                            wrote on last edited by Dany21000
                            #13

                            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
                            • A Offline
                              A Offline
                              alban
                              wrote on last edited by
                              #14

                              @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
                              • CharlesC Offline
                                CharlesC Offline
                                Charles
                                wrote on last edited by
                                #15

                                @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
                                • A Offline
                                  A Offline
                                  alban
                                  wrote on last edited by alban
                                  #16

                                  @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
                                  • CharlesC Offline
                                    CharlesC Offline
                                    Charles
                                    wrote on last edited by
                                    #17

                                    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
                                    • A Offline
                                      A Offline
                                      alban
                                      wrote on last edited by alban
                                      #18

                                      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
                                      • B Offline
                                        B Offline
                                        bsheep
                                        wrote on last edited by
                                        #19

                                        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
                                        • CharlesC Offline
                                          CharlesC Offline
                                          Charles
                                          wrote on last edited by
                                          #20

                                          @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

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          3

                                          Online

                                          5.8k

                                          Users

                                          565

                                          Topics

                                          5.3k

                                          Posts

                                          Top Topics

                                          Popular Tags

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

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Blog
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups