@@ -30,42 +30,58 @@ def __init__(self, snmp_community, snmp_host, snmp_port, **kwargs):
3030
3131 async def task_get_telemetry_data (self ):
3232 while True :
33- if (value := self .snmp_get ("1.3.6.1.4.1.534.1.6.1.0" )) is not None :
34- self .telemetry ["temperature" ] = int (value )
33+ temperature = await self .snmp_get ("1.3.6.1.4.1.534.1.6.1.0" )
34+ if temperature is not None :
35+ self .telemetry ["temperature" ] = int (temperature )
3536
36- if (value := self .snmp_get ("1.3.6.1.4.1.534.1.2.4.0" )) is not None :
37- self .telemetry ["capacity" ] = int (value )
37+ capacity = await self .snmp_get ("1.3.6.1.4.1.534.1.2.4.0" )
38+ if capacity is not None :
39+ self .telemetry ["capacity" ] = int (capacity )
3840
39- if (value := self .snmp_get ("1.3.6.1.4.1.534.1.2.5.0" )) is not None :
40- self .telemetry ["status" ] = str (value )
41+ status = await self .snmp_get ("1.3.6.1.4.1.534.1.2.5.0" )
42+ if status is not None :
43+ self .telemetry ["status" ] = str (status )
4144
42- if (value := self .snmp_get ("1.3.6.1.2.1.33.1.3.3.1.2.1" )) is not None :
43- self .telemetry ["grid_freq" ] = int (value ) * 0.1
45+ grid_freq = await self .snmp_get ("1.3.6.1.2.1.33.1.3.3.1.2.1" )
46+ if grid_freq is not None :
47+ self .telemetry ["grid_freq" ] = int (grid_freq ) * 0.1
4448
45- if (value := self .snmp_get ("1.3.6.1.4.1.534.1.4.2.0" )) is not None :
46- self .telemetry ["ups_freq" ] = int (value ) * 0.1
49+ ups_freq = await self .snmp_get ("1.3.6.1.4.1.534.1.4.2.0" )
50+ if ups_freq is not None :
51+ self .telemetry ["ups_freq" ] = int (ups_freq ) * 0.1
4752
48- if (value := self .snmp_get ("1.3.6.1.4.1.534.1.3.4.1.2.1" )) is not None :
49- self .telemetry ["grid_v" ] = int (value )
53+ grid_v = await self .snmp_get ("1.3.6.1.4.1.534.1.3.4.1.2.1" )
54+ if grid_v is not None :
55+ self .telemetry ["grid_v" ] = int (grid_v )
5056
51- if (value := self .snmp_get ("1.3.6.1.4.1.534.1.4.1.0" )) is not None :
52- self .telemetry ["out_load" ] = int (value )
57+ out_load = await self .snmp_get ("1.3.6.1.4.1.534.1.4.1.0" )
58+ if out_load is not None :
59+ self .telemetry ["out_load" ] = int (out_load )
5360
54- if (value := self .snmp_get ("1.3.6.1.4.1.534.1.4.4.1.4.1" )) is not None :
55- self .telemetry ["ac_out_active_power" ] = int (value )
61+ ac_out_active_power = await self .snmp_get ("1.3.6.1.4.1.534.1.4.4.1.4.1" )
62+ if ac_out_active_power is not None :
63+ self .telemetry ["ac_out_active_power" ] = int (ac_out_active_power )
5664
5765 await asyncio .sleep (10 )
5866
5967 async def task_get_properties_data (self ):
6068 while True :
61- if (value := self .snmp_get ("1.3.6.1.2.1.33.1.1.2.0" )) is not None :
62- self .properties ["model" ] = str (value )
63- if (value := self .snmp_get ("1.3.6.1.2.1.33.1.1.1.0" )) is not None :
64- self .properties ["manufacturer" ] = str (value )
65- if (value := self .snmp_get ("1.3.6.1.2.1.33.1.1.3.0" )) is not None :
66- self .properties ["fw_ver" ] = str (value )
67- if (value := self .snmp_get ("1.3.6.1.2.1.33.1.1.4.0" )) is not None :
68- self .properties ["agent_ver" ] = str (value )
69+ model = await self .snmp_get ("1.3.6.1.2.1.33.1.1.2.0" )
70+ if model is not None :
71+ self .properties ["model" ] = str (model )
72+
73+ manufacturer = await self .snmp_get ("1.3.6.1.2.1.33.1.1.1.0" )
74+ if manufacturer is not None :
75+ self .properties ["manufacturer" ] = str (manufacturer )
76+
77+ fw_ver = await self .snmp_get ("1.3.6.1.2.1.33.1.1.3.0" )
78+ if fw_ver is not None :
79+ self .properties ["fw_ver" ] = str (fw_ver )
80+
81+ agent_ver = await self .snmp_get ("1.3.6.1.2.1.33.1.1.4.0" )
82+ if agent_ver is not None :
83+ self .properties ["agent_ver" ] = str (agent_ver )
84+
6985 await asyncio .sleep (60 )
7086
7187 async def task_telemetry_sender (self ):
@@ -78,8 +94,13 @@ async def task_properties_publisher(self):
7894 await self .send_properties (self .properties )
7995 await asyncio .sleep (10 )
8096
81- def snmp_get (self , oid ):
82- result = self .cmd_gen .getCmd (self .auth_data , self .transport_target , oid )
97+ async def snmp_get (self , oid ):
98+ result = await self .run_in_thread (
99+ self .cmd_gen .getCmd ,
100+ self .auth_data ,
101+ self .transport_target ,
102+ oid ,
103+ )
83104 (error_indication , error_status , error_index , var_binds ) = result
84105
85106 if error_indication :
0 commit comments