@@ -54,7 +54,6 @@ class ProductSensor(MakerSpaceEntity, SensorEntity):
5454
5555 _attr_state_class = SensorStateClass .MEASUREMENT
5656 _attr_native_unit_of_measurement = "items"
57- _attr_icon = "mdi:package-variant"
5857
5958 def __init__ (
6059 self , coordinator : MakerSpaceCoordinator , entry : ConfigEntry , ean : str
@@ -74,6 +73,19 @@ def name(self) -> str:
7473 p = self ._product ()
7574 return p ["name" ] if p else f"Product { self ._ean } "
7675
76+ @property
77+ def icon (self ) -> str :
78+ p = self ._product ()
79+ if not p :
80+ return "mdi:help"
81+ if p ["category" ].lower () in ("drinks" , "drink" , "getränke" , "getränk" , "beer" , "bier" ):
82+ return "mdi:cup" if p ["stock" ] > 0 else "mdi:cup-off"
83+ if p ["category" ].lower () in ("snacks" , "snack" , "food" , "essen" ):
84+ return "mdi:peanut" if p ["stock" ] > 0 else "mdi:peanut-off"
85+ if p ["category" ].lower () in ("sweets" , "candy" , "süßigkeiten" ):
86+ return "mdi:candy" if p ["stock" ] > 0 else "mdi:candy-off"
87+ return "mdi:package-variant" if p ["stock" ] > 0 else "mdi:package-variant-remove"
88+
7789 @property
7890 def native_value (self ) -> int | None :
7991 p = self ._product ()
@@ -126,6 +138,13 @@ def name(self) -> str:
126138 t = self ._target ()
127139 return t ["name" ] if t else f"Target { self ._slug } "
128140
141+ @property
142+ def icon (self ) -> str :
143+ t = self ._target ()
144+ if not t :
145+ return "mdi:cash-sync"
146+ return "mdi:cash" if t ["balance" ] > 0 else "mdi:cash-off"
147+
129148 @property
130149 def native_value (self ) -> float | None :
131150 t = self ._target ()
0 commit comments