@@ -133,28 +133,34 @@ def extra_state_attributes(self):
133133 translation_key = "manual_feed_quantity" ,
134134 name = "Manual Feed Quantity" ,
135135 icon = "mdi:scale" ,
136- native_unit_of_measurement_fn = lambda member : member .feedUnitType .symbol ,
137- native_max_value_fn = lambda m : Unit .round (m .feedUnitType .factor * 12 , m .feedUnitType ),
138- native_min_value_fn = lambda member : round (member .feedUnitType .factor , 16 ),
139- native_step_fn = lambda member : member .feedUnitType .factor ,
140- method = lambda d , m , v : d .set_manual_feed_quantity (Unit .convert_feed (v , m .feedUnitType , None )),
141- value_fn = lambda d , m : Unit .convert_feed (d .manual_feed_quantity , None , m .feedUnitType , True ),
142- extra_state_attributes_fn = lambda d , m : {"grain" : d .manual_feed_quantity }| {
136+ native_unit_of_measurement_fn = lambda m : m .feedUnitType .symbol
137+ if m .feedUnitType != Unit .CUPS else "/12 cup" ,
138+ native_max_value_fn = lambda m : Unit .round (m .feedUnitType .factor * 12 , m .feedUnitType )
139+ if m .feedUnitType != Unit .CUPS else 12 ,
140+ native_min_value_fn = lambda m : round (m .feedUnitType .factor , 16 )
141+ if m .feedUnitType != Unit .CUPS else 1 ,
142+ native_step_fn = lambda m : m .feedUnitType .factor
143+ if m .feedUnitType != Unit .CUPS else 1 ,
144+ method = lambda d , m , v : d .set_manual_feed_quantity (Unit .convert_feed (
145+ v , m .feedUnitType if m .feedUnitType != Unit .CUPS else None , None )),
146+ value_fn = lambda d , m : Unit .convert_feed (d .manual_feed_quantity , None , m .feedUnitType , True )
147+ if m .feedUnitType != Unit .CUPS else d .manual_feed_quantity ,
148+ extra_state_attributes_fn = lambda d , m : {"portion" : d .manual_feed_quantity }| {
143149 unit .symbol : Unit .convert_feed (d .manual_feed_quantity , None , unit , True )
144150 for unit in VALID_UNIT_TYPES [API .FEED_UNIT ] if unit
145151 },
146152 ),
147153 PetLibroNumberEntityDescription [AirSmartFeeder ](
148- key = "manual_feed_quantity_grain " ,
149- translation_key = "manual_feed_quantity_grain " ,
150- name = "Manual Feed Quantity (Grain )" ,
154+ key = "manual_feed_quantity_portion " ,
155+ translation_key = "manual_feed_quantity_portion " ,
156+ name = "Manual Feed Quantity (Portion )" ,
151157 icon = "mdi:scale" ,
152158 device_class = NumberDeviceClass .POWER_FACTOR ,
153159 native_max_value = 12 ,
154160 native_min_value = 1 ,
155161 method = lambda device , m , value : device .set_manual_feed_quantity (value ),
156162 value_fn = lambda device , m : device .manual_feed_quantity ,
157- extra_state_attributes_fn = lambda d , m : {"grain " : d .manual_feed_quantity }| {
163+ extra_state_attributes_fn = lambda d , m : {"portion " : d .manual_feed_quantity }| {
158164 unit .symbol : Unit .convert_feed (d .manual_feed_quantity , None , unit , True )
159165 for unit in VALID_UNIT_TYPES [API .FEED_UNIT ] if unit
160166 },
@@ -166,28 +172,34 @@ def extra_state_attributes(self):
166172 translation_key = "manual_feed_quantity" ,
167173 name = "Manual Feed Quantity" ,
168174 icon = "mdi:scale" ,
169- native_unit_of_measurement_fn = lambda member : member .feedUnitType .symbol ,
170- native_max_value_fn = lambda m : Unit .round (m .feedUnitType .factor * 12 , m .feedUnitType ),
171- native_min_value_fn = lambda member : round (member .feedUnitType .factor , 16 ),
172- native_step_fn = lambda member : member .feedUnitType .factor ,
173- method = lambda d , m , v : d .set_manual_feed_quantity (Unit .convert_feed (v , m .feedUnitType , None )),
174- value_fn = lambda d , m : Unit .convert_feed (d .manual_feed_quantity , None , m .feedUnitType , True ),
175- extra_state_attributes_fn = lambda d , m : {"grain" : d .manual_feed_quantity }| {
175+ native_unit_of_measurement_fn = lambda m : m .feedUnitType .symbol
176+ if m .feedUnitType != Unit .CUPS else "/12 cup" ,
177+ native_max_value_fn = lambda m : Unit .round (m .feedUnitType .factor * 12 , m .feedUnitType )
178+ if m .feedUnitType != Unit .CUPS else 12 ,
179+ native_min_value_fn = lambda m : round (m .feedUnitType .factor , 16 )
180+ if m .feedUnitType != Unit .CUPS else 1 ,
181+ native_step_fn = lambda m : m .feedUnitType .factor
182+ if m .feedUnitType != Unit .CUPS else 1 ,
183+ method = lambda d , m , v : d .set_manual_feed_quantity (Unit .convert_feed (
184+ v , m .feedUnitType if m .feedUnitType != Unit .CUPS else None , None )),
185+ value_fn = lambda d , m : Unit .convert_feed (d .manual_feed_quantity , None , m .feedUnitType , True )
186+ if m .feedUnitType != Unit .CUPS else d .manual_feed_quantity ,
187+ extra_state_attributes_fn = lambda d , m : {"portion" : d .manual_feed_quantity }| {
176188 unit .symbol : Unit .convert_feed (d .manual_feed_quantity , None , unit , True )
177189 for unit in VALID_UNIT_TYPES [API .FEED_UNIT ] if unit
178190 },
179191 ),
180192 PetLibroNumberEntityDescription [GranarySmartFeeder ](
181- key = "manual_feed_quantity_grain " ,
182- translation_key = "manual_feed_quantity_grain " ,
183- name = "Manual Feed Quantity (Grain )" ,
193+ key = "manual_feed_quantity_portion " ,
194+ translation_key = "manual_feed_quantity_portion " ,
195+ name = "Manual Feed Quantity (Portion )" ,
184196 icon = "mdi:scale" ,
185197 device_class = NumberDeviceClass .POWER_FACTOR ,
186198 native_max_value = 12 ,
187199 native_min_value = 1 ,
188200 method = lambda device , m , value : device .set_manual_feed_quantity (value ),
189201 value_fn = lambda device , m : device .manual_feed_quantity ,
190- extra_state_attributes_fn = lambda d , m : {"grain " : d .manual_feed_quantity }| {
202+ extra_state_attributes_fn = lambda d , m : {"portion " : d .manual_feed_quantity }| {
191203 unit .symbol : Unit .convert_feed (d .manual_feed_quantity , None , unit , True )
192204 for unit in VALID_UNIT_TYPES [API .FEED_UNIT ] if unit
193205 },
@@ -212,28 +224,34 @@ def extra_state_attributes(self):
212224 translation_key = "manual_feed_quantity" ,
213225 name = "Manual Feed Quantity" ,
214226 icon = "mdi:scale" ,
215- native_unit_of_measurement_fn = lambda member : member .feedUnitType .symbol ,
216- native_max_value_fn = lambda m : Unit .round (m .feedUnitType .factor * 12 , m .feedUnitType ),
217- native_min_value_fn = lambda member : round (member .feedUnitType .factor , 16 ),
218- native_step_fn = lambda member : member .feedUnitType .factor ,
219- method = lambda d , m , v : d .set_manual_feed_quantity (Unit .convert_feed (v , m .feedUnitType , None )),
220- value_fn = lambda d , m : Unit .convert_feed (d .manual_feed_quantity , None , m .feedUnitType , True ),
221- extra_state_attributes_fn = lambda d , m : {"grain" : d .manual_feed_quantity }| {
227+ native_unit_of_measurement_fn = lambda m : m .feedUnitType .symbol
228+ if m .feedUnitType != Unit .CUPS else "/12 cup" ,
229+ native_max_value_fn = lambda m : Unit .round (m .feedUnitType .factor * 12 , m .feedUnitType )
230+ if m .feedUnitType != Unit .CUPS else 12 ,
231+ native_min_value_fn = lambda m : round (m .feedUnitType .factor , 16 )
232+ if m .feedUnitType != Unit .CUPS else 1 ,
233+ native_step_fn = lambda m : m .feedUnitType .factor
234+ if m .feedUnitType != Unit .CUPS else 1 ,
235+ method = lambda d , m , v : d .set_manual_feed_quantity (Unit .convert_feed (
236+ v , m .feedUnitType if m .feedUnitType != Unit .CUPS else None , None )),
237+ value_fn = lambda d , m : Unit .convert_feed (d .manual_feed_quantity , None , m .feedUnitType , True )
238+ if m .feedUnitType != Unit .CUPS else d .manual_feed_quantity ,
239+ extra_state_attributes_fn = lambda d , m : {"portion" : d .manual_feed_quantity }| {
222240 unit .symbol : Unit .convert_feed (d .manual_feed_quantity , None , unit , True )
223241 for unit in VALID_UNIT_TYPES [API .FEED_UNIT ] if unit
224242 },
225243 ),
226244 PetLibroNumberEntityDescription [GranarySmartCameraFeeder ](
227- key = "manual_feed_quantity_grain " ,
228- translation_key = "manual_feed_quantity_grain " ,
229- name = "Manual Feed Quantity (Grain )" ,
245+ key = "manual_feed_quantity_portion " ,
246+ translation_key = "manual_feed_quantity_portion " ,
247+ name = "Manual Feed Quantity (Portion )" ,
230248 icon = "mdi:scale" ,
231249 device_class = NumberDeviceClass .POWER_FACTOR ,
232250 native_max_value = 12 ,
233251 native_min_value = 1 ,
234252 method = lambda device , m , value : device .set_manual_feed_quantity (value ),
235253 value_fn = lambda device , m : device .manual_feed_quantity ,
236- extra_state_attributes_fn = lambda d , m : {"grain " : d .manual_feed_quantity }| {
254+ extra_state_attributes_fn = lambda d , m : {"portion " : d .manual_feed_quantity }| {
237255 unit .symbol : Unit .convert_feed (d .manual_feed_quantity , None , unit , True )
238256 for unit in VALID_UNIT_TYPES [API .FEED_UNIT ] if unit
239257 },
@@ -282,28 +300,34 @@ def extra_state_attributes(self):
282300 translation_key = "manual_feed_quantity" ,
283301 name = "Manual Feed Quantity" ,
284302 icon = "mdi:scale" ,
285- native_unit_of_measurement_fn = lambda member : member .feedUnitType .symbol ,
286- native_max_value_fn = lambda m : Unit .round (m .feedUnitType .factor * 12 , m .feedUnitType ),
287- native_min_value_fn = lambda member : round (member .feedUnitType .factor , 16 ),
288- native_step_fn = lambda member : member .feedUnitType .factor ,
289- method = lambda d , m , v : d .set_manual_feed_quantity (Unit .convert_feed (v , m .feedUnitType , None )),
290- value_fn = lambda d , m : Unit .convert_feed (d .manual_feed_quantity , None , m .feedUnitType , True ),
291- extra_state_attributes_fn = lambda d , m : {"grain" : d .manual_feed_quantity }| {
303+ native_unit_of_measurement_fn = lambda m : m .feedUnitType .symbol
304+ if m .feedUnitType != Unit .CUPS else "/12 cup" ,
305+ native_max_value_fn = lambda m : Unit .round (m .feedUnitType .factor * 12 , m .feedUnitType )
306+ if m .feedUnitType != Unit .CUPS else 12 ,
307+ native_min_value_fn = lambda m : round (m .feedUnitType .factor , 16 )
308+ if m .feedUnitType != Unit .CUPS else 1 ,
309+ native_step_fn = lambda m : m .feedUnitType .factor
310+ if m .feedUnitType != Unit .CUPS else 1 ,
311+ method = lambda d , m , v : d .set_manual_feed_quantity (Unit .convert_feed (
312+ v , m .feedUnitType if m .feedUnitType != Unit .CUPS else None , None )),
313+ value_fn = lambda d , m : Unit .convert_feed (d .manual_feed_quantity , None , m .feedUnitType , True )
314+ if m .feedUnitType != Unit .CUPS else d .manual_feed_quantity ,
315+ extra_state_attributes_fn = lambda d , m : {"portion" : d .manual_feed_quantity }| {
292316 unit .symbol : Unit .convert_feed (d .manual_feed_quantity , None , unit , True )
293317 for unit in VALID_UNIT_TYPES [API .FEED_UNIT ] if unit
294318 },
295319 ),
296320 PetLibroNumberEntityDescription [OneRFIDSmartFeeder ](
297- key = "manual_feed_quantity_grain " ,
298- translation_key = "manual_feed_quantity_grain " ,
299- name = "Manual Feed Quantity (Grain )" ,
321+ key = "manual_feed_quantity_portion " ,
322+ translation_key = "manual_feed_quantity_portion " ,
323+ name = "Manual Feed Quantity (Portion )" ,
300324 icon = "mdi:scale" ,
301325 device_class = NumberDeviceClass .POWER_FACTOR ,
302326 native_max_value = 12 ,
303327 native_min_value = 1 ,
304328 method = lambda device , m , value : device .set_manual_feed_quantity (value ),
305329 value_fn = lambda device , m : device .manual_feed_quantity ,
306- extra_state_attributes_fn = lambda d , m : {"grain " : d .manual_feed_quantity }| {
330+ extra_state_attributes_fn = lambda d , m : {"portion " : d .manual_feed_quantity }| {
307331 unit .symbol : Unit .convert_feed (d .manual_feed_quantity , None , unit , True )
308332 for unit in VALID_UNIT_TYPES [API .FEED_UNIT ] if unit
309333 },
@@ -316,28 +340,34 @@ def extra_state_attributes(self):
316340 translation_key = "manual_feed_quantity" ,
317341 name = "Manual Feed Quantity" ,
318342 icon = "mdi:scale" ,
319- native_unit_of_measurement_fn = lambda member : member .feedUnitType .symbol ,
320- native_max_value_fn = lambda m : Unit .round (m .feedUnitType .factor * 12 , m .feedUnitType ),
321- native_min_value_fn = lambda member : round (member .feedUnitType .factor , 16 ),
322- native_step_fn = lambda member : member .feedUnitType .factor ,
323- method = lambda d , m , v : d .set_manual_feed_quantity (Unit .convert_feed (v , m .feedUnitType , None )),
324- value_fn = lambda d , m : Unit .convert_feed (d .manual_feed_quantity , None , m .feedUnitType , True ),
325- extra_state_attributes_fn = lambda d , m : {"grain" : d .manual_feed_quantity }| {
343+ native_unit_of_measurement_fn = lambda m : m .feedUnitType .symbol
344+ if m .feedUnitType != Unit .CUPS else "/12 cup" ,
345+ native_max_value_fn = lambda m : Unit .round (m .feedUnitType .factor * 12 , m .feedUnitType )
346+ if m .feedUnitType != Unit .CUPS else 12 ,
347+ native_min_value_fn = lambda m : round (m .feedUnitType .factor , 16 )
348+ if m .feedUnitType != Unit .CUPS else 1 ,
349+ native_step_fn = lambda m : m .feedUnitType .factor
350+ if m .feedUnitType != Unit .CUPS else 1 ,
351+ method = lambda d , m , v : d .set_manual_feed_quantity (Unit .convert_feed (
352+ v , m .feedUnitType if m .feedUnitType != Unit .CUPS else None , None )),
353+ value_fn = lambda d , m : Unit .convert_feed (d .manual_feed_quantity , None , m .feedUnitType , True )
354+ if m .feedUnitType != Unit .CUPS else d .manual_feed_quantity ,
355+ extra_state_attributes_fn = lambda d , m : {"portion" : d .manual_feed_quantity }| {
326356 unit .symbol : Unit .convert_feed (d .manual_feed_quantity , None , unit , True )
327357 for unit in VALID_UNIT_TYPES [API .FEED_UNIT ] if unit
328358 },
329359 ),
330360 PetLibroNumberEntityDescription [SpaceSmartFeeder ](
331- key = "manual_feed_quantity_grain " ,
332- translation_key = "manual_feed_quantity_grain " ,
333- name = "Manual Feed Quantity (Grain )" ,
361+ key = "manual_feed_quantity_portion " ,
362+ translation_key = "manual_feed_quantity_portion " ,
363+ name = "Manual Feed Quantity (Portion )" ,
334364 icon = "mdi:scale" ,
335365 device_class = NumberDeviceClass .POWER_FACTOR ,
336366 native_max_value = 12 ,
337367 native_min_value = 1 ,
338368 method = lambda device , m , value : device .set_manual_feed_quantity (value ),
339369 value_fn = lambda device , m : device .manual_feed_quantity ,
340- extra_state_attributes_fn = lambda d , m : {"grain " : d .manual_feed_quantity }| {
370+ extra_state_attributes_fn = lambda d , m : {"portion " : d .manual_feed_quantity }| {
341371 unit .symbol : Unit .convert_feed (d .manual_feed_quantity , None , unit , True )
342372 for unit in VALID_UNIT_TYPES [API .FEED_UNIT ] if unit
343373 },
0 commit comments