Récupération des informations de consommation d'eau sur portail fournisseur

Bonsoir à tous,

Pour info, une fois j’étais tombé sur ce site en essayant de récupérer les info Veolia sur Domoticz.

https://developers.api.eau.veolia.fr/get-started

Je ne sais pas si cela peut vous aider.

Bonne soirée

Je viens de tester.
Mon système:

La configuration AppDaemon:

init_commands: []
python_packages:
  - selenium
  - PyVirtualDisplay
system_packages:
  - py-urllib3
  - py3-colorama
  - xvfb
  - py3-pip
  - xorg-server-xephyr
  - chromium-chromedriver
  - chromium
  - py3-openssl
  - py3-pysocks
  - py3-wsproto
  - py3-sniffio
  - py3-async_generator
  - py3-sortedcontainers
  - py3-attrs
  - py3-outcome
  - py3-trio

La fin de la trace d’installation:

(100/102) Installing libxslt (1.1.35-r0)
(101/102) Installing chromium (102.0.5005.182-r0)
(102/102) Installing chromium-chromedriver (102.0.5005.182-r0)
Executing busybox-1.35.0-r17.trigger
Executing glib-2.72.1-r0.trigger
Executing shared-mime-info-2.2-r1.trigger
Executing gdk-pixbuf-2.42.8-r0.trigger
Executing gtk-update-icon-cache-2.24.33-r3.trigger
Executing fontconfig-2.14.0-r0.trigger
Executing mkfontscale-1.2.2-r0.trigger
OK: 419 MiB in 203 packages
OK: 419 MiB in 203 packages
(1/5) Installing py3-cparser (2.20-r2)
(2/5) Installing py3-cffi (1.15.0-r0)
(3/5) Installing py3-idna (3.3-r2)
(4/5) Installing py3-cryptography (3.4.8-r1)
(5/5) Installing py3-openssl (21.0.0-r1)
OK: 424 MiB in 208 packages
(1/1) Installing py3-pysocks (1.7.1-r3)
OK: 424 MiB in 209 packages
(1/2) Installing py3-h11 (0.13.0-r1)
(2/2) Installing py3-wsproto (1.1.0-r0)
OK: 425 MiB in 211 packages
(1/2) Installing py3-curio (1.5-r2)
(2/2) Installing py3-sniffio (1.2.0-r2)
OK: 425 MiB in 213 packages
(1/1) Installing py3-async_generator (1.10-r3)
OK: 425 MiB in 214 packages
(1/1) Installing py3-sortedcontainers (2.4.0-r1)
OK: 426 MiB in 215 packages
(1/1) Installing py3-attrs (21.4.0-r0)
OK: 426 MiB in 216 packages
(1/1) Installing py3-outcome (1.1.0-r3)
OK: 426 MiB in 217 packages
(1/1) Installing py3-trio (0.19.0-r1)
OK: 429 MiB in 218 packages
Looking in links: https://wheels.home-assistant.io/musllinux/
Collecting selenium
  Downloading selenium-4.6.0-py3-none-any.whl (5.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 7.6 MB/s eta 0:00:00
Requirement already satisfied: trio~=0.17 in /usr/lib/python3.10/site-packages (from selenium) (0.19.0)
Collecting trio-websocket~=0.9
  Downloading trio_websocket-0.9.2-py3-none-any.whl (16 kB)
Requirement already satisfied: certifi>=2021.10.8 in /usr/lib/python3.10/site-packages (from selenium) (2022.9.24)
Requirement already satisfied: urllib3[socks]~=1.26 in /usr/lib/python3.10/site-packages (from selenium) (1.26.12)
Requirement already satisfied: attrs>=19.2.0 in /usr/lib/python3.10/site-packages (from trio~=0.17->selenium) (22.1.0)
Requirement already satisfied: sortedcontainers in /usr/lib/python3.10/site-packages (from trio~=0.17->selenium) (2.4.0)
Requirement already satisfied: async_generator>=1.9 in /usr/lib/python3.10/site-packages (from trio~=0.17->selenium) (1.10)
Requirement already satisfied: idna in /usr/lib/python3.10/site-packages (from trio~=0.17->selenium) (3.4)
Requirement already satisfied: outcome in /usr/lib/python3.10/site-packages (from trio~=0.17->selenium) (1.1.0)
Requirement already satisfied: sniffio in /usr/lib/python3.10/site-packages (from trio~=0.17->selenium) (1.2.0)
Requirement already satisfied: wsproto>=0.14 in /usr/lib/python3.10/site-packages (from trio-websocket~=0.9->selenium) (1.1.0)
Requirement already satisfied: PySocks!=1.5.7,<2.0,>=1.5.6 in /usr/lib/python3.10/site-packages (from urllib3[socks]~=1.26->selenium) (1.7.1)
Requirement already satisfied: h11<1,>=0.9.0 in /usr/lib/python3.10/site-packages (from wsproto>=0.14->trio-websocket~=0.9->selenium) (0.13.0)
Installing collected packages: trio-websocket, selenium
Successfully installed selenium-4.6.0 trio-websocket-0.9.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
Looking in links: https://wheels.home-assistant.io/musllinux/
Collecting PyVirtualDisplay
  Downloading PyVirtualDisplay-3.0-py3-none-any.whl (15 kB)
Installing collected packages: PyVirtualDisplay
Successfully installed PyVirtualDisplay-3.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
cont-init: info: /etc/cont-init.d/appdaemon.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun appdaemon (no readiness notification)
s6-rc: info: service legacy-services successfully started
[21:45:13] INFO: Starting AppDaemon...
2022-11-08 21:45:29.058210 INFO AppDaemon: AppDaemon Version 4.2.1 starting
2022-11-08 21:45:29.059150 INFO AppDaemon: Python version is 3.10.5
2022-11-08 21:45:29.060209 INFO AppDaemon: Configuration read from: /config/appdaemon/appdaemon.yaml
2022-11-08 21:45:29.061253 INFO AppDaemon: Added log: AppDaemon
2022-11-08 21:45:29.062416 INFO AppDaemon: Added log: Error
2022-11-08 21:45:29.063707 INFO AppDaemon: Added log: Access
2022-11-08 21:45:29.064641 INFO AppDaemon: Added log: Diag
2022-11-08 21:45:29.729598 INFO AppDaemon: Loading Plugin HASS using class HassPlugin from module hassplugin
2022-11-08 21:45:30.491721 INFO HASS: HASS Plugin Initializing
2022-11-08 21:45:30.492747 INFO HASS: HASS Plugin initialization complete
2022-11-08 21:45:30.495441 INFO AppDaemon: Initializing HTTP
2022-11-08 21:45:30.497625 INFO AppDaemon: Using 'ws' for event stream
2022-11-08 21:45:30.520479 INFO AppDaemon: Starting API
2022-11-08 21:45:30.646352 INFO AppDaemon: Starting Admin Interface
2022-11-08 21:45:30.648332 INFO AppDaemon: Starting Dashboards
2022-11-08 21:45:30.725707 INFO HASS: Connected to Home Assistant 2022.11.1
2022-11-08 21:45:30.784968 INFO AppDaemon: App 'hello_world' added
2022-11-08 21:45:30.790179 INFO AppDaemon: Found 1 total apps
2022-11-08 21:45:30.793887 INFO AppDaemon: Starting Apps with 1 workers and 1 pins
2022-11-08 21:45:30.801651 INFO AppDaemon: Running on port 5050
2022-11-08 21:45:31.000490 INFO HASS: Evaluating startup conditions
2022-11-08 21:45:31.039718 INFO HASS: Startup condition met: hass state=RUNNING
2022-11-08 21:45:31.041366 INFO HASS: All startup conditions met
2022-11-08 21:45:31.118903 INFO AppDaemon: Got initial state from namespace default
2022-11-08 21:45:32.827272 INFO AppDaemon: Scheduler running in realtime
2022-11-08 21:45:32.837982 INFO AppDaemon: Adding /config/appdaemon/apps to module import path
2022-11-08 21:45:32.845298 INFO AppDaemon: Loading App Module: /config/appdaemon/apps/hello.py
2022-11-08 21:45:33.007093 INFO AppDaemon: Initializing app hello_world using class HelloWorld from module hello
2022-11-08 21:45:33.322386 INFO hello_world: Hello from AppDaemon
2022-11-08 21:45:33.326931 INFO hello_world: You are now ready to run Apps!
2022-11-08 21:45:33.332933 INFO AppDaemon: App initialization complete

Voir veolia-idf/.github at ha-app · mdeweerd/veolia-idf · GitHub .

Par ailleur j’ai aussi mis en place divers Dockerfile qui fonctionnent sous Windows, le plus petit étant apline - veolia-idf/dockerAlpineRun.BAT at ha-app · mdeweerd/veolia-idf · GitHub .

Salut,

je vais tenter de faire une synthèse de mes recherches sur l’API.
il y a un bien un plugin jeedom (payant) qui réussit à lire les infos depuis l’API veolia.
J’ai donc dépackagé l’APK android et dans le fichier bundle j’ai trouvé les fonctions qui échangent avec cet API. Ce fichier est minimisé donc je n’ai pas vraiment tout décrypté.

je sais que l’adresse pour les webservices est https://www.service.eau.veolia.fr/icl-ws/iclWebService
C’est du SOAP avec une couche sécurité géré par wsse Security.
De ce que j’ai compris du code j’ai effectué une requête POST sur l’adresse https://www.service.eau.veolia.fr/icl-ws/iclWebService avec le body suivant :

<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!-- xmlns:ch0', this.targetNamespace) -->
    <!-- 'xmlns:tns', this.targetNamespace -->
    <!-- 'xmlns:ch1', this.commonTypes -->
    <!-- 'xmlns:cmn', this.commonTypes -->
    <soap:Header>
        <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-aiehdbsf52">
                <wsse:Username>free@email.com</wsse:Username>
                <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
                <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">1dWl+HzD/sJsWzAcDHQX6Q==</wsse:Nonce>
                <wsse:Created>2022-11-18T13:48:00.000Z</wsse:Created>
            </wsse:UsernameToken>
        </wsse:Security>
    </soap:Header>
    <soap:Body>
    
    <ns2:getAuthentificationFront xmlns:ns2="http://ws.icl.veolia.com/">
        <cptEmail>free@email.com</cptEmail>
        <cptPwd>password</cptPwd>
    </ns2:getAuthentificationFront>
    
</soap:Body>
</soap:Envelope>

avec évidemment mon adresse mail et mon mot de passe mais j’obtiens systématiquement l’erreur suivante :

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Client</faultcode>
            <faultstring>Authentification impossible</faultstring>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>

je ne vois pas trop comment faire je pense que le problème peux se situer dans la valeur du wsse:UsernameToken et/ou du wsse:Nonce ou bien encore dans le contenu de ns2:getAuthentificationFront

J’ai fait une demande auprès du développeur du plugin jeedom mais même si c’est bientôt noël, je ne me fais pas d’illusion

1 « J'aime »

Merci Jonathan et bon courage pour la suite !

Grosse nouvelle

Merci @Pulpy, j’ai oublié de mettre à jour dans ce sujet :smiley:

1 « J'aime »

L’émotion sans doute :wink:

1 « J'aime »

Bonjour,
Bonne nouvelle, merci ! Pouvez-vous m’indiquer la façon de l’installer ? Merci d’avance …

Exactement comme la documentation l’indique …
Documentation dispo dans le lien principal du sujet que je mentionne

Merci Pulpy de ta réponse, j’ai suivi le readme mais j’ai une erreur « Le flux de configuration n’a pas pu être chargé: 500 Internal Server Error Server got itself in trouble » quand j’essaie d’installer l’intégration.

Dans ce cas détaille les étapes qui te mènent jusqu’à l’erreur. Accessoirement dans le sujet du l’intégration que le dev puisse en prendre connaissance facilement si besoin

Ok, je le fais dans le sujet de l’intégration.
Merci