Forum Smart'ny Dom

Telegram we współpr...
 

Telegram we współpracy z Domoticzem i nie tylko z nim  

  RSS
isom
 isom
(@isom)
Szef Moderator Zasłużony dla Forum, Donator 2019

Jakiś czas temu, kiedy to Adrian odrobinę krytycznie odniósł się do serwera  domoticz, a raczej do braku info o stanie modułu  i  o zdalnym potwierdzeniu wykonania akcji, zacząłem kombinować, jak w prosty sposób zrealizować takie powiadomienie.

Jak to często bywa chciałem osiągnąć jedno, a przy okazji zrodziło się drugie.

Do rzeczy, ponieważ powiadomienia drogą e-mail, dochodzą, ale wiąże się to z większym, lub mniejszym opóźnieniem   szukałem innej bez kosztowej drogi i tak natrafiłem na Telegram.

Telegram  to taki  WhatsApp, czyli komunikator, ale posiada on możliwość tworzenia swoich prywatnych  API Bot-ów, dzięki czemu możemy takiego bota spersonalizować i nakazać mu wysyłanie do nas wiadomości o ważnych zdarzeniach w naszym systemie automatyki.

Całą instalację Telegramu i tworzenie własnego bota pominę, gdyż wszystko można znaleźć na stronie https://telegram.org/

Ważne jest aby po stworzeniu swojego bota uzyskać dwa  ważne parametry

Pierwszy to HTTP API TOKEN  , drugi to CHAT ID.

Dla użytkowników Domoticza wszystko jest opisane na stronie

https://www.domoticz.com/wiki/Telegram_Bot#Creating_Your_Bot_and_Getting_Your_Token

Po uzyskaniu „tokena” i chat ID  możemy sobie tworzyć adresy URL z dowolną wiadomością tekstową wyglądające np. tak

https://api.telegram.org/bot[TOKEN]/sendMessage?chat_id=12345678&text=dowolny tekst

Oczywiście nie tylko użytkownicy domoticza mogą to wykorzystać.

Kolejną fajną rzeczą jest możliwość otrzymywania oprócz wiadomości tekstowych, zrzutów z kamery – er, tak zwanych snapshotów.

Tworząc prosty skrypt wyglądający np. tak

Nazwijmy go sobie dowolnie np. brama.sh

#!/bin/sh
SnapFile="/var/tmp/image.jpg"

# Get snapshot via Domoticz server
wget -O $SnapFile "http://adresIP kamery/cgi-bin/snapshot.cgi"

# Send Telegram message with image
curl -s -X POST "https://api.telegram.org/bot[TOKEN]/sendMessage?chat_id=12345678&text=Otwarta brama"
curl -s -X POST "https://api.telegram.org/bot[TOKEN]/sendPhoto?chat_id=12345678" -F photo="@$SnapFile"

# Remove Image
/bin/rm $SnapFile

 

Co robi powyższy skrypt?

  • Najpierw robi fotkę z widoku naszej kamery
  • Zapisuje ją w plikach tymczasowych
  • Wysyła wiadomość tekstową o treści ”Otwarta brama” a zaraz po niej wysyła zrobioną fotkę
  • Usuwa fotkę z plików tymczasowych

Po wykonaniu powyższego skryptu w ciągu kilku sekund otrzymujemy wiadomości od naszego bota, wyglądające tak jak na poniższym foto.

 

Otwarta brama to jedno, ale wykorzystując „zdolności” naszego bota można np. mając zwykły domofon, lub tylko dzwonek przy furtce, zrobić sobie coś ala wideodomofon.

Montujemy kamerę IP obserwującą furtkę

Pod przycisk dzwonka, lub domofonu podpinamy np. ESP 01 (najmniejszy), zmiana stanu GPIO 0 w ESP uruchamia skrypt . Jak nie ma nas w domu dostajemy po krótkiej chwili wiadomość, że ktoś dzwoni i fotkę z widokiem kto to jest .

Jeżeli to znajomy, który przyszedł z piwem trochę za wcześnie, to dzwonimy do niego lub wysyłamy sms, prosząc, żeby zaczekał na tarasie, otwieramy mu za pomocą GPIO 2 tego samego ESP furtkę i szybko jedziemy do domu, bo najlepsze piwo, to zimne piwo.

