Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blocage de l'accès par la SOPFEU 2024-06-05 #2

Open
mdallaire opened this issue Jun 5, 2024 · 1 comment
Open

Blocage de l'accès par la SOPFEU 2024-06-05 #2

mdallaire opened this issue Jun 5, 2024 · 1 comment

Comments

@mdallaire
Copy link
Contributor

Il semble que la SOPFEU ai décider de bloquer l'accès directe aux fichiers json nous permettant de consulter les informations de risque d'incendie ainsi que l'emplacement des feux actifs.

image

@mdallaire mdallaire changed the title Blocage de l'accès par la SOPFEU 2024-06-06 Blocage de l'accès par la SOPFEU 2024-06-05 Jun 5, 2024
@mdallaire
Copy link
Contributor Author

mdallaire commented Jun 5, 2024

Solution de contournement temporaire

Idéalement j'aimerai entrer en contact avec le responsable informatique de la SOPFEU pour trouver une solution acceptable pour tous

Il est possible de contourné le blocage par Cloudflare en utilisant FlareSolverr. Si vous utilisez docker vous pouvez exécuter le conteneur en parallèle de votre Home-Assistant. C'est également possible de le faire avec le addon ici: https://github.com/alexbelgium/hassio-addons/tree/master/flaresolverr

  • Vous devrez modifier votre configuration existante en enlevant les sensors de type "rest" et les remplacant par ceux de type command line ci-dessous.

  • Vous aller devoir supprimer les sensor "sensor.sopfeu_feux_actifs_data" et "sensor.sopfeu_risque_##ZDR##_data" afin de pouvoir renommer les capteurs nouvellement créé qui auront un "_2" à la fin du nom.

Une fois ces changements fait le tout devrais être fonctionnel et les sensors template existant devraient se mettre à jour automatiquement.

  - sensor:
      name: SOPFEU Feux Actifs data
      unique_id: SOPFEU_feux_actifs_data
      scan_interval: 86400
      value_template: "OK"
      json_attributes:
        - fires
        - updatedAt
      command: |-
        response=$(curl -s -L -X POST 'http://flaresolverr:8191/v1' \
           -H 'Content-Type: application/json' \
           --data-raw '{
         "cmd": "request.get",
         "url": "https://cartes.sopfeu.qc.ca/fires?filterChoice=active",
         "maxTimeout": 60000
         }')

        status=$(echo $response | jq -r '.status')
        url=$(echo $response | jq -r '.solution.url')
        userAgent=$(echo $response | jq -r '.solution.userAgent')
        cookieName=$(echo $response | jq -r '.solution.cookies[0].name')
        cookieValue=$(echo $response | jq -r '.solution.cookies[0].value')

        if [ "$status" == "ok" ]; then
          curl -A "$userAgent" -b "$cookieName=$cookieValue" "$url" | jq > /config/www/sopfeu-fire.json
          jq . /config/www/sopfeu-fire.json
        else
          exit 1
        fi 
  - sensor:
      name: SOPFEU Risque d'incendie data
      unique_id: SOPFEU_risque_##ZDR##_data
      scan_interval: 86400
      value_template: "{{ value_json.riskNow }}"
      json_attributes:
        - riskTomorrow
        - riskAfterTomorrow
        - updatedAt
      command: |-
        response=$(curl -s -L -X POST 'http://flaresolverr:8191/v1' \
           -H 'Content-Type: application/json' \
           --data-raw '{
         "cmd": "request.get",
         "url": "https://cartes.sopfeu.qc.ca/risk-zones",
         "maxTimeout": 60000
         }')

        status=$(echo $response | jq -r '.status')
        url=$(echo $response | jq -r '.solution.url')
        userAgent=$(echo $response | jq -r '.solution.userAgent')
        cookieName=$(echo $response | jq -r '.solution.cookies[0].name')
        cookieValue=$(echo $response | jq -r '.solution.cookies[0].value')

        if [ "$status" == "ok" ]; then
          curl -A "$userAgent" -b "$cookieName=$cookieValue" "$url" | jq > /config/www/sopfeu-risk.json
          jq '.[] | select(.id == ##ZDR##) | {id, name, riskNow, riskTomorrow, riskAfterTomorrow, createdAt, updatedAt}' /config/www/sopfeu-risk.json
        else
          exit 1
        fi
  - sensor:
      name: SOPFEU Feux Geojson
      command: |- 
        jq -c '{ "type": "FeatureCollection", "features": [.fires[] | select(.statusId != 6) | { "type": "Feature", "geometry": { "type": "Point", "coordinates": [ .lng, .lat ] }, "properties": { "id": .num, "date": .begin_at, "dateformat": "ISO-8601", "title": ("FEU " + (.num | tostring)), "Début": .begin_at, "surface": .surface, "Cause": .origin.name, "MRC": .mrc.name, "Unité de gestion": .managementUnit.name, "url": .url } } ] }' /config/www/sopfeu-fire.json > /config/www/sopfeu.geojson

@mdallaire mdallaire pinned this issue Aug 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant