File tree Expand file tree Collapse file tree 3 files changed +18
-4
lines changed Expand file tree Collapse file tree 3 files changed +18
-4
lines changed Original file line number Diff line number Diff line change 13
13
- " main"
14
14
15
15
env :
16
- RELEASE : 3.0.2
16
+ RELEASE : 3.0.3
17
17
18
18
jobs :
19
19
docker :
Original file line number Diff line number Diff line change 276
276
"name" : " Desired Power" ,
277
277
"min" : -5000 ,
278
278
"max" : 5000 ,
279
- "step" : 50 ,
279
+ "step" : 500 ,
280
280
"initial" : 0 ,
281
281
"mode" : " slider" ,
282
282
"value_template" : " {{ value_json.desired_power }}" ,
762
762
"state_class" : " measurement" ,
763
763
"entity_category" : " diagnostic" ,
764
764
"value_template" : " {{ value_json.battery_soc }}"
765
- }
765
+ },
766
+ "min" : 0 ,
767
+ "max" : 100
766
768
},
767
769
{
768
770
"name" : " battery_soh" ,
Original file line number Diff line number Diff line change @@ -225,6 +225,14 @@ def read_and_publish(self):
225
225
# Inverter will return maximum 16-bit integer value when data not available (eg. grid usage when grid down)
226
226
if value == 65535 :
227
227
value = 0
228
+ if 'min' in register :
229
+ if value < register ['min' ]:
230
+ logging .error (f"Value for { register ['name' ]} : { str (value )} is lower than min allowed value: { register ['min' ]} . Ignoring value" )
231
+ continue
232
+ if 'max' in register :
233
+ if value > register ['max' ]:
234
+ logging .error (f"Value for { register ['name' ]} : { str (value )} is greater than max allowed value: { register ['max' ]} . Ignoring value" )
235
+ continue
228
236
if 'function' in register :
229
237
if register ['function' ] == 'multiply' :
230
238
value = value * register ['factor' ]
@@ -283,14 +291,18 @@ def publish_state(self):
283
291
time .sleep (self .refresh_interval )
284
292
285
293
def publish_mqtt_discovery (self ):
294
+ if 'serial_number' not in self .data :
295
+ logging .error ("Serial number could not be determined, skipping publish" )
296
+ return False
297
+
286
298
sn = self .data ['serial_number' ]
287
299
payload = {
288
300
"device" : {
289
301
"identifiers" : [f"sofar2mqtt_python_bridge_{ sn } " ],
290
302
"manufacturer" : "Sofar2Mqtt-Python" ,
291
303
"model" : "Bridge" ,
292
304
"name" : "Sofar2Mqtt Python Bridge" ,
293
- "sw_version" : "1.35 .3"
305
+ "sw_version" : "3.0 .3"
294
306
},
295
307
"device_class" : "connectivity" ,
296
308
"entity_category" : "diagnostic" ,
You can’t perform that action at this time.
0 commit comments