Sterowanie Supla przez Siri

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Kaowiec
Posts: 78
Joined: Wed Jul 26, 2017 8:15 am
Location: Czernichów

Post

W oczekiwaniu na oficjalną implementację applowskiego HomeKit w Supla proponuję rozwiązanie pośrednie :)

Co nam potrzeba i co uzyskamy?
Potrzebny jest zainstalowany i uruchomiony w naszej sieci wewnętrznej "Homebridge". Jest to niezwykle prosty i łatwy w instalacji most łączący za pomocą wtyczek różne urządzenia IoT z HomeKit. Dla Homebridge dostępnych jest wiele wtyczek. Ja użyłem łatwej w konfiguracji homebridge-http, którą "połączyłem" z Supla Scripts.

Jak to zrobić?
Instalujemy Homebridge (najlepiej na raspberry - działa pod gołym raspibianem, wystarczy zainstalować node... zesztą tu jest link gdzie wszystko jest opisane: https://github.com/nfarina/homebridge/w ... spberry-Pi), instalujemy wtyczkę (homebridge-http) i tworzymy plik config.json.
Teraz pora skonfigurować Supla Scripts, choć może na temat konfiguracji Supla Scripts się nie będę wcale rozpisywał, bo tu sami fachowcy :)
Nadmienię tylko, że ze Skryptów wyciągamy jedynie url do uruchomienia sceny, którą potem ma nam wykonać Siri. Zauważcie, że Siri czyli HomeKit może wykonać albo całą sceną (np.: wyłącz żyrandol), jaką zaplanujemy, albo włączy lub wyłączy pojedyncze urządzenie pracujące dla Supla (np.: pojedyncze żarówki w żyrandolu) - robicie jak i co chcecie :)

link do homebridge: https://github.com/nfarina/homebridge
link do pluginu: https://www.npmjs.com/package/homebridge-http

Na koniec moje obserwacje.
Supla jest niezawodna. Zawsze robi to czego się od niej oczekuje. Ale to już wiecie. Supla z Siri działa nieźle ale...zobaczycie sami... generalnie fajnie jest powiedzieć Hej Siri "I'm Home" albo "Hej Siri Watch TV" i nie dotykać żadnego guzika.

Brakuje odczytu stanu urządzeń ze skryptów (albo są, ale nie wiem gdzie).
Zresztą tu będę się mocno uśmiechać do Wojtka @fracz z pytaniem: czy jest dostępny adres stanu urządzenia? Coś w stylu 192.168.0.123/api/scenes/public/0fdac581-s36e-gddc-5182-6a21895cf2ce_ON (OFF, temp21, 33%, itd) bardzo by się przydały :)
Gdyby były stany użądzeń to połączenie z Apple HomeKit wyszłoby lepiej i ładniej niż rozwiązania z Autmomate na Androida, choć na chwilę obecną działa wszystko jako Lights lub Switch.
User avatar
nowy1
Posts: 339
Joined: Fri Jul 01, 2016 11:51 am
Location: Warszawa

Post

lub zainstalowac na synology ja tak mam zrobione https://github.com/oznu/docker-homebrid ... n-Synology
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Kaowiec wrote: Sun Feb 11, 2018 4:16 pm czy jest dostępny adres stanu urządzenia? Coś w stylu 192.168.0.123/api/scenes/public/0fdac581-s36e-gddc-5182-6a21895cf2ce_ON (OFF, temp21, 33%, itd) bardzo by się przydały :)
Możesz zrobić sobie "scenę" która udostępnia stan wybranego urządzenia w odpowiedzi na request. Czy nie o to chodzi?
User avatar
nowy1
Posts: 339
Joined: Fri Jul 01, 2016 11:51 am
Location: Warszawa

Post

Kaowiec wrote: Sun Feb 11, 2018 4:16 pm W oczekiwaniu na oficjalną implementację applowskiego HomeKit w Supla proponuję rozwiązanie pośrednie :)

