Gästblogg: Att skicka meddelanden från sin hemautomation till en telefon

Med en handfull Raspberry Pi:s, ett växande 1-wirenät med en uppsjö med sensorer på diverse ställen i och utanför huset, vindmätare, elmätare, fjärrvärmemätare, regnmätare, GPIO med övervakning av dörrkontakter, IP-kameror, etc. inser jag att jag vill kunna skicka statusmeddelanden till min telefon när det händer saker och jag är på jobbet eller bortrest.
T.ex. att matarvattnet från fjärrvärmenätet eller husets radiatorvatten är för kallt jämfört med yttertemperaturen eller att någon garageport eller ytterdörr lämnats öppen/olåst.
Jag sökte o fastnade för Pyrowl o Prowl – ett Python-skript samt en iOS app för några futtiga dollar som nära nog ger mig ”SMS”-möjlighet från mina Raspberrys till min iPhone/iPad.
För er som kör Android heter appen ”NMA” (Notify My Android) och den erbjuder i princip samma funktion (5 meddelanden per dag är gratis med NMA, sen måste man betala en slant för att få skicka fler per dag).
Här är källartikeln och källorna till det jag nedan kommer att beskriva:
- http://www.raspberrypi.org/forums/viewtopic.php?f=37&t=10422
- http://prowlapp.com/
- https://github.com/babs/pyrowl/
Så till saken!
- Skapa ett konto på www.prowlapp.com
Generera en API-nyckel (ett långt hexadecimalt tal som kan jämföras med ett GSM nummer som man skickar SMS-till)
- Ladda hem Prowl till din iOS enhet(er)
Den kostar några kronor men jag kan i sammanhanget nämna att jag sedan min första iPhone 2008 totalt köpt fyra (4) betalappar där Prowl är en av dem!
Logga in Prowl-appen på den API-nyckel du nyss skapade.
Prova att skicka ett testtelegram med ”Add Message” knappen – det skall nu plinga till i din iPad eller iPhone! - Ladda hem Pyrowl-pythonskriptet (pyrowl.py) från github.com till din Raspberry
- Lägg upp skriptet på valfri katalog och ställ in accessrättigheterna
Jag valde /usr/local/lib/python och då blir filnamnet:
/usr/local/lib/python/pyrowl.py
För att tillåta exekvering till alla kör detta kommando:
Du behöver göra ”sudo” när du skapar katalogen och sätter exekveringsrättigheter.
$ sudo chmod 555 /usr/local/lib/python/pyrowl.py
Om du väljer en annan katalog måste du justera PYTHONPATH i nästa steg. - Skapa hjälpskript nr 1 ”/usr/local/bin/sendprowlmessage” mha en editor, t.ex. nano
- Skapa hjälpskript nr 2 ”/usr/local/bin/sendprowlmessage.py”.
Observera att korrekt indentering (mellanslag i början på en rad) är A&O i Python!
- Gör ”chmod 555” även på dessa två skript
$ sudo chmod 555 usr/local/bin/sendprowlmessage
$ sudo chmod 555 usr/local/bin/sendprowlmessage.py
- Prova att skicka ett testmeddelande, t.ex.
$ sendprowlmessage "Hej" "Test" 2
- Nu är det bara att börja anropa sendprowlmessage från din husautomation!
- Jag har lagt in ”startup” och ”shutdown” meddelanden från alla mina Raspberry-enheter så att jag får kännedom om de stänger ned eller startar om (IP-adressen skickas med startup-meddelandet vilket kan vara bra).
Här nedan ett exempel på startupscript: /etc/init.d/sendhelloprowlmessage.sh
(med ”awk” kommandot på slutraden trollar jag till så att outputen från ifconfig blir minimal, ethernetdevice + ip-adress.)
- Den som tittat lite noggrannare ser att jag loggar alla sändningsförsök på en logfil i Raspberryn: /var/log/sendprowlmessage.log
PS. Den som inte vill skriva av all kommandotext kan ladda hem en ZIP-fil här: skript.zip (714 nedladdningar)
/flyvert
2 svar till Gästblogg: Att skicka meddelanden från sin hemautomation till en telefon
Alternativ för att skicka meddelande till telefoner och andra prylar:
https://pushover.net/ samt https://www.pushbullet.com/
Båda har api:er för att skicka meddelanden. Pushbullet kan även skicka bilder om det skulle vara intressant.
Pushbullet är nice! Det har jag testat lite 😀