Forum Tiny Control Solution
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ść.
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?

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?
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.

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:
  - platform: mqtt
    name: Drzwi kontaktron 
    state_topic: "lk/inpd1"
    payload_on: "1"
    payload_off: "0"
    device_class: opening
I to działa mi bezproblemowo.

> 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?
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.

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:
  - platform: mqtt
    name: Drzwi kontaktron 
    state_topic: "lk/inpd1"
    payload_on: "1"
    payload_off: "0"
    device_class: opening
I to działa mi bezproblemowo.

> 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ć? - TomekWaw - 08-29-2020

Hej, jest tu jakaś odpowiedź której nie widzę, czy coś się zgubiło? Smile


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.
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ź.

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
t
ylko ż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.