Co nam potrzeba i co uzyskamy?
Potrzebny jest zainstalowany i uruchomiony w naszej sieci wewnętrznej "Homebridge". Jest to niezwykle prosty i łatwy w instalacji most łączący za pomocą wtyczek różne urządzenia IoT z HomeKit. Dla Homebridge dostępnych jest wiele wtyczek. Ja użyłem łatwej w konfiguracji homebridge-http, którą "połączyłem" z Supla Scripts.

Jak to zrobić?
Instalujemy Homebridge (najlepiej na raspberry - działa pod gołym raspibianem, wystarczy zainstalować node... zesztą tu jest link gdzie wszystko jest opisane: https://github.com/nfarina/homebridge/w ... spberry-Pi), instalujemy wtyczkę (homebridge-http) i tworzymy plik config.json.
Teraz pora skonfigurować Supla Scripts, choć może na temat konfiguracji Supla Scripts się nie będę wcale rozpisywał, bo tu sami fachowcy :)
Nadmienię tylko, że ze Skryptów wyciągamy jedynie url do uruchomienia sceny, którą potem ma nam wykonać Siri. Zauważcie, że Siri czyli HomeKit może wykonać albo całą sceną (np.: wyłącz żyrandol), jaką zaplanujemy, albo włączy lub wyłączy pojedyncze urządzenie pracujące dla Supla (np.: pojedyncze żarówki w żyrandolu) - robicie jak i co chcecie :)

link do homebridge: https://github.com/nfarina/homebridge
link do pluginu: https://www.npmjs.com/package/homebridge-http

Na koniec moje obserwacje.
Supla jest niezawodna. Zawsze robi to czego się od niej oczekuje. Ale to już wiecie. Supla z Siri działa nieźle ale...zobaczycie sami... generalnie fajnie jest powiedzieć Hej Siri "I'm Home" albo "Hej Siri Watch TV" i nie dotykać żadnego guzika.

Brakuje odczytu stanu urządzeń ze skryptów (albo są, ale nie wiem gdzie).
Zresztą tu będę się mocno uśmiechać do Wojtka @fracz z pytaniem: czy jest dostępny adres stanu urządzenia? Coś w stylu 192.168.0.123/api/scenes/public/0fdac581-s36e-gddc-5182-6a21895cf2ce_ON (OFF, temp21, 33%, itd) bardzo by się przydały :)
Gdyby były stany użądzeń to połączenie z Apple HomeKit wyszłoby lepiej i ładniej niż rozwiązania z Autmomate na Androida, choć na chwilę obecną działa wszystko jako Lights lub Switch.

a jak odczytujesz status zapalonej lampki ?
Kaowiec
Posts: 78
Joined: Wed Jul 26, 2017 8:15 am
Location: Czernichów

Post

