ik probeer een rest api met json uit te lezen .
https://api.helium.io/v1/hotspots/name/broad-crimson-penguin
(deze hotspot is een voorbeeld, niet perse iets met mij te maken)
ik heb de volgende twee opties geprobeerd:
#poging 1
code:
1
2
3
4
5
6
| rest:
- resource: https://api.helium.io/v1/hotspots/name/broad-crimson-penguin/
scan_interval: 10
sensor:
- name: "broad-crimson-penguin status"
value_template: " {{ value_json.data.0.status.online }} " |
ik krijg de waarde Unknown en deze foutmelding in de logs
code:
1
| Template variable error: 'value_json' is undefined when rendering '{{ value_json.data.0.status.online }}' |
#poging 2:
code:
1
2
3
4
5
6
7
8
9
| rest:
- resource: https://api.helium.io/v1/hotspots/name/broad-crimson-penguin/
scan_interval: 10
sensor:
- name: "broad-crimson-penguin status"
value_template: "OK"
json_attributes_path: "$.data.0"
json_attributes:
- status |
dit voegt geen attributes toe aan de sensor
als ik een stukje van de api output in Developer Tools -> Template zet, en werkt die value_json wel.
code:
1
2
3
4
5
6
7
8
9
10
11
12
| {% set value_json=
{"data":
[
{"lng":4.7853345,"lat":51.5673355345,"timestamp_added":"2021-12-10T13:20:12.000000Z"
,"status":
{"timestamp":"2022-01-06T19:41:00.046000Z","online":"online"
,"listen_addrs":["/ip4/84.204.123.211/tcp/44158"]
,"height":1128275
}
}
] } %}
{{value_json.data.0.status.online }} |
result: online
iemand een idee? aangezien ik een specifiek stukje uit de api opvraag zou de limiet van 255 niet moeten gelden. die limiet zou ook niet moeten gelden voor attributes.
[
Voor 6% gewijzigd door
indexample op 13-01-2022 09:22
]