Notificatie deurbel op je smartphone (pimatic deel 3)

Door K-Jay op donderdag 21 januari 2016 20:38 - Reacties (28)
CategorieŽn: Home automation, Raspberry pi, Views: 9.084

Wil jij ook je collega's verbazen (of irriteren) met een dingdonggeluid op je telefoon als bij je thuis wordt aangebeld? Zoals beloofd in de laatste alinea van mijn vorige post, nu een verhaaltje over het ontvangen van een notificatie op je telefoon als bij jou de bel gaat.

schema deurbelnotificatie
De notificaties op mijn telefoon

Disclaimer enzo
In deze post beschrijf ik de dingen die ik heb gedaan om een notificatie van mijn deurbel op mijn telefoon te ontvangen. Waarschijnlijk heb jij een andere bel en een andere telefoon. Toch hoop ik dat je met onderstaande beschrijving een heel eind komt.
En ook nog even dit: in deze post ga ik ervan uit dat je pimatic gebruikt en hier wat basiskennis van hebt. Is dat nog niet het geval, lees dan mijn post over het installeren van pimatic.
Nu we toch bezig zijn: ik heb niet zo veel verstand van elektronica. Er zijn vast veel betere oplossingen dan de mijne en wellicht gebruik ik ergens een verkeerde term. Feel free to correct me!

Wat heb je nodig
  • Uiteraard een deurbel en een smartphone
  • Breadboardje
  • Optocoupler (ik gebruik een PC814 van Sharp)
  • Weerstand 560 Ohm
  • Raspberry pi met pimatic
Mijn situatie, het idee en de uitvoering
Mijn voordeurbel is een simpele dingdong die van spanning wordt voorzien door een 8V wisselstroomtransformator. Mijn idee was om in pimatic inzichtelijk te maken als er aangebeld wordt en om pimatic vervolgens een notificatie naar mijn telefoon te laten sturen. Dat hield dus in dat de stroomkring van de deurbel aan de Raspberry pi verbonden moest worden.
Dat het niet verstandig is om die 8V rechtstreeks met de GPIO-pinnen van de Raspberry pi te verbinden had zelfs ik met mijn beperkte kennis van elektronica wel door. Ik moest de stroomkringen galvanisch scheiden met een relais of een optocoupler. Het experimenteren heeft een paar optocouplers gekost (bestel er dus meerdere!), maar inmiddels draait mijn setup al enige maanden stabiel. Tijd om de uitvoering uit de doeken te doen.

Schematisch ziet mijn setup er als volgt uit:
schema deurbelnotificatie