Macie inne pomysły, to piszcie, na pytania i wątpliwości, też postaram się w miarę możliwości odpowiedzieć.

PS 1 Żeby do ESP 01 wgrać firmware AFE T5 i wykorzystać je do tego otwierania furtki, muszę poprosić adriana , żeby zwiększył zakres czasowy podtrzymania, bo dwie sekundy dla rygla w furtce to tak zdąży albo nie, 4 sekundy było by super.

Najlepiej  moim zdaniem zrobić od 0,5 sek do 4

PS 2 Taki zrzut z kamery oczywiście daje się powiększyć

 
Więc do wersji z obserwacją furtki można kamerę zamontować na budynku jeżeli odległość nie jest zbyt duża.
 
 
Cytuj
Dodane : 24/08/2018 11:26 am
muchac35 polubień
adrian
(@adrian)
Prezes Zasłużony dla Forum, Patron Strony

@isom, przy następnej okazji zwiększe czas podtrzymania przekaźnika do 9999msek. Tyle mogę tam chyba na maksa dać.

OH2+AFE

OdpowiedzCytuj
Dodane : 03/09/2018 8:33 pm
isom polubień
Raku
 Raku
(@raku)
Nowy

@isom mógłbyś opisać konfiguracje telegramu uzyskałem HTTP API TOKEN ale coś z CHAT ID nie mogę sobie poradzić

Już sobie poradziłem nie było pytania

OdpowiedzCytuj
Dodane : 06/09/2018 8:19 am
wo__jo
(@wo__jo)
Młodzik

Ja używam Pushbullet i polecam ale niestety nie rozgryzłem jak wysyłać wiadomości na kilka telefonów. Można to zrobić w Telegramie ??

OdpowiedzCytuj
Dodane : 05/10/2018 12:47 am
isom
 isom
(@isom)
Szef Moderator Zasłużony dla Forum, Donator 2019

W Telegramie jest to jak najbardziej możliwe , do tego między innymi został stworzony , tworzysz sobie grupę osób do , której dodajesz bota , który ma wysyłać powiadomienia i on wysyła do wszystkich członków grupy.

OdpowiedzCytuj
Dodane : 05/10/2018 6:46 pm
adrian polubień
wo__jo
(@wo__jo)
Młodzik

Wcale tak łatwo nie było skonfigurować Telegram dla kilku użytkowników za snapshotem, ale udało się i działa całkiem fajnie. Pewnie dlatego, że działanie tego komunikatora jest trochę inne niż tych których do tej pory używałem.

W skrypcie który jest w pierwszym poście trzeba odkomentować ostatnią linię żeby plik się kasował.

OdpowiedzCytuj
Dodane : 09/10/2018 10:09 am
isom
 isom
(@isom)
Szef Moderator Zasłużony dla Forum, Donator 2019

@wo__jo dzięki za zwrócenie uwagi na ostatnią linię w skrypcie , moje niedopatrzenie już poprawiłem.

Nie wiem z czym miałeś problemy ale metody są dwie zawsze można stworzyć dla każdego  użytkownika oddzielnego bota i rozbudować skrypt o takie same wpisy z innym tokenem , lub dodać bota do grupy i wysyłać do wszystkich

 

OdpowiedzCytuj
Dodane : 09/10/2018 5:42 pm
muchac35
(@muchac35)
Majster

Tak pomyślałem że mam bramę zwykle otwartą zdarza sie ze ktoś wchodzi bez dzwonienia

jeśli by podłączyć pod czujniki fotokomórki i gdy tylko zostanie przerwana linia podczerwieni w bramie to zdjęcie by sie wysyłało

ktoś pewnie napisze że miałbym zdjęcia wszystkich piesków z okolicy które się wałęsają heheheh

Ale ja dopiero zaczynam z domoticzem więc to odległa przyszłość

OdpowiedzCytuj
Dodane : 08/10/2019 1:11 am
muchac35
(@muchac35)
Majster
Dodane przez: @isom

 

Ważne jest aby po stworzeniu swojego bota uzyskać dwa  ważne parametry

