Esterownik i problem z pobranim encji do HA

Dobry wieczór

Od 2 lat korzystam z integracji REST, która po LANie wyciąga z mojego pieca potrzebne mi informacje do sterowania ogrzewaniem w domu.
Przykładowy sensor z config.yaml

sensor:
- platform: rest
    name: Fuel_flow
    resource: http://login:haslo@192.168.88.30/getregister.cgi?device=0&pl_fuel_flow
    value_template: '{{ value_json["cmd"]["device"]["reg"]["@v"] }}'
    unit_of_measurement: "kg/h"

Zrobiłem i zapomniałem o tym. Niedawno zauważyłem, że stany niektórych czujników w HA stały się unavailable. Kiedy to się popsuło, nie wiem. Pewnie któraś aktualizacja HA coś zmieniła. Jedno co mnie zastanawia, to encja z pieca mówiąca o temp. działa zawsze. Encja fuel_flow działa około 10 sekund po restarcie a poźniej już pokazuje unavailable.

panel

plik xml wyciągnięty ze sterownika:

<cmd status="ok">
<device id="0">
<reg vid="0" tid="pl_fuel_flow" v="3.20" min="0.00" max="0.00"/>
</device>
</cmd>

Raczej nie działa, w tych 10 sekundach oczekuje/odczytuje stan sensora po czym stwierdza że jest niedostępny.
Sprawdź czy ta encja nie zmieniła nazwy z przykład: sensor.fuel na sensor.fuel_2 w Narzędzia deweloperskie.

Jest tylko jedna. Nie dubluje mi encji

Poradziłeś sobie z brakiem informacji z czujników? Ja po ostatniej aktualizacji mam podobną sytuację. U mnie występuje brak informacji z czujników bezprzewodowych (temp. i wilgotność).

Przepraszam za zwłokę.

Tak poradziłem sobie. Okazało się że przyśpieszyli działanie HA i sterownik podaje jedynie sześć pierwszych odpowiedzi na zapytania REST. Jako że nie znam się w configuration yaml wszystko poszło do nodered. Wysyłam zapytanie, parsuję na XML wstawiam do sensora. Czami odpowiedź pieca konwertuję na język zrozumiały dla ludzi jak np. status pieca. Daje odpowiedź “1” co tłumaczę “rozpalanie”. Starałem się zachować nazwy starych sensorów, żeby karty i automatyzacje mi się nie blokowały z powodu braku czujnika.

Przykład kodu do importu

[{"id":"a90f899680664e7c","type":"http request","z":"b16d9f15de434a4f","name":"Fuel flow","method":"GET","ret":"txt","paytoqs":"ignore","url":"http://xxx:xxx@192.168.xx.xx/getregister.cgi?device=0&pl_fuel_flow","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":360,"y":80,"wires":[["b699de873472c705"]]},{"id":"b699de873472c705","type":"xml","z":"b16d9f15de434a4f","name":"","property":"payload","attr":"","chr":"","x":550,"y":80,"wires":[["496327937b6c0172"]]},{"id":"496327937b6c0172","type":"ha-sensor","z":"b16d9f15de434a4f","name":"","entityConfig":"51fb8bed8bae5b31","version":0,"state":"payload.cmd.device[0].reg[0].$.v","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":670,"y":80,"wires":[["abccca4714013e7d"]]},{"id":"7fbcd1d10f7419e9","type":"inject","z":"b16d9f15de434a4f","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":80,"wires":[["a90f899680664e7c"]]},{"id":"51fb8bed8bae5b31","type":"ha-entity-config","server":"c04b1a47.174838","deviceConfig":"","name":"Fuel_flow","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Fuel_flow"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":"kg/h"},{"property":"state_class","value":""}],"resend":true,"debugEnabled":false},{"id":"c04b1a47.174838","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]
1 polubienie