@@ -20,39 +20,61 @@ def __init__(self, component_config: JsonCounterSetup, **kwargs: Any) -> None:
2020 self .component_config = component_config
2121 self .kwargs : KwargsDict = kwargs
2222
23+ def _compile_jq_filters (self ) -> None :
24+ config = self .component_config .configuration
25+ self .jq_power = jq .compile (config .jq_power )
26+ self .jq_powers = [jq .compile (p ) for p in config .jq_powers ] if all (config .jq_powers ) else None
27+ self .jq_power_factors = [
28+ jq .compile (pf ) for pf in config .jq_power_factors ] if all (config .jq_power_factors ) else None
29+ self .jq_currents = [jq .compile (c ) for c in config .jq_currents ] if all (config .jq_currents ) else None
30+ self .jq_voltages = [jq .compile (v ) for v in config .jq_voltages ] if all (config .jq_voltages ) else None
31+ self .jq_imported = jq .compile (config .jq_imported ) if config .jq_imported else None
32+ self .jq_exported = jq .compile (config .jq_exported ) if config .jq_exported else None
33+
2334 def initialize (self ) -> None :
2435 self .__device_id : int = self .kwargs ['device_id' ]
2536 self .sim_counter = SimCounter (self .__device_id , self .component_config .id , prefix = "bezug" )
2637 self .store = get_counter_value_store (self .component_config .id )
38+ self ._compile_jq_filters ()
2739 self .fault_state = FaultState (ComponentInfo .from_component_config (self .component_config ))
2840
2941 def update (self , response ) -> None :
30- config = self .component_config . configuration
42+ power = float ( self .jq_power . input ( response ). first ())
3143
32- power = float (jq .compile (config .jq_power ).input (response ).first ())
44+ powers = (
45+ [float (j .input (response ).first ()) for j in self .jq_powers ]
46+ if self .jq_powers is not None else None
47+ )
3348
34- if all ( config . jq_powers ):
35- powers = [float (jq . compile ( p ). input (response ).first ()) for p in config . jq_powers ]
36- else :
37- powers = None
49+ currents = (
50+ [float (j . input (response ).first ()) for j in self . jq_currents ]
51+ if self . jq_currents is not None else None
52+ )
3853
39- if all (config .jq_currents ):
40- currents = [float (jq .compile (c ).input (response ).first ()) for c in config .jq_currents ]
41- else :
42- currents = None
54+ power_factors = (
55+ [float (j .input (response ).first ()) for j in self .jq_power_factors ]
56+ if self .jq_power_factors is not None else None
57+ )
58+
59+ voltages = (
60+ [float (j .input (response ).first ()) for j in self .jq_voltages ]
61+ if self .jq_voltages is not None else None
62+ )
4363
44- if config .jq_imported is None or config .jq_exported is None :
64+ if self .jq_imported is None or self .jq_exported is None :
4565 imported , exported = self .sim_counter .sim_count (power )
4666 else :
47- imported = float (jq . compile ( config . jq_imported ) .input (response ).first ())
48- exported = float (jq . compile ( config . jq_exported ) .input (response ).first ())
67+ imported = float (self . jq_imported .input (response ).first ())
68+ exported = float (self . jq_exported .input (response ).first ())
4969
5070 counter_state = CounterState (
5171 imported = imported ,
5272 exported = exported ,
5373 power = power ,
5474 powers = powers ,
55- currents = currents
75+ currents = currents ,
76+ power_factors = power_factors ,
77+ voltages = voltages
5678 )
5779 self .store .set (counter_state )
5880
0 commit comments