person.state

Automatizace pomocí vývojového nástroje pro vizuální programování. Původně vyvinuto společnost IBM.
Odpovědět
Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 1604
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 144 poděkování
Dostal poděkování: 193 poděkování
Kontaktovat uživatele:

person.state

Příspěvek od Lion® »

Pokouším se změnit person.state s Node-Red, něco mám ale bude potřeba to trochu vylepšit...

Kód: Vybrat vše

[{"id":"80d92fec.77881","type":"ha-api","z":"7382695f.277ef8","name":"","server":"1c1ccadc.716d65","debugenabled":false,"protocol":"http","method":"post","path":"/api/states/person.jakub","data":"","dataType":"json","location":"payload","locationType":"msg","responseType":"json","x":430,"y":600,"wires":[["9785e926.6471d"]]},{"id":"c7c5337.6f546d","type":"inject","z":"7382695f.277ef8","name":"state.home","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"data\":{\"state\":\"home\",\"attributes\":{}}}","payloadType":"json","x":300,"y":600,"wires":[["80d92fec.77881"]]},{"id":"9785e926.6471d","type":"debug","z":"7382695f.277ef8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":570,"y":600,"wires":[]},{"id":"1c1ccadc.716d65","type":"server","name":"Dubák HAss","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
person_state_home.zip
(701 bajtů) Staženo 32 x
________________
🍻 Přispěj a získej přístup do obsahu fóra pro dárce. :thx:
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box

Galerie realizací

Uživatelský avatar
Lion®
Administrátor fóra
Administrátor fóra
Příspěvky: 1604
Registrován: 28. září 2020, 14:07
Bydliště: podkrkonoší
Dal poděkování: 144 poděkování
Dostal poděkování: 193 poděkování
Kontaktovat uživatele:

Re: person.state

Příspěvek od Lion® »

Tak nakonec jsem použil Nmap Tracker
________________
🍻 Přispěj a získej přístup do obsahu fóra pro dárce. :thx:
Oficiální sada s Raspberry Pi 4B/4GB, černá +Argon NEO Raspberry Pi 4 Case
Patriot Burst 2.5" SATA SSD 120GB + AXAGON EE25-XA6 ALINE box

Galerie realizací

Row_CZ
Nováček na fóru
Nováček na fóru
Příspěvky: 1
Registrován: 11. prosinec 2022, 02:09
Dostal poděkování: 1 poděkování

Re: person.state

Příspěvek od Row_CZ »

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]

Odpovědět

Zpět na „Node-Red“