How to: Pimatic Presence Sensor with OpenWRT en

By Whatson on Monday 18 July 2016 10:40 - Comments are closed
Category: -, Views: 2.229

http://i.imgur.com/Vk0ReFo.png

You can already detect devices on your network with pimatic using the pimatic-ping plugin, but this has one big drawback: phones do not reply to such ping requests if they are in standby.

So the best way is to login to your router and check if the phone is connected to your wifi network. With OpenWRT on your router this is fairly easy to realise.

Assuming you have Pimatic and OpenWRT already running on your Raspberry Pi and router, the first step is to install the shell-execute plugin from the pimatic plugin menu.

After the plugin is done installing, go to the [installed plugins] tab and press [activate].

Next press Restart in the top right corner to restart Pimatic.

Now we need to create a key such that the root user of your raspberry pi can login to your OpenWRT router without using a password.

Open the terminal (OSX and Linux) or open Putty (Windows) and ssh into your raspberry pi:
ssh pi@raspberrypi.lan
(you can also use the ip address instead if you prefer that)

use sudo su to become root (as pimatic is running as root)
pi@raspberrypi:~ $ sudo su

next use:
ssh-keygen -t dsa
to generate a new keypair (just press enter when asked for input)

Copy the key to your OpenWRT router:
scp ~/.ssh/id_dsa.pub root@192.168.1.1:/tmp

Login to your OpenWRT router (from your Raspberry):
root@raspberrypi:/home/pi# ssh root@192.168.1.1

You will see something like this:
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 BARRIER BREAKER (14.07, r42258)
 -----------------------------------------------------
  * 1/2 oz Galliano         Pour all ingredients into
  * 4 oz cold Coffee        an irish coffee mug filled
  * 1 1/2 oz Dark Rum       with crushed ice. Stir.
  * 2 tsp. Creme de Cacao
 -----------------------------------------------------
root@OpenWrt:~# 

Copy the key to the autorized_keys file:
cd /etc/dropbear
cat /tmp/id_*.pub >> authorized_keys
chmod 0600 authorized_keys

leave your OpenWRT router by using:
exit

test if you do not need a password anymore by logging in to your OpenWRT router:
ssh root@192.168.1.1
(you might be prompted for a password for the last time)

leave your OpenWRT router by using:
exit

Go to your browser and go to http://192.168.1.1/cgi-bin/luci

Have a look at the DHCP leases table on this page and copy the mac address of the device you want to monitor (in lower case!)

Go back to your terminal window (still as root) and enter:
ssh root@192.168.1.1 'iw dev wlan0 station dump | grep -c XX:XX:XX:XX:XX:XX' | tee
Where XX:XX:XX:XX:XX:XX is the mac address you just copied (in lower case!)
This should return a 1 if the device is connected to wifi or a 0 if it's not.

Now create a new Shell Presence Sensor in Pimatic:
Go to: http://raspberrypi.lan/#devices-page

And create a new device with the following settings:
http://i.imgur.com/ZnawvD8.png

Pick a name and id, select ShellPresenceSensor as class, enable command and enter the ssh command from above, select the interval at which Pimatic should check for your phone in milliseconds (=seconds x 1000) You want to be easy on this as Pimatic has to login to your router each time. 30-60 seconds should be fine.

press [save] and you can start creating rules with your new presence sensor!

Let's encrypt! (update)

Door Whatson op dinsdag 9 februari 2016 23:28 - Reacties (22)
Categorie: -, Views: 5.645

https://letsencrypt.org/images/letsencrypt-logo-horizontal.svg

Inmiddels wel bekend bij de meeste tweakers, maar hoe krijg je dit gratis ssl certificaat op je shared hosting?

