Přidat komentář

WhatsApp - notifikace zdarma

Obrázek uživatele Michal Novotný
Napsal uživatel Michal Novotný dne Květen 19, 2024 - 10:52pm.
Groups audience
Úvodní obrázek
SmartHome WhatsApp notifikace OpenHAB, Home Assistant
Zatím nehodnoceno
Kategorie
Obsah

Rádi byste dostávali notifikace z chytré domácnosti formou zpráv do WhatsApp messengeru? Ačkoliv z tohoto messengeru nejsme nadšení, mnoho lidí jej používá a je zbytečné instalovat jiný pouze kvůli chytrému domu. Pro daný kontakt je pak možné nastavit specifické zvonění, takže budete hned vědět, že zpráva přišla z vašeho domu. Našli jsme možnost, jak toto využívat bez poplatku. Jmenuje se CallMeBot...

 

Hardware

Pi-Home - pokud nemáte, viz sekci Jak na to

Software

OpenHAB nebo Home Assistant

 

 

Úvodem

Pro notifikaci využijeme služby CallMeBot (https://www.callmebot.com). Pak ukážeme jak nasatvit pravidlo v OpenHAB nebo HomeAssistant.

 

Jak na to

Přidejte si do telefonu nový kontakt, pojmenujte jej jako "Můj domov" nebo "OpenHAB" nebo jakkoliv chcete. Přiřaďte číslo +34 621 062 163 a uložte. Otevřete WhatsApp a odešlete přes něj na toto číslo zprávu "I allow callmebot to send me messages" (bez uvozovek). Měla by vám do 2 minut přijít zpráva, která bude obsahovat více informací včetně API kódu, který náz zajímá dále.

WhatsApp OpenHAB

 

 Nyní můžeme přejít do vašeho smarthome a naprogramovat notifikace.

 

OpenHAB

V OpenHAB přejděte do Settings->Rules. Přidejte nové pravidlo. V tomto příkladě budeme chtít zasílát notifikaci o možném požáru z chytrého Shelly smoke senzoru. Nastavíme podmínku When pokud se náš senzor přepne na ON (nastavení Shelly senzoru v OpenHAB viz Shelly a OpenHAB

OpenHAB Rule WhatsApp

Do Then vyberte Script -> RuleDSL. Vložte zde následující skript:

val original = "Hlasim_pozar_v_dome"
val output = sendHttpGetRequest("https://api.callmebot.com/whatsapp.php?phone=420xxxxxxxxx&apikey=yyyyyyy&text=" + original)

 

Nahraďte xxx vašim telefonním číslem a vložte místo yyy vaše API. Uložte a zmáčkněte test (ikona Play). Měla by vám přijít zpráva. Jednoduché, nicméně zatím funguje pouze text bez mezer a diakritiky.

 

Chci diakritiku, české znaky a mezeru!

Ok, musíme ale text dekódovat pro URL, tedy nahradit mezeru znakem %20 atd. Než psát převodovou tabulku manuálně (i to jde) je snažší využít Transformation services. Ujistěte se, že máte v bindings nainstalovaný addon Javascript Transformation. Pokud ano, přejděte do složky openHAB-conf/transform (buď přes terminál nebo přes sambu) a vytvořte soubor urlEncode.js s následujícím obsahem:

(function(input) {
    return encodeURIComponent(input);
})(input)

Uložte soubor.

Vaše pravidlo v Rules pak upravte do tvaru:

val original = "Hlásím požár v domě!?"
val encoded = transform("JS", "urlEncode.js", original)
val output = sendHttpGetRequest("https://api.callmebot.com/whatsapp.php?phone=420xxxxxxxxx&apikey=yyyyyyy&text=" + encoded)

 

Nyní se bude jakýkoliv text dekódovat pro URL.

Home Assistant

Vytvořte v configuration.yaml RESTful notifikaci

# Example configuration.yaml entry 
notify:
- name: WhatsApp
platform: rest
resource: https://api.callmebot.com/whatsapp.php
data:
source: HA
phone: 420xxxxxxxxx #enter your phone number here
apikey: yyyyyyy #enter your apikey here (see Setup above)

 

Pak použijte v UI:

 

Na závěr

Takto je možné provádět různé notifikace a přidat zde API na další telefony. Když kliknete ve WhatsApp messengery na název v kontaktu v otevřeném chatu, můžete pro daný chat nastavit custom zvonění, hlasitost, vibrace což se hodí hlavně pokud vám má chodit Alarm z vašeho domu. Viz záložka Notifications

WhatsApp specifické zvonění chat