Aansluiten
Plaats de optocoupler op het breadboard en verbind de bedrading van je deurbel zodanig dat de optocoupler parallel geschakeld is met je deurbel. Vergeet ook de weerstand niet. Als je het goed hebt aangesloten, zullen de output-pinnen van de optocoupler geleiden als er stroom loopt door de input-pinnen. Die output-pinnen verbind je met je Raspberry Pi, eentje aan een "3V3" pin, en eentje aan GPIO-pin 23 (pinnen 16 en 17 op pinout.xyz. Op die manier zal GPIO-pin 23 "high" worden als er een stroom loopt door je deurbel-circuit.

Installatie
Mijn setup. Dat LEDje hoort er eigenlijk niet bij.

Pimatic configureren
Alles aangesloten? Dan gaan we pimatic configureren om het signaal op pin 23 op te pikken.
Installeer de pimatic-gpio-plugin.
Open de configfile en zet je deurbel als GpioContact-device in de config:

code:
1
2
3
4
5
6
7
{
      "id": "deurbel",
      "class": "GpioContact",
      "name": "Deurbel",
      "gpio": 23,
      "inverted": true
}


Als je dit device vervolgens in je GUI zet zal er "closed" achter staan. Als de bel gaat staat er "opened". Woei!

Notificatie
Maar we willen natuurlijk meer dan "opened" in de GUI. Om de notificatie naar je telefoon te krijgen heb je een dienst nodig die push-berichten kan versturen. Pimatic heeft plugins voor twee van die diensten: pimatic-pushbullet en pimatic-pushover. Kies de dienst die je bevalt en maak een account aan. Je krijgt dan een API-key die je moet invullen in de config van de plugin. Vervolgens maak je in pimatic een rule aan die een pushbericht verstuurt als de bel gaat en klaar ben je.

Notificatie op je Windows Phone
Hoewel...als je een Windows Phone hebt (zoals ik) heb je een uitdaging. Van beide diensten is er geen officiŽle app voor Windows Phone. Ik heb een tijdje gewerkt met PushPin, dat de berichtjes van Pushbullet kon ontvangen, maar dat ging niet vlekkeloos. Gelukkig is er Pushalot, speciaal voor Windows Phone-gebruikers. Er is geen pushalot-plugin voor pimatic, maar daar is een work-around voor: installeer de pimatic-shell-execute-plugin en maak in je config een ShellSwitch device aan:

code:
1
2
3
4
5
6
7
8
9
{
      "id": "deurbelpush",
      "name": "Pushbericht deurbel",
      "class": "ShellSwitch",
      "onCommand": "curl -sF \"AuthorizationToken=XXX\" -F \"Body=De bel gaat!\" https://pushalot.com/api/sendmessage",
      "offCommand": "echo off",
      "getStateCommand": "echo false",
      "interval": 0
}


Bij XXX vul je de API-code in die je hebt gekregen bij je registratie op pushalot.com. Tenslotte maak je een regel aan die je ShellSwitch-device aanzet als de bel gaat:

regel deurbelnotificatie

OK, you're done! Zoek nog een mooi "dingdong" geluidje om in je telefoon aan een pushbericht te koppelen en het feest is compleet. Hoewel... het zou wel leuk zijn als je meteen kan zien wie er voor de deur staat! Dat dacht ik ook en hoe ik die gedachte heb omgezet in daden beschrijf ik in de volgende blog. Nog even geduld dus. In de tussentijd kun je alvast de benodigde camera bestellen.

update: het vervolg staat hier.


regel deurbelnotificatie
Ter illustratie: als bij mij de bel gaat, kan dat voor flink wat logging zorgen

Volgende: DIY head tracking, deel 2: IR-camera en software 01-'16 DIY head tracking, deel 2: IR-camera en software
Volgende: Domotica met pimatic, deel 2: temperatuur meten met een DS18B20 01-'16 Domotica met pimatic, deel 2: temperatuur meten met een DS18B20

Reacties


Door Tweakers user SanderL, vrijdag 22 januari 2016 08:16

Leuk gedaan! :D

Ikzelf ben ook niet zo thuis in elektronica - het meest coole dat ik bereikt heb met 'n Pi is een temperatuursensor uitlezen :+ - dus vandaar m'n vraag: waarom is weerstand R1 (560 Ohm) nodig? Daar loopt dan ook 8V door vanwege de parallelle aansluiting ervan?

En tot slot, stel nu dat je voor de notificatie geen PushBullet (of whatever) wil gebruiken, is er dan ook een manier om notificaties te ontvangen? Ik neem aan dat je 'n kleine web app kan maken, maar die stuurt geen notificaties natuurlijk (ook al is er wel 'n notification API). Een goeie ouderwetse mail is natuurlijk ook nog altijd 'n optie met de foto in bijlage :+

Ik kijk al uit naar het vervolg! ;)

[Reactie gewijzigd op vrijdag 22 januari 2016 08:23]


Door Tweakers user K-Jay, vrijdag 22 januari 2016 08:31

@PixelShooter dank voor je reactie!
Over die weerstand: volgens mij was het zo dat de schakeling zonder weerstand niet goed werkte. Toen ik deze ertussen had gezet werkte het wel. Vandaar.
Je hoeft inderdaad niet per se met push-notificaties te werken. Pimatic heeft ook plugins om een mail te sturen of zelfs via IFTTT zaken te triggeren. Keuze genoeg!

Door Tweakers user HenriM, vrijdag 22 januari 2016 10:01

Leuke blog! Ik heb het zelf met KAKU en een relais opgelost. Zie ook mijn blog .

