I need to get data from this JSON obtained from the modem to track 5G and 4G signal strength
The output JSON (from http://192.168.12.1/TMI/v1/gateway?get=signal):
{"signal":{"generic":{"apn":"FBB.HOME","roaming":false,"registration":"registered","hasIPv6":true},"4g":{"eNBID":10000,"cid":2211,"sinr":-18,"rsrp":-98,"rsrq":-12,"rssi":-66,"bands":["b66"],"bars":4},"5g":{"gNBID":0,"cid":0,"sinr":40,"rsrp":-103,"rsrq":-12,"rssi":-117,"bands":["n41"],"bars":3}}}
My code:
sensor:
# TMobile Home Internet Sensors
- platform: rest
resource: "http://192.168.12.1/TMI/v1/gateway?get=signal"
scan_interval: 20
method: GET
name: tmhi_radio_status
json_attributes:
- generic
- 4g
- 5g
- platform: template
sensors:
tmhi_5g_snr:
friendly_name: "TMHI 5G SNR"
value_template: >
{{ state_attr('sensor.tmhi_radio_status', '5g') [0] ["sinr"] }}
unit_of_measurement: "dB"
tmhi_5g_rsrp:
friendly_name: "TMHI 5G RSRP"
value_template: >
{{ state_attr('sensor.tmhi_radio_status', '5g') [0] ["rsrp"] }}
unit_of_measurement: "dBm"
tmhi_5g_rsrq:
friendly_name: "TMHI 5G RSRQ"
value_template: >
{{ state_attr('sensor.tmhi_radio_status', '5g') [0] ["rsrq"] }}
unit_of_measurement: "dB"
tmhi_5g_pci:
friendly_name: "TMHI 5G PCI"
value_template: >
{{ state_attr('sensor.tmhi_radio_status', '5g') [0] ["cid"] }}
tmhi_4g_snr:
friendly_name: "TMHI 4G SNR"
value_template: >
{{ state_attr('sensor.tmhi_radio_status', '4g') [0] ["sinr"] }}
unit_of_measurement: "dB"
tmhi_4g_rsrp:
friendly_name: "TMHI 4G RSRP"
value_template: >
{{ state_attr('sensor.tmhi_radio_status', '4g') [0] ["rsrp"] }}
unit_of_measurement: "dBm"
tmhi_4g_rsrq:
friendly_name: "TMHI 4G RSRQ"
value_template: >
{{ state_attr('sensor.tmhi_radio_status', '4g') [0] ["rsrq"] }}
unit_of_measurement: "dB"
tmhi_4g_pci:
friendly_name: "TMHI 4G PCI"
value_template: >
{{ state_attr('sensor.tmhi_radio_status', '4g') [0] ["cid"] }}
I can see the sensors created in the entities, but says entity unavailable.