fracz wrote: Sun Feb 11, 2018 7:43 pm
Kaowiec wrote: Sun Feb 11, 2018 4:16 pm czy jest dostępny adres stanu urządzenia? Coś w stylu 192.168.0.123/api/scenes/public/0fdac581-s36e-gddc-5182-6a21895cf2ce_ON (OFF, temp21, 33%, itd) bardzo by się przydały :)
Możesz zrobić sobie "scenę" która udostępnia stan wybranego urządzenia w odpowiedzi na request. Czy nie o to chodzi?
Dzięki za odpowiedź.
To by załatwiło pewnie sprawę, ale chyba nie umiem zrobić sceny, która wyłącznie poda stan.
Robię to tak: dodaję scenę, wybieram kanał z listy, zaznaczam odpowiedź (czyli otwieram nawias) ustawiam "załączone" jako 1 a "wyłączone" jako 0, kasuję kanał i zapisuję.
I teraz mam tak - jesli kanał jest załączony to jest OK - dostaję odpowiedź "1", ale jeśli jest wyłączony, to odpowiedź jest albo "0", albo nic (NaN w Homebridge).
Co robię źle?
nowy1 wrote: Mon Feb 12, 2018 3:20 pm a jak odczytujesz status zapalonej lampki ?
:) przy starcie homebridge stan się ustawia ładnie. I jest aktualny do póki używam Homekita. Jak ktoś przestawi coś ręcznie lub w appce Supla to już nie bangla dobrze. Ale mam nadzieję, że uda się to rozkminić z Waszą pomocą :)
______________________
edit: po doczytaniu instrukcji :) ;) już mam status prawie zawsze: "switchHandling": "realtime", trzeba ustawić na "switchHandling": "yes", w pliku config.json (Homebridge)
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Kaowiec wrote: Mon Feb 12, 2018 10:52 pm Robię to tak: dodaję scenę, wybieram kanał z listy, zaznaczam odpowiedź (czyli otwieram nawias) ustawiam "załączone" jako 1 a "wyłączone" jako 0, kasuję kanał i zapisuję.
I teraz mam tak - jesli kanał jest załączony to jest OK - dostaję odpowiedź "1", ale jeśli jest wyłączony, to odpowiedź jest albo "0", albo nic (NaN w Homebridge).
Krok z dodaniem i usunięceim kanału jest zbędny. Możesz dodać scenę zaweirającą tylko odpowiedź.

Od wersji 2.7 skryptów jeśli w odpowiedzi wstawisz po prostu:

Code: Select all

{{123|on|bool:1,0}}
To dostaniesz 1 gdy kanał jest włączony a 0 gdy nie.

Przed v2.7 faktycznie wartości "negatywne" zamieniały się na jakieś śmieszne rzeczy.
User avatar
nowy1
Posts: 339
Joined: Fri Jul 01, 2016 11:51 am
Location: Warszawa

Post

fracz wrote: Mon Feb 12, 2018 11:52 pm
Kaowiec wrote: Mon Feb 12, 2018 10:52 pm Robię to tak: dodaję scenę, wybieram kanał z listy, zaznaczam odpowiedź (czyli otwieram nawias) ustawiam "załączone" jako 1 a "wyłączone" jako 0, kasuję kanał i zapisuję.
I teraz mam tak - jesli kanał jest załączony to jest OK - dostaję odpowiedź "1", ale jeśli jest wyłączony, to odpowiedź jest albo "0", albo nic (NaN w Homebridge).
Krok z dodaniem i usunięceim kanału jest zbędny. Możesz dodać scenę zaweirającą tylko odpowiedź.

Od wersji 2.7 skryptów jeśli w odpowiedzi wstawisz po prostu:

Code: Select all

{{123|on|bool:1,0}}
To dostaniesz 1 gdy kanał jest włączony a 0 gdy nie.

Przed v2.7 faktycznie wartości "negatywne" zamieniały się na jakieś śmieszne rzeczy.

czy mogę jakoś odczytać temperaturę i wilgotność bym dostał taką odpowiedzi

"The /weather endpoint will return a json looking like this"

Code: Select all

{
    "temperature": 25.8,
    "humidity": 38
}
https://www.npmjs.com/package/homebridg ... e-humidity
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Code: Select all

{"temperature": {{123|temperature|number:1}}, "humidity": {{123|humidity|number:1}}}
User avatar
nowy1
Posts: 339
Joined: Fri Jul 01, 2016 11:51 am
Location: Warszawa

Post

fracz wrote: Tue Feb 13, 2018 7:52 am

Code: Select all

{"temperature": {{123|temperature|number:1}}, "humidity": {{123|humidity|number:1}}}

dziękuje działa :)
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Zabijacie mi serwer chłopacy. Zaraz będzie ban jak nic :shock:
ban.jpg
Ruch związany jest ze scenami przypisanymi do kont kaowiec i utopia, podejrzewam że to Wy. Ten wasz sofcik odpytuje o stan kilka razy na sekundę. Od 10 rano zrobił to już prawie 30 tys razy :roll:
You do not have the required permissions to view the files attached to this post.

Return to “Pomysły i koncepcje”