Ik zelf host mijn website bij Antagonist maar deze heeft geen ingebouwde ondersteuning voor Let's Encrypt dus je zult het certificaat handmatig moeten installeren.
Beveilig je website met SSL. Tijdelijk met 30% korting! SSL leidt het verkeer van en naar je website over een beveiligde HTTPS-verbinding. Dit herken je aan het groene slotje in de browser. Dankzij SSL weet je zeker dat een website veilig en vertrouwd is. Klik hier voor de aanschaf van SSL. Of hier voor meer informatie en een uitgebreide uitleg.
Antagonist probeert je op dit moment een SSL certificaat aan te smeren, dus ondersteuning zal wel niet snel komen.

Voordat je aan de slag kunt heb je toegang nodig tot een pc met Linux (Ubuntu, debian, etc)

Je hebt ten eerste GIT nodig, als je dit nog niet hebt kun je het installeren met:
# ubuntu & debian
apt-get install git
# centos & redhat
yum install git


Vervolgens clone je de letsencrypt code:
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt


Omdat je niet het letsencrypt programma op je shared hosting kunt draaien hebben we manual mode nodig:
./letsencrypt-auto --server https://acme-v01.api.letsencrypt.org/directory certonly --agree-tos -a manual


Vervolgens start de setup.
Vul je email adres in, en alle domeinen waarvoor je SSL wilt

Ga akkoord als de setup vraagt of je IP adres mag worden gelogd
2d2r-Screen Shot 2016-02-09 at 23.13.33.png

vervolgens zie je het volgende voor elk (sub) domein waarvoor je het certificaat wilt laten gelden:
Make sure your web server displays the following content at                     
http://jouw.domein.nl/.well-known/acme-challenge/MxCIzpzD3YYrvWKJBGj[...]PD2g before continuing:

MxCIzpzD3[...]bAMatWiDklp_CCI23E

Zorg dat de tekenreeks beschikbaar is op de locatie die de setup aangeeft bijvoorbeeld door de tekst in een index.html bestand te zetten in de http://jouw.domein.nl/.well-known/acme-challenge/MxCIzpzD3YYrvWKJBGj[...]PD2g map.

Als alles goed gaat zie je het volgende:
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/jouw.domein.nl/fullchain.pem. Your cert will
   expire on 2016-05-09. To obtain a new version of the certificate in
   the future, simply run Let's Encrypt again.
 - If you like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Je keys staan in /etc/letsencrypt/live/jouw.domein.nl/
Je hebt eventueel sudo nodig om de map te benaderen

Ga naar directadmin > advanced > ssl certificate
http://i.sver.re/xph9-le-da-1.png
Selecteer 'Paste a pre-generated certificate and key' en kopieer de inhoud van 'cert.pem' en direct daar onder de inhoud van 'privkey.pem' en klik op [save].

Als dit gelukt is, ga naar home, en opnieuw naar dezelfde ssl certificate pagina
Scroll helemaal naar beneden en klik op 'Click Here to paste a CA Root Certificate'. Selecteer 'CA Cert.' en kopieer de inhoud van chain.pem in het tekstvak.
http://i.sver.re/x5t3-le-da-2.png
Druk opnieuw op [save]

Als het goed is staat SSL nu aan voor je domein, je kunt eventueel het volgende nog controleren:
Ga naar "Domain Setup". Klik op je domein naam. Selecteer Secure SSL en druk op Save. Onder private_html setup voor domein.nl selecteer 'Use a symbolic link from private_html to public_html - allows for same data in http and https'. Klik opnieuw op [save]

7bck-Screen Shot 2016-02-09 at 23.25.51.png

Update 14/2:
Antagonist heeft SSH toegang aangekondigd. Dit betekent dat zeer waarschijnlijk de automatische installatie nu ook werkt. Ik heb dit persoonlijk nog niet geprobeerd, maar als je meer wilt weten over de automatische installatie,
Klik hieronder op de link naar het originele artikel.

Edit2: Het lijkt erop dat de oude Basic, Unlimited en Premium pakketten dit niet ondersteunen. Alleen de nieuwe Slim, Plus en Pro kunnen dit.

naar: https://raymii.org/s/articles/Lets_Encrypt_Directadmin.html