Wyzwolenie czegoś z zewnątrz - jak to zrobić? - Wersja do druku +- Forum Tiny Control Solution (https://forum.tinycontrol.pl) +-- Dział: LanKontroler - sprzęt i wersje wsadów, problemy, zastosowanie (https://forum.tinycontrol.pl/forumdisplay.php?fid=3) +--- Dział: LanKontroler V3.5 (https://forum.tinycontrol.pl/forumdisplay.php?fid=28) +--- Wątek: Wyzwolenie czegoś z zewnątrz - jak to zrobić? (/showthread.php?tid=1458) |
Wyzwolenie czegoś z zewnątrz - jak to zrobić? - TomekWaw - 08-26-2020 Cześć. Czy LK 3.5 ma jakieś przychodzące API (http / tcp / udp)? Mam pewne wyzwanie i nie wiem jak to zrobić, może macie jakieś pomysły. Poniżej krótki, ale precyzyjny opis sytuacji: Mam LK 3.5 oraz podłączony do niego GSM Kontroler V4 (po porcie szeregowym). Cały zestaw używam jako "powiadamiacz alarmowy". Przykładowo, rozwarcie kontaktronu na INPD1 powoduje wysłanie SMSa1 - jest to zrobione przez zdarzenia. Ale INPD1 jest głównie używane w Home Assistancie, który otrzymuje stan tego kontaktronu przez MQTT. Home Assistant jest również interfejsem "systemu alarmowego", tzn. decyduje kiedy "alarm" jest uzbrojony lub nie. Chciałbym więc wysyłanie powiadomień SMS z GSM Kontrolera uzależnić od stanu uzbrojenia tego alarmu. Jak to zrobić? Stan uzbrojenia alarmu HA mógłbym bezproblemowo przekazać do LK za pomocą Node-RED, w niemal dowolny możliwy sposób. Ale nie mogę się doszukać żadnego API, które byłoby udostępnione przez LK3.5. Czy on takie ma? A jeśli nie, to jak takie coś zrealizować? Albo inaczej i prościej: Jak wysłać przez zewnętrzne narzędzie sieciowe (u mnie: Node-RED) SMSa z GSM Kontrolera V4 podłączonego po procie szeregowym do LK3.5? RE: Wyzwolenie czegoś z zewnątrz - jak to zrobić? - notek - 08-27-2020 (08-26-2020, 03:06 PM)TomekWaw napisał(a): Cześć. Trochę przyznam to zagmatwane. W jaki sposób HA uzyskuje stan kontraktonu przez MQTT? Czy używa LK czy GSM kontrolera ? Co do ostatniego pytania - nie bardzo rozumiem jak GSMv4 komunikuje sie z LK po porcie szeregowym? Przy nakładce GSM do LK (czyli połaczenie po UART, nie USB) podłaczonej bezpośrednio i obsługiwanej bezpośrednio z LK to jest oczywiście proste (i tańsze) Lub nowy GSM v4.2 ma funcję ( i konfiguracje przez www serwera) do wysyłania SMSów lub mqtt od razu po zmianie stanu wejscia cyfrowego. Zresztą sam LK z nakładką GSM ma te same funkcjie - można wysłać SMSa i na dobre (korzystając z impulse time) mqtt zaraz po zdarzeniu. Co do HA to jest już nasze rozszerzenie ale działające po http, więc jeśli ma być bardzo szybka rekacja średnio się nadaje. RE: Wyzwolenie czegoś z zewnątrz - jak to zrobić? - TomekWaw - 08-27-2020 (08-27-2020, 01:10 PM)notek napisał(a): W jaki sposób HA uzyskuje stan kontraktonu przez MQTT? Hej. Dzięki za odpowiedź. Ja niestety nie montowałem tego i nawet nie widziałem na oczy, widzę ten setup tylko zdalnie. Nie mam absolutnej pewności, czy mamy tu LK3.5 + GSM Kontroler, czy raczej jakąś nakładkę GSM. Uwzględnij proszę tę uwagę w moim dalszym opisie sytuacji. >W jaki sposób HA uzyskuje stan kontraktonu przez MQTT? > Czy używa LK czy GSM kontrolera ? No więc z tego co wiem i widzę, to kontaktron jest podłączony do INPD1 na LK. W panelu LK w zakładce "Klient MQTT" jest ustawione wysyłanie do brokera MQTT. Następnie mam zdefiniowaną w HA subskrypcję tematu w ten sposób: Kod: binary_sensor: > Co do ostatniego pytania - nie bardzo rozumiem jak GSMv4 komunikuje sie z LK po porcie szeregowym? Szukając jak LK wysyła SMSy, znalazłem coś w zakładce "Port szeregowy". Mam tam u góry wybrany GSM SIM800L, poniżej zdefiniowany numer odbiorcy oraz treści SMSów od 1 do 4. Domyślam się więc, że to właśnie jest komunikacja z GSM kontrolerem (lub nakładką GSM - tego nie wiem). Te SMSy są obecnie wykorzystywane na LK w zakładce "Zdarzenia" w kolumnie "Działanie". Tak więc mam tu aktualnie zdefiniowane zdarzenie na INPD1, które wysyła SMS1. I to działa, ale bezwarunkowo. A ja chciałbym wysłanie tego SMSa uzależnić od stanu uzbrojenia alarmu na HA. Ponieważ stan INPD1 już mam w HA/Node-RED, to jedyne czego potrzebuje, to możliwość wysłania z zewnątrz SMSa. (Wówczas sobie oczywiście wyłączę te zdarzenia bezwarunkowe). Więc, czy mogę jakoś wysłać za pomocą mojego setupu SMSa, przez wywołanie HTTP (ew. UDP lub TCP)? RE: Wyzwolenie czegoś z zewnątrz - jak to zrobić? - notek - 08-28-2020 (08-27-2020, 04:24 PM)TomekWaw napisał(a):(08-27-2020, 01:10 PM)notek napisał(a): W jaki sposób HA uzyskuje stan kontraktonu przez MQTT? RE: Wyzwolenie czegoś z zewnątrz - jak to zrobić? - TomekWaw - 08-29-2020 Hej, jest tu jakaś odpowiedź której nie widzę, czy coś się zgubiło? RE: Wyzwolenie czegoś z zewnątrz - jak to zrobić? - notek - 09-01-2020 To wszytko jest jasne, jest to LK z nakładką GSM. Można wysłać z HA zapytanie http przełączające np wyjście out1 (nigdzie nie podłączone) I w eventach zrobić podwójny warunek - zależny od wejścia INPD i od stanu OUT (uzbrojenia alarmu). PRzy okazji ja mam pytanie, bo nie bawiłem się zakładką alarmu w HA -jak sie tam podpiąć załączenie na wysłanie http? Będę wdzięczny za podpowiedź. RE: Wyzwolenie czegoś z zewnątrz - jak to zrobić? - TomekWaw - 09-01-2020 (09-01-2020, 06:40 PM)notek napisał(a): To wszytko jest jasne, jest to LK z nakładką GSM. Ok, przełączenie przez http wyjścia out1 i podwójny warunek byłoby OK. Ale pytanie jak to przełączyć przez http? Jaki url, komenda itd? Bo nigdzie na to nie znalazłem żadnej dokumentacji. Podpowiesz? Jeśli chodzi o uzbrajanie alarmu, to ja to robię tylko przez panel. HTTP API w HA nie używam, używam go tylko przez Node-RED via websocket. I uzbrajanie powinno dać się zrobić przez węzeł call service, mniej więcej tak jak tu: https://community.home-assistant.io/t/payload-data-to-arm-alarm-call-service/129977 tylko że pewnie jednak trzeba podać ten PIN jakoś w data (jak w komentarzu niżej). RE: Wyzwolenie czegoś z zewnątrz - jak to zrobić? - notek - 09-03-2020 Przełączanie out-a przez zapytanie http jest następujące: Obecna wersja pozwala na sterowanie poprzez komendy http z paska przeglądarki lub innego urządzenia, służą do tego poniższe komendy: IP/outs.cgi?out=xxxxx – przełącza określone wyjście na stan przeciwny od obecnego IP/outs.cgi?outx=x – wyłącza lub załącza określone wyjście Gdy włączona jest autoryzacja hasłem, komendy maja następującą postać: user:password@IP/outs.cgi?out=xxxxx user:password@IP/outs.cgi?outx=x Przykłady: http://192.168.1.100/outs.cgi?out=0 – zmienia stan out0 na przeciwny (ON/OFF) http://192.168.1.100/outs.cgi?out0=0 – wyłącza out0 http://192.168.1.100/outs.cgi?out0=1 – załącza out0 Faktycznie było to w instrukcji, ale po rozdzielenie na czesc HWD i SOFTWARE (online) się zagubiło. Jest to opisane w starje instrukcji do LK3.0 w archiwum. |