Pierwszy to HTTP API TOKEN  , drugi to CHAT ID.

 
 

HTTP API TOKEN już mam ale nie wiem gdzie jest CHAT ID

podpowiesz gdzie go wyszukać?

OdpowiedzCytuj
Dodane : 09/10/2019 2:36 pm
isom
 isom
(@isom)
Szef Moderator Zasłużony dla Forum, Donator 2019

Jak utworzyłeś już BOTA to w dowolnej przeglądarce wpisz https://api.telegram.org/botxxxxyxyxyxyxyxyxyxyxyxyxy/getUpdates

zamiast tych xyxyxy wstaw swój token zaraz po bot bez spacji . JSON powinien zwrócić coś w tym stylu

{„ok”: true, „result”: [{„update_id”: 939819607,
„message”: {„message_id”: 81, „from”: {„id”: 1234567, „first_name”: „Joe”, „last_name”: „Bloggs”, „username”: „jbloggs”}, „chat” :
{„id”: 1234567, „first_name”: „Joe”, „last_name”: „Bloggs”, „username”: „jbloggs”}, „date”: 1436104501, „text”: „\ / devices Study”}} , {"update_id": 939819608,
„message”: {„message_id”: 82, „from”: {„id”: 1234567, „first_name”: „Joe”, „last_name”: „Bloggs”, „username”: „jbloggs”}, „chat” :
{„id”: 1234567, „first_name”: „Joe”, „last_name”: „Bloggs”, „username”: „jbloggs”}, „date”: 1436104512, „text”: „\ / off 1”}} ]}

Gdzie to co zaznaczyłem będzie twoim Chat ID

OdpowiedzCytuj
Dodane : 09/10/2019 3:51 pm
muchac35
(@muchac35)
Majster
Dodane przez: @isom

Jak utworzyłeś już BOTA to w dowolnej przeglądarce wpisz https://api.telegram.org/botxxxxyxyxyxyxyxyxyxyxyxyxy/getUpdates

zamiast tych xyxyxy wstaw swój token zaraz po bot bez spacji . JSON powinien zwrócić coś w tym stylu

{„ok”: true, „result”: [{„update_id”: 939819607,
„message”: {„message_id”: 81, „from”: {„id”: 1234567, „first_name”: „Joe”, „last_name”: „Bloggs”, „username”: „jbloggs”}, „chat” :
{„id”: 1234567, „first_name”: „Joe”, „last_name”: „Bloggs”, „username”: „jbloggs”}, „date”: 1436104501, „text”: „\ / devices Study”}} , {"update_id": 939819608,
„message”: {„message_id”: 82, „from”: {„id”: 1234567, „first_name”: „Joe”, „last_name”: „Bloggs”, „username”: „jbloggs”}, „chat” :
{„id”: 1234567, „first_name”: „Joe”, „last_name”: „Bloggs”, „username”: „jbloggs”}, „date”: 1436104512, „text”: „\ / off 1”}} ]}

Gdzie to co zaznaczyłem będzie twoim Chat ID

coś chyba źle robię - czy to na czerwono dobrze odczytuje?

w domoticz wpisałem key i to id

a czy coś trzeba ustawiać w telegramie na telefonie?