[Reactie gewijzigd op vrijdag 22 januari 2016 10:12]


Door Tweakers user LordSinclair, vrijdag 22 januari 2016 10:50

PixelShooter schreef op vrijdag 22 januari 2016 @ 08:16:
Ikzelf ben ook niet zo thuis in elektronica - het meest coole dat ik bereikt heb met 'n Pi is een temperatuursensor uitlezen :+ - dus vandaar m'n vraag: waarom is weerstand R1 (560 Ohm) nodig? Daar loopt dan ook 8V door vanwege de parallelle aansluiting ervan?
Er "loopt" nergens 8V door, spanning "staat" ergens op en stroom "loopt" ergens doorheen. Er staat een spanning 8V (minus de spanning over optocoupler) op de weerstand.

De weerstand voorkomt dat er een te grote stroom door de optocoupler loopt.

Hier nog wat leesstof: http://www.linetec.nl/electronics/leds/led_2.html

[Reactie gewijzigd op vrijdag 22 januari 2016 10:52]


Door Tweakers user Blokker_1999, vrijdag 22 januari 2016 10:50

PixelShooter schreef op vrijdag 22 januari 2016 @ 08:16: dus vandaar m'n vraag: waarom is weerstand R1 (560 Ohm) nodig? Daar loopt dan ook 8V door vanwege de parallelle aansluiting ervan?
Dat noemt men een voorschakelweerstand. Doel van deze weerstand is het vermogen door de opto te beperken. Zonder deze weerstand ga je bijna heel je kring kortsluiten door de opto daar de weerstand daarvan vele malen kleiner is dan die van de bel. Met die weerstand beperl je de spanning over en de stroom door de opto.

Door Tweakers user SanderL, vrijdag 22 januari 2016 13:07

LordSinclair schreef op vrijdag 22 januari 2016 @ 10:50:
[...]

Er "loopt" nergens 8V door, spanning "staat" ergens op en stroom "loopt" ergens doorheen. Er staat een spanning 8V (minus de spanning over optocoupler) op de weerstand.

De weerstand voorkomt dat er een te grote stroom door de optocoupler loopt.

Hier nog wat leesstof: http://www.linetec.nl/electronics/leds/led_2.html
Ik wist het eigenlijk al toen ik het schreef, maar ben toch lui geweest en het laten staan ;) Het is een beetje zoals elders op Tweakers als het om vermogen gaat: sommigen zeggen dan wattage in plaats van vermogen.

Bedankt voor de link trouwens. Ondanks ik heus wel wist hoe LEDs aan te sluiten (O-)), zijn de begrippen spanningsval en voorschakelweerstand me nu ook duidelijk! :)
Blokker_1999 schreef op vrijdag 22 januari 2016 @ 10:50:
[...]

Dat noemt men een voorschakelweerstand. Doel van deze weerstand is het vermogen door de opto te beperken. Zonder deze weerstand ga je bijna heel je kring kortsluiten door de opto daar de weerstand daarvan vele malen kleiner is dan die van de bel. Met die weerstand beperl je de spanning over en de stroom door de opto.
Hmm, in 'n optocoupler zit toch - onder andere - 'n soort van LED? Je zet er een weerstand tussen om de stroom te beperken die door de LED gaat dan? :)

Door Tweakers user LordSinclair, vrijdag 22 januari 2016 13:39

PixelShooter schreef op vrijdag 22 januari 2016 @ 13:07:
Hmm, in 'n optocoupler zit toch - onder andere - 'n soort van LED? Je zet er een weerstand tussen om de stroom te beperken die door de LED gaat dan? :)
Klopt :) anders is het zoals PixelShooter schrijft een soort van kortsluiting, tegen zo'n hoge stroom is een optocoupler niet bestand.

Door Tweakers user Kiwi, vrijdag 22 januari 2016 20:10

