Vim, ze je to trochu s krizkem po funuse, ale prave jsem resil jak si sam definovat (ne)pritomnost a nakonec jsem to prolomil. Tak kdyby to nekdo do budoucna prece jen hledal jak to udelat ciste s HA + Node-red...
Edit:
Nakonec jsem zjistil ze mi funguje jeste jednoduzsi zpusob, pro jistotu tu necham i puvodni postup.
V podstate jsem zjistil, ze staci jen bod 5) tedy v node-red zavolat device_tracker:see a ve zprave vyplnit dev_id dle libosti a location_name home nebo not_home a funguje to taky.
Po prvnim zavolani se objevi jako entita device_tracker.XXXXX v HA a je vyhledatelny a pak ho staci priradit jako device k osobe a vesele volat pritomnost a nepritomnost. Konfigurak known_devices.yaml si HA zalozi a predvyplni sam (mozna az po restartu, ted si nejsem jistej).
Kód: Vybrat vše
[{"id":"41a31c53ac270af7","type":"inject","z":"61887e85976c86da","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"data\":{\"state\":\"home\",\"attributes\":{}}}","payloadType":"json","x":550,"y":3040,"wires":[["3aa9c4670eef71db"]]},{"id":"827ca400926ab480","type":"api-call-service","z":"61887e85976c86da","name":"","server":"","version":5,"debugenabled":false,"domain":"device_tracker","service":"see","areaId":[],"deviceId":[],"entityId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":870,"y":3080,"wires":[[]]},{"id":"3aa9c4670eef71db","type":"function","z":"61887e85976c86da","name":"home","func":"msg.payload = {\n data: {\n dev_id: \"fake_device\",\n location_name: \"home\"\n }\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":710,"y":3040,"wires":[["827ca400926ab480"]]},{"id":"8a33ae3a5bd2f0e7","type":"function","z":"61887e85976c86da","name":"not_home","func":"msg.payload = {\n data: {\n dev_id: \"fake_device\",\n location_name: \"not_home\"\n }\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":3120,"wires":[["827ca400926ab480"]]},{"id":"63a9c2ea943a2227","type":"inject","z":"61887e85976c86da","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"data\":{\"state\":\"home\",\"attributes\":{}}}","payloadType":"json","x":550,"y":3120,"wires":[["8a33ae3a5bd2f0e7"]]}]
Puvodni postup:
[spoiler]1) do stejneho adresare kde je configuration.yaml HA pridat known_devices.yaml
2) do nej pridat zaznam pro "fake" zarizeni viz
https://www.home-assistant.io/integrati ... evicesyaml ja tam hodil name, mac a track
Kód: Vybrat vše
fake_device:
name: fake_device
mac: AA:AA:AA:AA:AA:AA
track: true
3) restart HA
4) v HA by se mel objevevit novy tracker device a ten pridat k osobe
5) v node red pak staci zavolat call service - device_tracker:see a nastavit v location_name bud home nebo not_home
Tady jsem se nejvic pral s 2 problemy. Zaprve se mi nedarilo spravne poslat data expression primo z call service, takze jsem to obesel funcion nodem ve kterem ji sestavim predem (nejsem programator, jen lepic kodu, treba mi nekdo rekne jak to ma byt spravne) a zadruhe mi nefungovalo volani na dev_name takze nakonec volam misto toho fake MAC adresu, proto jsem ji i pridal do known_devices i kdyz neni normalne mandatory
Tady jednoduchy priklad k importu do node red
Kód: Vybrat vše
[{"id":"41a31c53ac270af7","type":"inject","z":"61887e85976c86da","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"data\":{\"state\":\"home\",\"attributes\":{}}}","payloadType":"json","x":570,"y":3040,"wires":[["3aa9c4670eef71db"]]},{"id":"827ca400926ab480","type":"api-call-service","z":"61887e85976c86da","name":"","server":"","version":5,"debugenabled":false,"domain":"device_tracker","service":"see","areaId":[],"deviceId":[],"entityId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":870,"y":3080,"wires":[[]]},{"id":"3aa9c4670eef71db","type":"function","z":"61887e85976c86da","name":"Home","func":"msg.payload = {\n data: {\n mac: \"AA:AA:AA:AA:AA:AA\",\n host_name: \"fake_device\",\n location_name: \"home\"\n }\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":710,"y":3040,"wires":[["827ca400926ab480"]]},{"id":"8a33ae3a5bd2f0e7","type":"function","z":"61887e85976c86da","name":"not home","func":"msg.payload = {\n data: {\n mac: \"AA:AA:AA:AA:AA:AA\",\n host_name: \"fake_device\",\n location_name: \"not_home\"\n }\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":700,"y":3120,"wires":[["827ca400926ab480"]]},{"id":"63a9c2ea943a2227","type":"inject","z":"61887e85976c86da","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"data\":{\"state\":\"home\",\"attributes\":{}}}","payloadType":"json","x":570,"y":3120,"wires":[["8a33ae3a5bd2f0e7"]]}]
[/spoiler]