Add port mapping entry count sensor to upnp (#120263)

Add port mapping entry count sensor
This commit is contained in:
Steven Looman 2024-07-04 09:07:41 +02:00 committed by GitHub
parent 8a5b201d75
commit ac9c08f52c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 19 additions and 0 deletions

View File

@ -21,6 +21,7 @@ TIMESTAMP = "timestamp"
DATA_PACKETS = "packets"
DATA_RATE_PACKETS_PER_SECOND = f"{DATA_PACKETS}/{UnitOfTime.SECONDS}"
WAN_STATUS = "wan_status"
PORT_MAPPING_NUMBER_OF_ENTRIES_IPV4 = "port_mapping_number_of_entries"
ROUTER_IP = "ip"
ROUTER_UPTIME = "uptime"
CONFIG_ENTRY_ST = "st"

View File

@ -30,6 +30,7 @@ from .const import (
PACKETS_PER_SEC_SENT,
PACKETS_RECEIVED,
PACKETS_SENT,
PORT_MAPPING_NUMBER_OF_ENTRIES_IPV4,
ROUTER_IP,
ROUTER_UPTIME,
TIMESTAMP,
@ -48,6 +49,7 @@ TYPE_STATE_ITEM_MAPPING = {
ROUTER_IP: IgdStateItem.EXTERNAL_IP_ADDRESS,
ROUTER_UPTIME: IgdStateItem.UPTIME,
WAN_STATUS: IgdStateItem.CONNECTION_STATUS,
PORT_MAPPING_NUMBER_OF_ENTRIES_IPV4: IgdStateItem.PORT_MAPPING_NUMBER_OF_ENTRIES,
}
@ -254,4 +256,7 @@ class Device:
KIBIBYTES_PER_SEC_SENT: igd_state.kibibytes_per_sec_sent,
PACKETS_PER_SEC_RECEIVED: igd_state.packets_per_sec_received,
PACKETS_PER_SEC_SENT: igd_state.packets_per_sec_sent,
PORT_MAPPING_NUMBER_OF_ENTRIES_IPV4: get_value(
igd_state.port_mapping_number_of_entries
),
}

View File

@ -33,6 +33,9 @@
},
"packet_upload_speed": {
"default": "mdi:server-network"
},
"port_mapping_number_of_entries_ipv4": {
"default": "mdi:server-network"
}
}
}

View File

@ -33,6 +33,7 @@ from .const import (
PACKETS_PER_SEC_SENT,
PACKETS_RECEIVED,
PACKETS_SENT,
PORT_MAPPING_NUMBER_OF_ENTRIES_IPV4,
ROUTER_IP,
ROUTER_UPTIME,
WAN_STATUS,
@ -99,6 +100,12 @@ SENSOR_DESCRIPTIONS: tuple[UpnpSensorEntityDescription, ...] = (
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
),
UpnpSensorEntityDescription(
key=PORT_MAPPING_NUMBER_OF_ENTRIES_IPV4,
translation_key="port_mapping_number_of_entries_ipv4",
entity_category=EntityCategory.DIAGNOSTIC,
entity_registry_enabled_default=False,
),
UpnpSensorEntityDescription(
key=BYTES_RECEIVED,
translation_key="download_speed",

View File

@ -65,6 +65,9 @@
},
"wan_status": {
"name": "WAN status"
},
"port_mapping_number_of_entries_ipv4": {
"name": "Number of port mapping entries (IPv4)"
}
}
}