File tree Expand file tree Collapse file tree
packages/modules/devices/shelly/shelly Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -66,6 +66,8 @@ def update(self) -> None:
6666 elif "em:0" in status :
6767 meters = status ['em:0' ]
6868 for i in range (0 , 3 ):
69+ if meters .get (f'{ alphabetical_index [i ]} _current' ) is None :
70+ continue
6971 currents [(i + self .phase - 1 ) % 3 ] = (float (meters [f'{ alphabetical_index [i ]} _current' ]) * self .factor
7072 if meters .get (f'{ alphabetical_index [i ]} _current' ) else 0 )
7173 power = float (meters ['total_act_power' ]) * self .factor
Original file line number Diff line number Diff line change @@ -82,6 +82,8 @@ def update(self) -> None:
8282 power_factors = [0.0 , 0.0 , 0.0 ]
8383 meters = status ['em:0' ]
8484 for i in range (0 , 3 ):
85+ if meters .get (f'{ alphabetical_index [i ]} _act_power' ) is None :
86+ continue
8587 powers [(i + self .phase - 1 ) % 3 ] = (float (meters [f'{ alphabetical_index [i ]} _act_power' ]) * self .factor
8688 if meters .get (f'{ alphabetical_index [i ]} _act_power' ) else 0 )
8789 voltages [(i + self .phase - 1 ) % 3 ] = (float (meters [f'{ alphabetical_index [i ]} _voltage' ])
Original file line number Diff line number Diff line change @@ -56,15 +56,15 @@ def update(self) -> None:
5656 elif "emeters" in status :
5757 meters = status ['emeters' ] # shellyEM & shelly3EM
5858 # shellyEM has one meter, shelly3EM has three meters
59- for i in range (0 , 3 ):
59+ for i in range (len ( meters ) ):
6060 currents [(i + self .phase - 1 ) % 3 ] = (float (meters [i ]['current' ]) * self .factor
6161 if meters [i ].get ('current' ) else 0 )
6262 power = power + (float (meters [i ]['power' ] * self .factor ))
6363 # GEN 2+
6464 # shelly Pro3EM
6565 elif "em:0" in status :
6666 meters = status ['em:0' ]
67- for i in range (0 , 3 ):
67+ for i in range (len ( meters ) ):
6868 currents [(i + self .phase - 1 ) % 3 ] = (float (meters [f'{ alphabetical_index [i ]} _current' ]) * self .factor
6969 if meters .get (f'{ alphabetical_index [i ]} _current' ) else 0 )
7070 power = float (meters ['total_act_power' ]) * self .factor
You can’t perform that action at this time.
0 commit comments