Skip to main content

Module iot_handlers

Module iot_handlers 

Source
Expand description

Relevés IoT et compteurs Linky.

§Le périmètre de ces routes (#864)

Huit routes de ce module portaient let _ = auth; // Authentication required. La ligne disait vrai et ne protégeait rien : l’extracteur refuse bien un appel anonyme, mais l’immeuble est fourni par l’appelant. Tout utilisateur authentifié lisait donc les relevés de n’importe quel immeuble du produit en connaissant son UUID.

Une courbe de consommation électrique n’est pas une donnée neutre : elle dit quand le logement est occupé, et quand il ne l’est pas.

Deux régimes s’appliquent désormais, selon ce que la route parcourt :

  • route portant un building_id → verify_building_org_access, qui rattache l’immeuble à l’organisation de l’appelant ;
  • balayage sans immeuble (needing-sync, expired-tokens) → réservé au superadministrateur, puisqu’il traverse toutes les organisations.

Les routes d’écriture, elles, passaient déjà organization_id au cas d’usage : elles n’ont pas changé.

Functions§

configure_iot_routes
Configure IoT routes
configure_linky_device
Configure a Linky device for a building
create_iot_reading
Create a single IoT reading
create_iot_readings_bulk
Create multiple IoT readings in bulk
delete_linky_device
Delete Linky device for a building
detect_anomalies
Detect consumption anomalies for a building
find_devices_needing_sync
Find Linky devices needing sync
find_devices_with_expired_tokens
Find Linky devices with expired tokens
get_consumption_stats
Get consumption statistics for a building
get_daily_aggregates
Get daily aggregates for a building
get_linky_device
Get Linky device for a building
get_monthly_aggregates
Get monthly aggregates for a building
query_iot_readings
Query IoT readings with filters
sync_linky_data
Sync Linky data for a building
toggle_linky_sync
Toggle sync for a Linky device