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

    Trames corrompues MQTT

    Scheduled Pinned Locked Moved Denky D4
    72 Posts 8 Posters 5.3k 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.
    • L Offline
      labu73 @Charles
      last edited by

      @Charles

      Merci pour toutes ces réponses.

      Comment installer la version dans mon Denky?

      Quel outil pour transférer?

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

        @labu73
        voir ici, upgrade par l'interface WEB, en utilisant le fichier .bin indiqué au dessus

        L 1 Reply Last reply Reply Quote
        • L Offline
          labu73 @Charles
          last edited by

          @Charles

          Youpi, plus rien ne marche 🙂

          J'en conclus que ma ligne est excessivement parasitée et qu'il faut que je revoie le cablage. D'un autre côté, commment cela pouvait il fonctionner?

          Je pense que l'ancien Firmware ne voyait rien.

          00:00:00.003 HDW: ESP32-PICO-V3-02 (PSRAM)
          00:00:00.052 UFS: FlashFS mounted with 4396 kB free
          00:00:00.076 CFG: Loaded from File, Count 120
          00:00:00.086 QPC: Count 1
          00:00:00.240 BRY: Berry initialized, RAM used=4071 bytes
          00:00:00.314 CFG: Energy loaded from file
          00:00:00.315 NRG: Init driver 15
          00:00:00.325 Project tasmota - Tasmota Version 12.4.0.1(teleinfo)-2_0_7(2023-02-27T16:47:33)
          00:00:00.327 TIC: RX on GPIO8, baudrate 9600
          00:00:00.329 TIC: Raw mode enabled
          00:00:00.340 TIC: Sending only one frame over 14 
          00:00:01.201 WIF: Connecting to AP1 LoEtLo Channel 7 BSSId C0:06:C3:69:A2:B2 in mode 11n as Linky-5592...
          00:00:01.992 WIF: Connected
          00:00:02.251 HTP: Web server active on Linky-5592 with IP address 192.168.68.20
          09:49:30.260 MQT: Attempting connection...
          09:49:30.297 MQT: Connected
          09:49:30.301 MQT: tele/Linky/LWT = Online (retained)
          09:49:30.303 MQT: cmnd/Linky/POWER = 
          09:49:30.308 MQT: tele/Linky/INFO1 = {"Info1":{"Module":"Denky D4 (v1.1)","Version":"12.4.0.1(teleinfo)","FallbackTopic":"cmnd/DVES_D6D5D8_fb/","GroupTopic":"cmnd/tasmotas/"}}
          09:49:30.323 MQT: tele/Linky/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"Linky-5592","IPAddress":"192.168.68.20","IP6Global":"","IP6Local":"fe80::3283:98ff:fed6:d5d8"}}
          09:49:30.337 MQT: tele/Linky/INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":20}}
          09:49:30.350 MQT: stat/Linky/RESULT = {"POWER":"OFF"}
          09:49:30.355 MQT: stat/Linky/POWER = OFF
          09:49:32.492 LibTeleinfo::checkLine frame format error, total=1
          09:49:32.894 QPC: Reset
          09:49:33.902 MQT: tele/Linky/STATE = {"Time":"2023-02-28T09:49:33","Uptime":"0T00:00:07","UptimeSec":7,"Heap":168,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":45},"POWER":"OFF","Dimmer":0,"Color":"000000","HSBColor":"0,0,0","Channel":[0,0,0],"Scheme":0,"Width":1,"Fade":"OFF","Speed":1,"LedTable":"ON","Wifi":{"AP":1,"SSId":"LoEtLo","BSSId":"C0:06:C3:69:A2:B2","Channel":7,"Mode":"11n","RSSI":68,"Signal":-66,"LinkCount":1,"Downtime":"0T00:00:03"}}
          09:49:33.956 TIC: bad checksum for SMAXSN
          09:49:33.957 TIC: bad checksum for SMAXSN1
          09:49:33.957 TIC: bad checksum for SMAXSN2
          09:49:33.966 MQT: tele/Linky/SENSOR = {"Time":"2023-02-28T09:49:33","ENERGY":{"TotalStartTime":"2023-01-29T09:53:32","Total":1259.411,"Yesterday":27.862,"Today":15.406,"Period":[0,0,0],"Power":[237,0,0],"ApparentPower":[237,0,238],"ReactivePower":[0,0,238],"Factor":[1.00,0.00,0.00],"Voltage":[237,238,238],"Current":[1.000,0.000,1.000],"Load":1},"TIC":{"ADSC":"022276116693","VTIC":2,"NGTF":"TEMPO","LTARF":"HP  BLANC","EAST":1259411,"EASF01":918154,"EASF02":108799,"EASF03":106299,"EASF04":110144,"EASF05":8101,"EASF06":7914,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":1032554,"EASD02":226857,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":0,"IRMS3":1,"URMS1":237,"URMS2":238,"URMS3":238,"PREF":12,"PCOUP":12,"SINSTS":479,"SINSTS1":281,"SINSTS2":38,"SINSTS3":158}}
          09:49:35.442 LibTeleinfo::checkLine frame format error, total=2
          09:49:36.458 TIC: bad checksum for SMAXSN
          09:49:36.459 TIC: bad checksum for SMAXSN1
          09:49:36.460 TIC: bad checksum for SMAXSN2
          09:49:36.461 TIC: bad checksum for SMAXSN3
          09:49:36.472 TIC: bad checksum for SMAXSN-1
          09:49:36.473 TIC: bad checksum for SMAXSN1-1
          09:49:36.474 TIC: bad checksum for SMAXSN2-1
          09:49:36.485 TIC: bad checksum for SMAXSN3-1
          09:49:36.485 TIC: bad checksum for CCASN
          09:49:36.486 TIC: bad checksum for CCASN-1
          09:49:36.487 TIC: bad checksum for UMOY1
          09:49:36.498 TIC: bad checksum for UMOY2
          09:49:36.499 TIC: bad checksum for UMOY3
          09:49:36.500 TIC: bad checksum for FPM1
          09:49:37.615 LibTeleinfo::checkLine frame format error, total=3
          09:49:39.438 TIC: bad checksum for SMAXSN
          09:49:39.439 TIC: bad checksum for SMAXSN1
          09:49:39.440 TIC: bad checksum for SMAXSN2
          09:49:39.441 TIC: bad checksum for SMAXSN3
          09:49:39.452 TIC: bad checksum for SMAXSN-1
          09:49:39.453 TIC: bad checksum for SMAXSN1-1
          09:49:39.454 TIC: bad checksum for SMAXSN2-1
          09:49:39.465 TIC: bad checksum for SMAXSN3-1
          09:49:39.466 TIC: bad checksum for CCASN
          09:49:39.467 TIC: bad checksum for CCASN-1
          09:49:39.468 TIC: bad checksum for UMOY1
          09:49:39.479 TIC: bad checksum for UMOY2
          09:49:39.480 TIC: bad checksum for UMOY3
          09:49:39.482 TIC: bad checksum for FPM1
          09:49:40.094 LibTeleinfo::checkLine frame format error, total=4
          
          CharlesC 1 Reply Last reply Reply Quote
          • CharlesC Offline
            Charles @labu73
            last edited by

            @labu73 j'ai fait un fix vite fait y'a peut être des soucis, tu peux taper dans la console la commande
            EnergyConfing Stats 1 et mettre une copie de l'écran d'accueil après ?

            L 1 Reply Last reply Reply Quote
            • L Offline
              labu73 @Charles
              last edited by

              @Charles

              Il passe une trame de temps en temps, ce qui met à jour mon HA.

              Sinon, voici l'écran et les états depuis 2h

              61e31642-0c68-4fb4-8f30-345b7b8b1e91-image.png

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

                @labu73 yes tu as raison je viens de tester chez moi en mode standard j'ai le meme soucis, je vais regarder ça

                L 1 Reply Last reply Reply Quote
                • L Offline
                  labu73 @Charles
                  last edited by

                  @Charles

                  Merci d'avance, j'aime être le beta testeur moi qui passe mon temps à me faire debugger mes programmes automatismes et robotique industrielle.

                  Bon courage,

                  Laurent

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

                    @labu73

                    Tout est rentré dans l'ordre avec cette PR le temps que ce soit mergé et build dans tasmota-special voici le FW à flasher (ESP32 seulement)

                    L 1 Reply Last reply Reply Quote
                    • L Offline
                      labu73 @Charles
                      last edited by

                      @Charles
                      👏 👏 👏
                      Tout est rentré dans l'ordre, merci.

                      1 Reply Last reply Reply Quote
                      • N Offline
                        NPO
                        last edited by Charles

                        Bonjour à tous 🙂

                        Je rencontre également des problèmes de checksum récurrents bien que j'ai déplacé mon module au plus prés du compteur

                        12:13:21.043 TIC: bad checksum for FPM2
                        12:13:21.046 TIC: bad checksum for SMAXSN
                        12:13:21.048 TIC: bad checksum for DPM2
                        12:13:21.050 TIC: bad checksum for SHNSTS
                        12:13:21.051 TIC: bad checksum for UMOY1
                        12:13:21.063 TIC: bad checksum for EASD02 01203695
                        12:13:21.065 TIC: bad checksum for SL@XSN
                        12:13:21.070 LibTeleinfo::checkLine Err checksum 0x49 != 0x2E (total errors=3788)
                        12:13:21.073 LibTeleinfo::checkLine Err checksum 0x52 != 0x27 (total errors=3789)
                        12:13:21.085 LibTeleinfo::checkLine Err checksum 0x23 != 0x33 (total errors=3790)
                        12:13:21.287 LibTeleinfo::checkLine Err checksum 0x33 != 0x34 (total errors=3791)
                        12:13:21.290 LibTeleinfo::checkLine Err checksum 0x24 != 0x25 (total errors=3792)
                        12:13:21.302 LibTeleinfo::checkLine Err checksum 0x39 != 0x3A (total errors=3793)
                        12:13:21.304 LibTeleinfo::checkLine Err checksum 0x41 != 0x42 (total errors=3794)
                        12:13:21.316 LibTeleinfo::checkLine frame format error, total=879
                        12:13:21.318 LibTeleinfo::checkLine Err checksum 0x2D != 0x3F (total errors=3795)
                        12:13:21.331 LibTeleinfo::checkLine Err checksum 0x39 != 0x3B (total errors=3796)
                        12:13:21.333 LibTeleinfo::checkLine Err checksum 0x2C != 0x3D (total errors=3797)
                        12:13:21.346 LibTeleinfo::checkLine Err checksum 0x2C != 0x29 (total errors=3798)
                        

                        je viens d'essayer le firmware mais impossible de flasher car erreur suivante "Invalid file signature"

                        Merci pour votre aide !!!

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

                          @NPO le build est maintenant dispo ici pour toutes les plateformes.

                          tu es bien en ESP32 et tu essaies de flasher via l'interface WEB ?

                          N 2 Replies Last reply Reply Quote
                          • N Offline
                            NPO @Charles
                            last edited by

                            @Charles c'est bien une ESP32 😉

                            Par ailleurs j'ai téléchargé le fichier "tasmota32c3-teleinfo.bin" et j'ai une erreur "Upload failed. Enable logging 3" et j'ai tenté avec "tasmota32-teleinfo.factory.bin" et j'ai ""Invalid file signature" en erreur ...

                            1 Reply Last reply Reply Quote
                            • N Offline
                              NPO @Charles
                              last edited by

                              @Charles complément ...
                              c'est bien une ESP32 et j'ai tenté la mise a jour par la web UI ... (c'est mieux quand on lis les questions jusqu'au bout !)
                              Finalement j'ai flashé "en dur" et ça a fonctionné mais j'ai toujours des erreurs de checksum ...
                              Y'a t'il un lien avec le fait que les trames MQTT ne sont pas formatées en JSON ?
                              je m'explique la première trame reçue par le broker est bien en JSON mais pas les suivantes ...

                              Merci

                              1 Reply Last reply Reply Quote
                              • L Offline
                                labu73
                                last edited by

                                Vu que je suis en Tempo triphasé, mon compteur cause beaucoup mais avec un bon format json

                                16:20:51.039 MQT: tele/Linky/SENSOR = {"TIC":{"ADSC":"022276116693","VTIC":2,"NGTF":"TEMPO","LTARF":"HP  ROUGE","EAST":1291834,"EASF01":918154,"EASF02":108799,"EASF03":121563,"EASF04":122694,"EASF05":8101,"EASF06":12523,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":1047818,"EASD02":244016,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":1,"IRMS3":1,"URMS1":241,"URMS2":241,"URMS3":241,"PREF":12,"PCOUP":12,"SINSTS":518,"SINSTS1":228,"SINSTS2":125,"SINSTS3":162,"SMAXSN":7010,"SMAXSN1":2560,"SMAXSN2":2080,"SMAXSN3":2360,"SMAXSN-1":7010,"SMAXSN1-1":2830,"SMAXSN2-1":2100,"SMAXSN3-1":2330,"CCASN":390,"CCASN-1":504,"UMOY1":240,"UMOY2":241,"UMOY3":239,"STGE":"833A5401","DPM2":0,"FPM2":0,"PRM":2147483647,"RELAIS":0,"NTARF":6,"NJOURF":0,"NJOURF+1":0}}
                                

                                J'ai encore des trames bizarres sur la fin mais il semble que cela reste un json correct voir le tag 30300113310000 en fin de trame après quelques temps

                                a61b7d0d-583c-4bae-a8a4-e8c6d4cf1a5b-image.png

                                16:12:47.687 MQT: tele/Linky/SENSOR = {"TIC":{"ADSC":"022276116693","VTIC":2,"NGTF":"TEMPO","LTARF":"HP  ROUGE","EAST":1291776,"EASF01":918154,"EASF02":108799,"EASF03":121563,"EASF04":122694,"EASF05":8101,"EASF06":12465,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":1047818,"EASD02":243958,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":1,"IRMS3":1,"URMS1":240,"URMS2":242,"URMS3":240,"PREF":12,"PCOUP":12,"SINSTS":504,"SINSTS1":205,"SINSTS2":137,"SINSTS3":161,"SMAXSN":7010,"SMAXSN1":2560,"SMAXSN2":2080,"SMAXSN3":2360,"SMAXSN-1":7010,"SMAXSN1-1":2830,"SMAXSN2-1":2100,"SMAXSN3-1":2330,"CCASN":390,"CCASN-1":504,"UMOY1":239,"UMOY2":240,"UMOY3":239,"STGE":"833A5401","DPM2":0,"FPM2":0,"PRM":2147483647,"RELAIS":0,"NTARF":6,"NJOURF":0,"NJOURF+1":0,"30301131000":237}}
                                

                                Je continue de surveiller cela, mais pour le moment je récupère des trames cohérentes.

                                MErci

                                N 1 Reply Last reply Reply Quote
                                • N Offline
                                  NPO @labu73
                                  last edited by Charles

                                  @labu73 Aucune amélioration de mon coté ... il me semble que @Charles a évoqué un probleme sur les trames standard ...

                                  68a9ef08-a61e-4689-9e89-ba0e9385ed40-image.png Capture d’écran 2023-03-01 à 18.25.53

                                  Et en sortie mes trames ne sont toujours pas correctement formatées en JSON

                                  {
                                    "Time": "2023-03-01T18:28:15",
                                    "ENERGY": {
                                      "TotalStartTime": "2023-03-01T18:17:53",
                                      "Total": 14538.407,
                                      "Yesterday": 0,
                                      "Today": 0,
                                      "Period": 0,
                                      "Power": 153,
                                      "ApparentPower": 237,
                                      "ReactivePower": 181,
                                      "Factor": 0.65,
                                      "Voltage": 237,
                                      "Current": 1,
                                      "Load": 3
                                    },
                                    "TIC": {
                                      "VTIC": 2,
                                      "NGTF": "TEMPO",
                                      "EAST": 14538407,
                                      "EASF01": 12734205,
                                      "EASF02": 1714927,
                                      "EASF04": 38258,
                                      "EASF05": 15195,
                                      "EASF07": 0,
                                      "EASF09": 0,
                                      "EASF10": 0,
                                      "EASD04": 2593655,
                                      "IRMS1": 1,
                                      "URMS1": 237,
                                      "PREF": 6,
                                      "PCOUP": 6,
                                      "SMAXSN": 287,
                                      "PRM": 2147483647,
                                      "RELAIS": 0,
                                      "NTARF": 6,
                                      "NJOURF": 0,
                                      "NJOURF+1": 0,
                                      "LTARF": "HP  ROUGE",
                                      "EASF03": 29956,
                                      "EASF06": 5866,
                                      "EASD01": 7258333,
                                      "EASD02": 3482724,
                                      "EASD03": 1203695,
                                      "SINSTS": 153,
                                      "SMAXSN-1": 2494,
                                      "UMOY1": 231,
                                      "DPM2": 0,
                                      "P@OINTE": "000040 5 06004006 2"004005 NONUTILE NONUTILE NONUTILE NONETILE NONUTILE NONUTILE NONUTILE NONUTILE",
                                      "ADSC": "031662280532",
                                      "STGE": "83DAD401",
                                      "FPM2": 0,
                                      "EASF08": 0,
                                      "CINSTS": 156
                                    }
                                  }
                                  

                                  J'ai vu qu'une API HTTP existe depuis l'interface web mais je ne trouve pas comment elle fonctionne ... tu aurais une idée ?

                                  1 Reply Last reply Reply Quote
                                  • L Offline
                                    labu73
                                    last edited by

                                    En tout cas la situation s'est améliorée, mais j'ai effectivement ce matin une nouvelle trame corrompue.

                                    Vu que les tags semblent se créer tout seuls à leur découverte, je suppose que mon dernier tag est lié à un problème de mauvaise réception ou de débordement de buffer.

                                    Ne faudrait il pas avoir un dictionnaire des tags valides afin de rejeter les mauvais?

                                    Une autre hypothèse vérifer que les tags reçus sont dans la table ASCII?

                                    07:17:45.160 MQT: tele/Linky/SENSOR = {"TIC":{"ADSC":"022276116693","VTIC":2,"NGTF":"TEMPO","LTARF":"HP  ROUGE","EAST":1316060,"EASF01":918154,"EASF02":108799,"EASF03":121563,"EASF04":122694,"EASF05":28448,"EASF06":16402,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":1068165,"EASD02":247895,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":0,"IRMS3":1,"URMS1":237,"URMS2":238,"URMS3":238,"PREF":12,"PCOUP":12,"SINSTS":408,"SINSTS1":207,"SINSTS2":42,"SINSTS3":159,"SMAXSN":7100,"SMAXSN1":2610,"SMAXSN2":2140,"SMAXSN3":2350,"SMAXSN-1":7010,"SMAXSN1-1":2560,"SMAXSN2-1":2080,"SMAXSN3-1":2490,"CCASN":578,"CCASN-1":316,"UMOY1":236,"UMOY2":238,"UMOY3":237,"STGE":"833A5401","DPM2":0,"FPM2":0,"PRM":2147483647,"RELAIS":0,"NTARF":6,"NJOURF":0,"NJOURF+1":0,"SINSS":605}}
                                    

                                    Bonne Journée à tous

                                    N CharlesC 2 Replies Last reply Reply Quote
                                    • N Offline
                                      NPO @labu73
                                      last edited by

                                      @labu73 merci pour ta réponse !
                                      En consultant le forum, je me rend compte que je rencontre exactement le même problème que @Samquad "Tasmota sensor 12.1.1.2 avec linky mode Standard --> Libteleinfo checkline error checksum..." et qui malheureusement n'a pas trouvé de solution et/ou explication au dysfonctionnement ...

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

                                        @labu73

                                        Ne faudrait il pas avoir un dictionnaire des tags valides afin de rejeter les mauvais?

                                        Oui ce serait une solution mais il faut tous les lister et les rentrer. Mais normalement les TAG sont vérifiés avec la checksum avant sauvegarde en mémoire et sont vérifiés à nouveau lors de l'envoi (le fix de ce W.E.) donc je ne comprends pas comment c'est possible ou par le plus grand des malheurs parfois une mauvaise étiquette à une bonne cheksum.

                                        Une autre hypothèse vérifier que les tags reçus sont dans la table ASCII?

                                        Correct ça peut être une vérification supplémentaire, il faudrait que j'ajoute lors de l'envoi un scan des mauvaises (selon ces 2 principes) pour les supprimer de la liste aussi mais j'ai pas eu le temps ce W.E.

                                        Une autre idée serait de tester sur la même installation le Firmware de @Nicolas-Bernaerts aussi pour voir comment ça se comporte.

                                        Pour info depuis que j'ai les stats j'ai aussi quelques erreurs parfois, regarde en 48H

                                        dab72ea1-adc5-4b1b-80e0-d5773b0d7a15-image.png

                                        671 erreurs de checksum sachant qu'il y a 256 possibilité de checksum différentes et que seul 64 sont valides (de mémoire) il y a effectivement possibilité de tomber sur une valide de temps en temps ce qui pourrait expliquer simplement sans forcement de bug dans le code, intéressant

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

                                          @NPO il y a 2 soucis en fait, parfois les Linky sont plus ou moins sensibles et certains nécessitent une correction de résistance sur la carte (les prochains batch ont un potentiomètre pour pallier directement)

                                          Tu peux vérifier aussi avec les soft de test de la libteleinfo pour voir si tes trames sont cohérente dans un 1er temps.

                                          CharlesC N 3 Replies Last reply Reply Quote
                                          • CharlesC Offline
                                            Charles @Charles
                                            last edited by Charles

                                            @labu73

                                            Pour info j'ai encore ajouté des checks supplémentaires de caractères valides avec cette PR tu me diras si c'est mieux ?

                                            version ESP32 en attendant le prochain autobuild firmware.bin.zip

                                            F L 2 Replies Last reply Reply Quote
                                            • First post
                                              Last post

                                            2

                                            Online

                                            5.7k

                                            Users

                                            534

                                            Topics

                                            5.0k

                                            Posts

                                            Top Topics

                                            • Bonjour Nicolas
                                              Nicolas BernaertsN
                                              Nicolas Bernaerts
                                              0
                                              19
                                              312

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

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

                                            • CC1101 mini shield pour raspberry
                                              CharlesC
                                              Charles
                                              0
                                              5
                                              151

                                            • CC1101
                                              CharlesC
                                              Charles
                                              0
                                              2
                                              66

                                            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