Skip to content

Commit 20e5153

Browse files
authored
Merge pull request #116 from bosco688/feature/support_node_type_sensor
Add binary sensor support for node type 'SENSOR'
2 parents 122cd4f + b100212 commit 20e5153

File tree

4 files changed

+10
-1
lines changed

4 files changed

+10
-1
lines changed

custom_components/meshcore/binary_sensor.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,9 @@ def _update_from_contact_data(self, contact: Dict[str, Any]):
499499
elif node_type == NodeType.ROOM_SERVER: # Room Server
500500
self._attr_icon = "mdi:forum" if is_fresh else "mdi:forum-outline"
501501
self._attr_name = f"{self.contact_name} (Room Server)"
502+
elif node_type == NodeType.SENSOR: # Sensor
503+
self._attr_icon = "mdi:smoke-detector-variant" if is_fresh else "mdi:smoke-detector-variant-off"
504+
self._attr_name = f"{self.contact_name} (Sensor)"
502505
else:
503506
# Default icon if type is unknown
504507
self._attr_icon = "mdi:help-network"
@@ -556,6 +559,9 @@ def extra_state_attributes(self) -> Dict[str, Any]:
556559
elif node_type == NodeType.ROOM_SERVER:
557560
attributes["node_type_str"] = "Room Server"
558561
icon_file = "room_server-green.svg" if self.is_on else "room_server.svg"
562+
elif node_type == NodeType.SENSOR:
563+
attributes["node_type_str"] = "Sensor"
564+
icon_file = "sensor-green.svg" if self.is_on else "sensor.svg"
559565
else:
560566
attributes["node_type_str"] = "Unknown"
561567
icon_file = None
Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading

docs/docs/contacts.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ Each contact sensor includes detailed attributes:
260260
- `pubkey_prefix` - First 12 characters
261261
- `adv_name` - Advertised name
262262
- `added_to_node` - Whether contact is added (true/false)
263-
- `type` - Node type (0=Client, 1=Repeater, 2=Room Server)
263+
- `type` - Node type (1=Client, 2=Repeater, 3=Room Server, 4=Sensor)
264264
- `last_advert` - Unix timestamp of last advertisement
265265
- `last_advert_formatted` - ISO formatted timestamp
266266
- Location data (if available): `latitude`, `longitude`
@@ -271,6 +271,7 @@ Sensors show different icons based on node type and state:
271271
- **Client**: `mdi:account` (fresh) / `mdi:account-off` (stale)
272272
- **Repeater**: `mdi:radio-tower` (fresh) / `mdi:radio-tower-off` (stale)
273273
- **Room Server**: `mdi:forum` (fresh) / `mdi:forum-outline` (stale)
274+
- **Sensor**: `mdi:smoke-detector-variant` (fresh) / `mdi:smoke-detector-variant-off` (stale)
274275
- **Unknown**: `mdi:help-network`
275276

276277
### Entity Pictures

0 commit comments

Comments
 (0)