Hello HA community,
please help with sensor for reading values from XML file via rest platform
I would like to read the value <description> but on the “geocode” condition example <value>5202</value>
There is example of XML file (edited):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<alert xmlns="urn:oasis:names:tc:emergency:cap:1.2">
<identifier>2.49.0.0.203.0.CZ.210511104547.XOCZ50_OKPR_000135</identifier>
<sender>[email protected]</sender>
<sent>2021-05-11T12:45:47+02:00</sent>
<status>Actual</status>
<msgType>Update</msgType>
<scope>Public</scope>
<code>SIVS:CHMI/111/89/2018</code>
<code>HPPS</code>
<references>[email protected],2.49.0.0.203.0.CZ.210510091947.XOCZ50_OKPR_000134,2021-05-10T11:19:47+02:00</references>
<incidents></incidents>
<info>
<language>cs</language>
<category>Met</category>
<event>Silný vítr</event>
<responseType>Execute</responseType>
<responseType>Avoid</responseType>
<urgency>Immediate</urgency>
<severity>Moderate</severity>
<certainty>Likely</certainty>
<audience>veřejnost, HZS, web, Meteoalarm</audience>
<eventCode>
<valueName>SIVS</valueName>
<value>III.1</value>
</eventCode>
<onset>2021-05-11T12:30:30+02:00</onset>
<expires>2021-05-11T20:00:00+02:00</expires>
<senderName>ČHMÚ, Racko</senderName>
<description>Silný jihovýchodní až jižní vítr s nárazy nad 65 km/h.</description>
<instruction>Možná poškození stromů a lesních porostů, možné menší škody na budovách. Nebezpečí úrazu uvolněnými předměty a zlomenými větvemi, možné komplikace v dopravě. Doporučuje se zajistit okna, dveře, odstranit nebo upevnit volně uložené předměty, zabezpečit skleníky apod. Dbát zvýšené opatrnosti při pohybu venku a při řízení vozidel. Na horách omezit túry a nevydávat se zejména do hřebenových partií.</instruction>
<web>http://www.chmi.cz/files/portal/docs/meteo/om/zpravy/index.html</web>
<parameter>
<valueName>situation</valueName>
<value>Zvlněná studená fronta postupuje přes Německo zvolna k východu. Před ní k nám proudí velmi teplý vzduch od jihu.</value>
</parameter>
<parameter>
<valueName>eventEndingTime</valueName>
<value>2021-05-11T20:00:00+02:00</value>
</parameter>
<parameter>
<valueName>awareness_level</valueName>
<value>2; yellow; Moderate</value>
</parameter>
<parameter>
<valueName>awareness_type</valueName>
<value>1; Wind</value>
</parameter>
<area>
<areaDesc>Královéhradecký kraj (Dobruška, Náchod, Nové Město nad Metují, Rychnov nad Kněžnou)</areaDesc>
<geocode>
<valueName>CISORP</valueName>
<value>5202</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5209</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5211</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5213</value>
</geocode>
</area>
<area>
<areaDesc>Pardubický kraj (Česká Třebová, Hlinsko, Chrudim, Králíky, Lanškroun, Litomyšl, Moravská Třebová, Polička, Přelouč, Svitavy, Ústí nad Orlicí, Žamberk)</areaDesc>
<geocode>
<valueName>CISORP</valueName>
<value>5301</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5302</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5304</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5305</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5306</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5307</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5308</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5310</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5311</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5312</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5313</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>5315</value>
</geocode>
</area>
<area>
<areaDesc>Kraj Vysočina (Bystřice nad Pernštejnem, Havlíčkův Brod, Chotěboř, Jihlava, Moravské Budějovice, Náměšť nad Oslavou, Nové Město na Moravě, Telč, Třebíč, Velké Meziříčí, Žďár nad Sázavou)</areaDesc>
<geocode>
<valueName>CISORP</valueName>
<value>6101</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6102</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6104</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6105</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6106</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6107</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6108</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6112</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6113</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6114</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6115</value>
</geocode>
</area>
<area>
<areaDesc>Jihomoravský kraj</areaDesc>
<geocode>
<valueName>CISORP</valueName>
<value>6201</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6202</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6203</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6204</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6205</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6206</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6207</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6208</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6209</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6210</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6211</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6212</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6213</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6214</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6215</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6216</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6217</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6218</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6219</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6220</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>6221</value>
</geocode>
</area>
<area>
<areaDesc>Olomoucký kraj</areaDesc>
<geocode>
<valueName>CISORP</valueName>
<value>7101</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7102</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7103</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7104</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7105</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7106</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7107</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7108</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7109</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7110</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7111</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7112</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7113</value>
</geocode>
</area>
<area>
<areaDesc>Zlínský kraj</areaDesc>
<geocode>
<valueName>CISORP</valueName>
<value>7201</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7202</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7203</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7204</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7205</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7206</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7207</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7208</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7209</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7210</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7211</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7212</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>7213</value>
</geocode>
</area>
<area>
<areaDesc>Moravskoslezský kraj</areaDesc>
<geocode>
<valueName>CISORP</valueName>
<value>8101</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8102</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8103</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8104</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8105</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8106</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8107</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8108</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8109</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8110</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8111</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8112</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8113</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8114</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8115</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8116</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8117</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8118</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8119</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8120</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8121</value>
</geocode>
<geocode>
<valueName>CISORP</valueName>
<value>8122</value>
</geocode>
</area>
</info>
</alert>
Maybe Picture of XML:
Here’s my attempt at the code:
sensor:
- platform: rest
name: "Výstrahy počasí"
resource: http://192.168.10.10:8123/local/bourky.xml
value_template: >
{% set hodnota = value_json["alert"]["info"]["area"]["geocode"] | selectattr('value','eq','5202')| list %}
{{ hodnota["description"] }}
scan_interval: 3600
I’m sure it’s some stupid thing, but after 3 hours I’m out of ideas.
Thank you very much in advance