1 (edytowany przez xury 2019-12-30 00:00:47)

Temat: Presence detection z hass.io nie chce działać

Chciałem sobie zrobić wykrywanie podłączonych urządzeń wg https://www.home-assistant.io/integrations/ubus
zrobiłem wszystko jak jest opisane: dodany wpis do user.json zainstalowane moduły itd.
Router to 1043nd z Lede
Gdy testuję tak dostaję:

root@LEDE:~# ubus  -v list file
'file' @26f9b347
        "read":{"path":"String","base64":"Boolean"}
        "write":{"path":"String","data":"String","append":"Boolean","mode":"Integer","base64":"Boolean"}
        "list":{"path":"String"}
        "stat":{"path":"String"}
        "md5":{"path":"String"}
        "exec":{"command":"String","params":"Array","env":"Table"}

Ale gdy próbuję już coś odczytać np:

ubus  call file read

Dostaję:

Command failed: Unknown error

2

Odp: Presence detection z hass.io nie chce działać

Bo nie podałeś ścieżki.

root@OpenWrt:/# ubus call file read '{"path":"/etc/passwd"}'
{
    "data": "root:x:0:0:root:/root:/bin/ash\ndaemon:*:1:1:daemon:/var:/bin/false\nftp:*:55:55:ftp:/home/ftp:/bin/false\nnetwork:*:101:101:network:/var:/bin/false\nnobody:*:65534:65534:nobody:/var:/bin/false\ndnsmasq:x:453:453:dnsmasq:/var/run/dnsmasq:/bin/false\np910nd:x:393:7:p910nd:/var/run/p910nd:/bin/false\nuser:x:1000:1000:user:/home/user:/bin/ash\ntransmission:x:224:224:transmission:/var/run/transmission:/bin/false\n"
}
root@OpenWrt:/# ubus call file read '{"path":"/etc/passwd","base64":true}'
{
    "data": "cm9vdDp4OjA6MDpyb290Oi9yb290Oi9iaW4vYXNoCmRhZW1vbjoqOjE6MTpkYWVtb246L3ZhcjovYmluL2ZhbHNlCmZ0cDoqOjU1OjU1OmZ0cDovaG9tZS9mdHA6L2Jpbi9mYWxzZQpuZXR3b3JrOio6MTAxOjEwMTpuZXR3b3JrOi92YXI6L2Jpbi9mYWxzZQpub2JvZHk6Kjo2NTUzNDo2NTUzNDpub2JvZHk6L3ZhcjovYmluL2ZhbHNlCmRuc21hc3E6eDo0NTM6NDUzOmRuc21hc3E6L3Zhci9ydW4vZG5zbWFzcTovYmluL2ZhbHNlCnA5MTBuZDp4OjM5Mzo3OnA5MTBuZDovdmFyL3J1bi9wOTEwbmQ6L2Jpbi9mYWxzZQp1c2VyOng6MTAwMDoxMDAwOnVzZXI6L2hvbWUvdXNlcjovYmluL2FzaAp0cmFuc21pc3Npb246eDoyMjQ6MjI0OnRyYW5zbWlzc2lvbjovdmFyL3J1bi90cmFuc21pc3Npb246L2Jpbi9mYWxzZQo="
}

Niektórych parametrów nie trzeba podawać, niektóre trzeba, zależy od polecenia. Całe moje easyconfig tak właśnie działa.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez xury 2019-12-30 17:53:03)

Odp: Presence detection z hass.io nie chce działać

Ok chyba już wiem co jest: HA próbuje podczepić się pod dane z Luci, a ja luci nie mam. Bo test znaleziony na forum ha przez curl nic nie zwraca:

curl -d '{ "jsonrpc": "2.0", "id": 1, "method": "call", "params": [ "00000000000000000000000000000000", "session", "login", { "username ": "root", "password": "mojehaslo"  } ] }'  http://192.168.22.1/ubus

