# Copyright (c) 2026 Meteo Ponte San Nicoḷ. Tutti i diritti riservati.
#
# Questo plugin consente di calcolare il parametro "illuminance", ossia la luminosità solare (espressa in lux) partendo dalla radiazione.
#
# Requisiti:
#    1. Weewx 4.2 o successivi
#    2. Radiazione solare rilevata
#
# Istruzioni per l'installazione:
#    1. Fermare il processo "weewxd" (a seconda del metodo di installazione)
#    2. Inserire questo file nella cartella bin/user
#    3. Nel file configurazione weewx.conf, sottosezione [Engine][[Services]], aggiungere "IlluminanceService" alla riga "data_services". Ad esempio:
#
#        [Engine]
#            [[Services]]
#                data_services = user.illuminance.IlluminanceService
#
#    4. Riavviare il processo "weewxd"

import weewx
import weewx.units
weewx.units.obs_group_dict['illuminance'] = 'group_illuminance'

from weewx.engine import StdService

class IlluminanceService(StdService):

    def __init__(self, engine, config_dict):
        super(IlluminanceService, self).__init__(engine, config_dict)

        self.bind(weewx.NEW_ARCHIVE_RECORD, self.new_archive_record)

    def new_archive_record(self, event): 
        if event.record.get('radiation') is not None:
            radiation = event.record.get('radiation')
            event.record['illuminance'] = radiation / 0.0079
        else:
            event.record['illuminance'] = None