PixelShooter schreef op vrijdag 22 januari 2016 @ 08:16:
En tot slot, stel nu dat je voor de notificatie geen PushBullet (of whatever) wil gebruiken, is er dan ook een manier om notificaties te ontvangen?
Als je een Android toestel hebt kan je mijn app proberen in combinatie met Tasker.
Ik wil in de toekomst ook native notificaties gaan ondersteunen, maar dat heeft een lage prioriteit

Door Tweakers user TotallyJorden, vrijdag 22 januari 2016 21:14

De genoemde camera heb ik ook. Deze heeft geen snapshotting mogelijkheid. Op ThinkPad's Tweakblog: IP-camera zonder snapshot mogelijkheid, m.b.v. script toch een snapshot verkrijgen uit RTSP-stream! staat beschreven hoe je dat wel voor elkaar kunt krijgen, echter is mij dit nooit gelukt (blijf problemen houden met ffmpeg om de snapshot op te slaan).

Let ook op dat hij zonder voeding wordt geleverd.

Door Tweakers user K-Jay, vrijdag 22 januari 2016 23:07

@TotallyJorden stay tuned! Zoals je op het bovenste screenshot ziet is het inderdaad mogelijk om snapshots te maken met deze camera. Dat beschrijf ik dus in een volgende blogpost :)

Door geekeep, zaterdag 23 januari 2016 00:45

Wat dacht je van een draadloze deurbel die veelal op 433Mhz (dacht ik) werken. Dan is het een kwestie van dit signaal opvangen met een rf-receiver (menig Pimatic installatie bevat deze al), en heb je geen gezeur met draadjes en optocouplers.

Door Tweakers user HenriM, zaterdag 23 januari 2016 10:18

geekeep schreef op zaterdag 23 januari 2016 @ 00:45:
Wat dacht je van een draadloze deurbel die veelal op 433Mhz (dacht ik) werken. Dan is het een kwestie van dit signaal opvangen met een rf-receiver (menig Pimatic installatie bevat deze al), en heb je geen gezeur met draadjes en optocouplers.
Zie reactie 3 van mij ;)

Door Tweakers user TotallyJorden, zaterdag 23 januari 2016 11:14

@K-Jay: Ben zeer benieuwd, zal je blog bookmarken!

Door Tweakers user WhiteDog, zaterdag 23 januari 2016 12:02

HenriM schreef op vrijdag 22 januari 2016 @ 10:01:
Leuke blog! Ik heb het zelf met KAKU en een relais opgelost. Zie ook mijn blog .
Zit je wel met een zender waar een batterij in moet en waar toch ook nog een relais tussen moet. Hangt wat van je situatie af natuurlijk wat de voorkeur geniet :)

Door Tweakers user dikkiedik78, zaterdag 23 januari 2016 12:19

Ik heb een zelfde projectje gemaakt al weer een jaar of 3 geleden met een arduino en ethershield, iets waar ik destijds nogal wat last mee had was grapjassen die 4x achter elkaar de deurbeld in drukte met als gevolg 4x een pushover notificatie op mijn telefoon.
Ik heb toen een debounce ingebouwd zodat er als er binnen 2 seconden na de eerste keer niet als nog allerlei acties genomen werden.

Heb jij ook een debounce ingebouwd of neem jij het voor lief dat je meerdere pushberichten binnenkrijgt?

Door Tweakers user K-Jay, zaterdag 23 januari 2016 14:53

@dikkiedik78 Nee, ik heb geen debounce ingebouwd. Af en toe krijg ik twee berichten als iemand de bel wat langer ingedrukt houdt, maar ik heb geen last van grapjassen.
Met de rules-engine van pimatic kun je overigens vrij eenvoudig zoiets voor elkaar krijgen.

Door Tweakers user sw3ex, zondag 24 januari 2016 12:08

Hangt die deurbel (of optocoupler) aan dezelfde Pi in de meterkast waar je pimatic installatie op draait?

Door Tweakers user siepeltjuh, zondag 24 januari 2016 14:50

Zijn er nog alternatieven voor pushalot? Zelf werk ik met openhab en ben op zoek naar een goed notificatiesysteem dat daar op aansluit. Pushalot lijkt een verlaten project te zijn aangezien er al bijna 2 jaar geen updates en tweets te zijn geplaatst.
Overigens ook benieuwd of je iets weet van een mqttitude alternatief voor WP.

