Home Assistant Git Exporter

This commit is contained in:
root
2024-05-31 13:07:35 +02:00
parent 64a0536537
commit 60abdd866c
275 changed files with 71113 additions and 1 deletions

View File

@@ -0,0 +1,156 @@
{
"restrictions": [
{
"usage": "Abreuvement des animaux",
"thematique": "Abreuver"
},
{
"usage": "Activités de loisirs professionnelles ou amateurs en cours deau.",
"thematique": "Travaux et activités en cours d'eau"
},
{
"usage": "Alimentation des fontaines publiques",
"thematique": "Alimenter des fontaines et autres usages de loisirs"
},
{
"usage": "Alimentation des fontaines publiques et privées dornement",
"thematique": "Alimenter des fontaines et autres usages de loisirs"
},
{
"usage": "Arrosage des golfs",
"thematique": "Arroser"
},
{
"usage": "Arrosage des golfs(Conformément à l'accord cadre golf et environnement 2019-2024",
"thematique": "Arroser"
},
{
"usage": "Arrosage des jardins potagers",
"thematique": "Arroser"
},
{
"usage": "Arrosage des jardins potagers collectifs",
"thematique": "Arroser"
},
{
"usage": "Arrosage des jardins potagers individuels",
"thematique": "Arroser"
},
{
"usage": "Arrosage des pelouses, massifs fleuris",
"thematique": "Arroser"
},
{
"usage": "Arrosage des pelouses, massifs fleuris et espaces verts (y compris rond-points, voies de tramway).",
"thematique": "Arroser"
},
{
"usage": "Arrosage des terrains de sport",
"thematique": "Arroser"
},
{
"usage": "ICPE soumises à un APC relatif à la sécheresse",
"thematique": "ICPE"
},
{
"usage": "Irrigation par aspersion des cultures",
"thematique": "Irriguer"
},
{
"usage": "Lavage de véhicules chez les particuliers",
"thematique": "Nettoyer"
},
{
"usage": "Lavage de véhicules en station professionnelle",
"thematique": "Nettoyer"
},
{
"usage": "Lavage de véhicules et bateaux chez les particuliers",
"thematique": "Nettoyer"
},
{
"usage": "Lavage de véhicules par des particuliers, y compris embarcations motorisées ou non (exemple : Jet ski).",
"thematique": "Nettoyer"
},
{
"usage": "Lavage de véhicules par des professionnels",
"thematique": "Nettoyer"
},
{
"usage": "Lavage de véhicules publics ou privés en stations de lavage professionnelles.",
"thematique": "Nettoyer"
},
{
"usage": "Lavage des bateaux",
"thematique": "Nettoyer"
},
{
"usage": "Lavage et entretien des embarcations (motorisées ou non) en aire de carénage.",
"thematique": "Nettoyer"
},
{
"usage": "Navigation fluviale.",
"thematique": "Travaux et activités en cours d'eau"
},
{
"usage": "Nettoyage des façades, terrasses et murs de clôture",
"thematique": "Nettoyer"
},
{
"usage": "Nettoyage des façades, toitures, trottoirs et autres surfaces imperméabilisées",
"thematique": "Nettoyer"
},
{
"usage": "Nettoyage des façades, toitures, trottoirs et autres surfaces imperméabilisées hors activités industrielles.",
"thematique": "Nettoyer"
},
{
"usage": "Nettoyage des façades, toitures, trottoirs, terrasses, façades imperméabilisées...",
"thematique": "Nettoyer"
},
{
"usage": "Nettoyage des voieries",
"thematique": "Nettoyer"
},
{
"usage": "Orpaillage et pêche à laimant.",
"thematique": "Travaux et activités en cours d'eau"
},
{
"usage": "Rejets et travaux en rivière",
"thematique": "Travaux et activités en cours d'eau"
},
{
"usage": "Remplissage / vidange des plans d'eau",
"thematique": "Remplir ou vidanger"
},
{
"usage": "Remplissage / vidange des plans d'eau.",
"thematique": "Remplir ou vidanger"
},
{
"usage": "Remplissage et vidange de piscines privées",
"thematique": "Remplir ou vidanger"
},
{
"usage": "Remplissage et vidange de piscines privées (de plus d'1 m3)",
"thematique": "Remplir ou vidanger"
},
{
"usage": "Remplissage et vidange de piscines privées (de plus d'1 m3).",
"thematique": "Remplir ou vidanger"
},
{
"usage": "Travaux en cours deau",
"thematique": "Travaux et activités en cours d'eau"
},
{
"usage": "Travaux en cours deau.",
"thematique": "Travaux et activités en cours d'eau"
},
{
"usage": "Usages récréatifs collectifs à partir deau potable (dans le cadre de manifestations).",
"thematique": "Remplir ou vidanger"
}
]
}

View File

@@ -0,0 +1,59 @@
import aiohttp
import asyncio
import os
import json
from frozendict import frozendict
import sys
current_dir = os.path.dirname(__file__)
parent_dir = os.path.dirname(current_dir)
sys.path.append(".")
sys.path.append(parent_dir)
from custom_components.vigieau.api import InseeApi, VigieauApi, VigieauApiError
async def main():
restriction_list = {"restrictions": []}
usages = set()
async with aiohttp.ClientSession() as session:
vigieau = VigieauApi(session)
commune_list = await InseeApi(session).get_insee_list()
for i, commune in enumerate(commune_list):
print(f"{i}/{len(commune_list)}: {commune['nom']}")
try:
restriction = await vigieau.get_data(
insee_code=commune["code"],
profil="particulier",
lat=commune["centre"]["coordinates"][1],
long=commune["centre"]["coordinates"][0],
)
except VigieauApiError as e:
print(e.text)
# FIXME: Sometimes insee is enough to call vigieau Api, sometimes not exclude the one where it's not enough , for the moment
if restriction:
for usage in restriction.get("usages", []):
usages.add(
frozendict(
{"usage": usage["nom"], "thematique": usage["thematique"]}
)
)
if i % 10 == 0:
dump_restrictions(restriction_list, usages)
dump_restrictions(restriction_list, usages)
def dump_restrictions(restriction_list, usages):
restriction_list["restrictions"] = sorted(
list(usages), key=lambda h: h["usage"]
)
finaldata = json.dumps(restriction_list, ensure_ascii=False, indent=2)
file = os.path.join(os.path.dirname(__file__), "full_usage_list.json")
with open(file, "w", encoding="utf-8") as outfile:
outfile.write(finaldata)
if __name__ == "__main__":
asyncio.run(main())