Jak by ktoś mógł przetestować u siebie na routerze z Luci byłbym wdzięczny.
Oczywiście IP i hasło trzeba wstawić swoje.

4 (edytowany przez Cezary 2019-12-30 18:10:37)

Odp: Presence detection z hass.io nie chce działać

To nie jest luci. To zwykłe logowanie sesji w rpc/ubus. Masz niepotrzebną spację w username.

$ curl -d '{"jsonrpc":"2.0","id":1,"method":"call","params":[ "00000000000000000000000000000000","session","login",{"username":"root","password":"12345678"}]}'  http://192.168.11.1/ubus
{"jsonrpc":"2.0","id":1,"result":[0,{"ubus_rpc_session":"714d8a10d5ab31f5aa9b19bf673211d3","timeout":300,"expires":300,"acls":{"access-group":{"easyconfig":["read","write"],"unauthenticated":["read"]},"file":{"*":["*"]},"ubus":{"*":["*"],"session":["access","login"]}},"data":{"username":"root"}}]}

EDIT: teltonika to sensownie rozpisała, możesz poczytać: https://wiki.teltonika.lt/view/Monitoring_via_JSON-RPC

EDIT2: i jak masz ustawione w uhttpd  redirect_https '1' to dodaj do curla -k oraz zmień http:// na https://

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5 (edytowany przez xury 2019-12-30 18:29:24)

Odp: Presence detection z hass.io nie chce działać

Niestety dalej nic nie zwraca  więc podjąłem od dawna zwlekaną decyzję o aktualizacji routera do 19.07
EDIT
Zadziałało z ignorowaniem certyfikatu.

6

Odp: Presence detection z hass.io nie chce działać

Ale to działa identycznie w lede, openwrt 18.06 czy własnie 19.07. Od dawna ten interfejs się nie zmienił.
Masz w ogóle uhttpd zainstalowany?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7 (edytowany przez xury 2019-12-30 18:43:25)

Odp: Presence detection z hass.io nie chce działać

Ok. Dzięki Cezary miałem zainstalowane  Twój easyconfig, a w nim ustawione redirect_https '1'
Teraz już jest ok. Teraz sprawdzę w HA.
EDIT
Działa w HA. Zrobiło plik z know_devices.yaml
Jeszcze raz dzięki.

8

Odp: Presence detection z hass.io nie chce działać

Na zwykłych obrazach działa od strzała. Mimo wszystko wolę śledzić urządzenia przez luci, bo mam od razu nazwy urządzeń. Po ubus w nazwie mam adres mac.

Home: ZyXEL NBG6817 (OpenWrt)
NAS: HP ProLiant MicroServer Gen8 E3-1265L V2, 16 GB (PVE)

9

Odp: Presence detection z hass.io nie chce działać

A nazwy masz w /tmp/dhcp.leases.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10

Odp: Presence detection z hass.io nie chce działać

Jasne, ale musisz je ręcznie przepisać do HA. Jak ktoś ma kilkadziesiąt urządzeń w sieci to jest z tym trochę zabawy.

Home: ZyXEL NBG6817 (OpenWrt)
NAS: HP ProLiant MicroServer Gen8 E3-1265L V2, 16 GB (PVE)

11

Odp: Presence detection z hass.io nie chce działać

Ale wiesz ze możesz sobie zrobić skrypt który poda to w formie jakiej chcesz i wywołać ten skrypt przez rpc?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12

Odp: Presence detection z hass.io nie chce działać

Przeczytałem wątek i zacząłem się zastanawiać co jest optymalne
ssh hostname ubus call ..... (ssh z kluczem)
czy
prezentowane tutaj json-rpc

Bezpieczeństwo, ograniczenie uprawnień na plus dla json-rpc.
A co mniej obciąża router? Która wersja szybciej odpowiada?

13

Odp: Presence detection z hass.io nie chce działać

Chyba obie będą działały w podobnie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.