Door Tweakers user K-Jay, maandag 25 januari 2016 11:28

@sw3ex: Ja
@siepeltjuh: Pushalot lijt inderdaad een beetje verlaten, maar het werkt nog wel. Alternatieven heb ik niet naar gezocht. Ik weet niet wat mqttitude is.

Door Tweakers user Thedr, maandag 25 januari 2016 17:17

Leuke blog weer. Dit zou natuurlijk helemaal compleet zijn met een camera als deze: http://hackaday.com/2016/...266-wifi-webcam-platform/

Door Tweakers user djmvt, woensdag 17 februari 2016 12:12

Naar aanleiding van deze blog ook mijn deurbel gekoppeld.
Wel op een iets andere wijze:
Ik heb een kaku remote uit elkaar gesloopt en druk daar middels een relais dat aan mijn originele deurbel hangt een knop in. Dit triggered een rule en voila: deurbel melding via verlichting en telefoon en als extra ook een melding op mijn smartwatch!

Gisteren de camera binnen gekregen, vanavond eens kijken hoe ik die kan integreren in dit geheel ;)


Heb je hier al enige progressie in gemaakt?

Greets

MvT

Door Dennis, vrijdag 19 februari 2016 14:16

Hoi K Jay,

Ik heb alles gedaan zoals jij hebt beschreven in je blog. Echter zie ik niks gebeuren in pimatic als de bel gaat. Heb jij enig idee hoe je de optocoupler kan testen ?

Door Tweakers user K-Jay, vrijdag 19 februari 2016 16:36

@Dennis nee, ik weet niet hoe je een optocoupler kan testen. Zeker weten dat je hem goed hebt aangesloten? In een van de hoeken zit een half rondje, dat moet op de goede plek zitten, check de bijbehorende datasheet.

Door Dennis, zaterdag 20 februari 2016 13:41

@K Jay, Ik heb nu ook de optocoupler besteld uit jou blog. Ik had ze nu uit china van ebay. Dat is nu nog het enige verschil. Hopelijk dat het nu wel gaat werken als ik ze binnenkrijg. Anders maar een andere oplossing bedenken haha.

Door Tweakers user djmvt, zondag 21 februari 2016 10:12

Ondertussen ook mijn nieuwe ip cam toegevoegd die een snapshot in een iframe plaatst zodra iemand aanbelt :):)

Door Tweakers user skipper79, zaterdag 27 februari 2016 09:14

@djmvt, hoe heb je dat gerealiseerd?

Door Tweakers user djmvt, zondag 28 februari 2016 17:27

skipper79 schreef op zaterdag 27 februari 2016 @ 09:14:
@djmvt, hoe heb je dat gerealiseerd?
De basis lijkt op wat KJay doet, bij mij werkt het alleen met een relais die een 433mhz code (uit een gesloopte kaku remote) zend.
dit triggered een rule die een lamp in huis laat knipperen, een pushover bericht stuurt naar mijn telefoon (en smartwatch) en in een iframe wordt een link naar de jpeg snapshot van mijn ipcam geopend.
de camera maakt bij elke x dat je naar de url gaat een nieuw snapshot dus ik zie wie er staat als er op de bel wordt gedrukt.

sinds vandaag ook een debounce met een variabele erbij geplaatst om te voorkomen dat wanneer er 10x achter elkaar op de knop wordt gedrukt (ik hoorde
de bel niet dus dacht dan druk in nog een aantal keer) de rule blijft triggeren.

Door Tweakers user Akerboom, vrijdag 15 april 2016 22:02

@K Jay: Bedankt!
Zojuist het schema gebruikt icm. domoticz om mijn deurbel uit te lezen

Voor domoticz gewoon de wiki volgen en deze instellingen op raspbian gebruiken:

code:
1
2
3
gpio export 23 in
gpio edge 23 both
gpio -g mode 23 up

[Reactie gewijzigd op vrijdag 15 april 2016 22:02]


Reageren is niet meer mogelijk