{"ok":true,"result":[{"update_id":20382896,
"message":{"message_id":1,"from":{"id":532242320,"is_bot":false,"first_name":"Tom","last_name":"ting"},"chat":{"id":-317204237,"title":"ticz","type":"group","all_members_are_administrators":true},"date":1570627620,"group_chat_created":true}},{"update_id":20382897,
"message":{"message_id":2,"from":{"id":532246350,"is_bot":false,"first_name":"Tom","last_name":"ting"},"chat":{"id":-317204237,"title":"ticz","type":"group","all_members_are_administrators":true},"date":1570627629,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}},{"update_id":20382898,
"message":{"message_id":3,"from":{"id":532246350,"is_bot":false,"first_name":"Tom","last_name":"ting","language_code":"pl"},"chat":{"id":5555650,"first_name":"Tom","last_name":"Sting","type":"private"},"date":1570627728,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}},{"update_id":20382899,
OdpowiedzCytuj
Dodane : 09/10/2019 8:17 pm
isom
 isom
(@isom)
Szef Moderator Zasłużony dla Forum, Donator 2019

W telefonie musisz mieć uruchomiony czat z Botem u mnie Bot nazywa się Domoticz  https://drive.google.com/file/d/12tA7WsaeJRyf_GQ67kVWHzHj5P94-qYm/view?usp=sharing

ale z tego co widzę to ty nie aktywowałeś żadnego bota przeczytaj sobie dokładnie 

https://www.domoticz.com/wiki/Telegram_Bot#Creating_Your_Bot_and_Getting_Your_Token

musisz wysłać wiadomość tekstową do bota zanim wyślesz tą komendę przez przeglądarkę

OdpowiedzCytuj
Dodane : 09/10/2019 8:33 pm
muchac35
(@muchac35)
Majster
Dodane przez: @isom

W telefonie musisz mieć uruchomiony czat z Botem u mnie Bot nazywa się Domoticz  https://drive.google.com/file/d/12tA7WsaeJRyf_GQ67kVWHzHj5P94-qYm/view?usp=sharing

ale z tego co widzę to ty nie aktywowałeś żadnego bota przeczytaj sobie dokładnie 

https://www.domoticz.com/wiki/Telegram_Bot#Creating_Your_Bot_and_Getting_Your_Token

musisz wysłać wiadomość tekstową do bota zanim wyślesz tą komendę przez przeglądarkę

wysyłam wiadomość a pierwsza wiadomość to była klik na START i wysłało się /start

co mogę robić źle?

zrobiłen nowego bota i mam nowy token i tak:

{"ok":true,"result":[{"update_id":42356133,
"message":{"message_id":2,"from":{"id":511116350,"is_bot":false,"first_name":"Tom","last_name":"Sting","language_code":"pl"},"chat":{"id":531146350,"first_name":"Tom","last_name":"Sting","type":"private"},"date":1170647208,"text":"Ggg"}},{"update_id":41356634,
"message":{"message_id":3,"from":{"id":531146350,"is_bot":false,"first_name":"Tom","last_name":"Sting","language_code":"pl"},"chat":{"id":531111350,"first_name":"Tom","last_name":"Sting","type":"private"},"date":1170647223,"text":"Gfg"}}]}

OdpowiedzCytuj
Dodane : 09/10/2019 8:59 pm
isom
 isom
(@isom)
Szef Moderator Zasłużony dla Forum, Donator 2019

Po utworzeniu przez BotFather nowego bota musisz wysłać do tego nowego bota dowolną wiadomość tekstową np witaj bez żadnych znaków czy cudzysłowów , nie dostaniesz odpowiedzi , ale te wiadomości zostaną zapisane w skrzynce bota, żeby  odczytać te wiadomości wysyłasz z przeglądarki komendę którą już znasz i w zwrotce dostajesz ciąg bardzo podobny do tego , który wstawiłem , potem żeby sprawdzić wyślij przez przeglądarkę 

https://api.telegram.org/botxxxxxxxxxxxxxxxxxyxyxyxy/sendMessage?chat_id=abcbcbcbcb&text=Hello

i powinieneś dostać coś w tym stylu 

{„ok”: true, „result”: {„update_id”: 939819608,
„message”: {„message_id”: 82, „from”: {„id”: abcbcbcbcb, „first_name”: „Bot”, „last_name”: „Domoticz”, „username”: „Domoticz”}, „chat” :
{„id”: abcbcbccb, „first_name”: „Bot”, „last_name”: „Domoticz”, „username”: „Domoticz”}, „date”: 1436104512, „text”: „Hello from your bot”}}

Jak tego nie dostaniesz to coś jest nie tak

I najlepiej opisz krok po kroku co robisz bo trudno jest pomagać jak się nie wie co robisz po kolei

OdpowiedzCytuj
Dodane : 09/10/2019 9:33 pm
muchac35
(@muchac35)
Majster
 
ok zadziałało
wielkie dzięki za podpowiedzi!!!!!
OdpowiedzCytuj
Dodane : 09/10/2019 9:53 pm
Udostępnij:



Udostępnij
  • 1
    Share

Proszę Zaloguj Się lub Zarejestruj