Posts

NFC Scanner voor toegangscontrole

Afbeelding
  Deuren en Sloten Omdat ik al geruime tijd de deuropeners had geautomatiseerd, lag het voor de hand om een toegangssysteem te bouwen wat automatisch de deuren opende als een bevoegd iemand voor de deur stond. Ik heb verschillende methoden bekeken: gezichtsherkenning vingerafdrukscanner RFID en/of de opvolger, NFC Toen ik de kans kreeg om goedkoop een aantal NFC/RFID scanners aan te schaffen, ben ik met het laatste idee aan de haal gegaan. Het bleek redelijk makkelijk om zowel met Arduino als onder Python de 'tags' uit te lezen: Arduino:  Hierbij gebruik ik de Adafruit PN532 library, die zowel SPI als I2C ondersteunt; ik gebruik i2c. #include <Adafruit_PN532.h> #define PN532_IRQ   (2) #define PN532_RESET (3) Adafruit_PN532 nfc(PN532_IRQ, PN532_RESET); void setup(void) {   nfc.begin();   uint32_t versiondata = nfc.getFirmwareVersion();   if (! versiondata) {     Serial.print("Didn't find PN53x board");     while (1); // halt   }   nfc.SAMConfig(); } void loop

MQTT Discovery in Python

Afbeelding
 Voor een toepassing met een 32x32 led matrix van Adafruit zocht ik een manier om bepaalde instellingen van dit display te kunnen triggeren vanaf Home Assistant. Mijn opstelling was als volgt: Een Raspberry Pi 3B+ met Adafruit's RGB Matrix bonnet Een 32x32 RGB Matrix LED display Een grote rode knop met LED In eerste instantie heb ik de LED in de knop aangestuurd met behulp van de 'pigpiod' software (http://abyz.me.uk/rpi/pigpio/pigpiod.html), deze software biedt de mogelijkheid om de gpio pins van een Raspberry pi op afstand aan te sturen, en dit wordt binnen Home Assistant ondersteund (https://www.home-assistant.io/integrations/rpi_gpio/). Zo kon ik dus zowel de knop als de LED als respectievelijk een binaire sensor en een switch (of light) binnen Home Assistant gebruiken. Daarnaast wilde ik de animatie van het LED display kunnen sturen. Na veel gepuzzel kwam ik op de volgende oplossing: Een script dat luistert op een MQTT topic en dit schrijft naar een 'named pipe'

Automatisering in Home Assistant

Afbeelding
De regels in Home Assistant om acties uit te voeren op basis van sensors en andere parameters worden 'Automations' genoemd. Een automation bestaat uit minimaal de volgende zaken: Een 'trigger': dit is een verandering die er voor zorgt dat de automatisering gestart wordt; meestal is dit een statusverandering (bijvoorbeeld een knop of sensor die aan- of uitgaat), maar het kan ook een verandering in waarde zijn van een sensor beneden of boven een bepaalde grenswaarde. Een of meer 'Actions': dit zijn de acties die de automatisering moet uitvoeren als de automatisering wordt uitgevoerd. Daarnaast zijn er nog meer mogelijkheden: Conditions: dit zijn voorwaarden die gecontroleerd worden: als aan deze voorwaarden wordt voldaan, wordt de automatisering uitgevoerd. 'Choose - Default' constructies: hierbij wordt bij de uitvoering van de automation een keuze gemaakt tussen verschillende acties, op basis van bepaalde condities. Een (relatief) simpele automation ziet

Zigbee

Afbeelding
Hoewel ik een voorkeur heb voor bedrade oplossingen in plaats van draadloze, ben ik er niet aan ontkomen: de kant- en klare oplossingen van Philips en Ikea zijn te goed om te negeren, en de tasmota software maakt de WiFi schakelaars van Sonoff en andere merken erg aantrekkelijk. De producten van Ikea en Philips Hue maken gebruik van het zigbee protocol, en tot nu toe betekende dat voor elk merk een aparte 'gateway', als vertaaldoos tussen mijn netwerk en het zigbee protocol:   Nu kwam ik andere zigbee producten tegen, zoals deze temperatuur- en luchtvochtigheidsensor: Deze werkt natuurlijk ook weer via een aparte gateway, maar daar had ik niet zo'n zin in, dus ik ging op zoek naar alternatieven. Zigbee is een open protocol, ondersteund door de 'Zigbee Alliance', waar alle fabrikanten bij aangesloten zijn. Het is dus mogelijk om alle zigbee apparaten middels de juiste hardware aan te sturen, onafhankelijk van de fabrikant. Home Assistant ondersteunt dit, onder de naa

Relais op afstand

Afbeelding
De i2c bus Vanuit een ander project heb ik al wat ervaring opgedaan met het gebruiken van de i2c bus; deze bus kan gebruikt worden om extra I/O poorten en sensoren aan te sluiten, zelfs op een redelijke afstand. Volgens de specificaties zou een afstand van 1 meter het maximaal haalbare zijn, maar dit is redelijk flexibel: ik heb succesvol een afstand van ruim 2 meter gebruikt. Ik heb deze bus gebruikt om vanuit een Arduino Mega een kastje aan te sluiten met daarin twee apparaten: een MCP23017 IC (16-poorts I/O expander) met daarop aangesloten een 4-voudig relais. een BMP280 sensorboard voor meting van luchtdruk en temperatuur. Voor de aansluiting met de Arduino gebruik ik 4-voudige platte telefoonkabel en RJ-12 stekkers. Op deze manier kan ik op eenvoudige wijze meer I/O aansluiten. In de Arduino code heb ik dit geregeld door de Adafruit mcp library te laden, mits er een compiler flag wordt gezet: #if defined(MCP_present) #include <Wire.h> #include "Adafruit_MCP23017.h"

Smart meter in de revisie

Afbeelding
Slimme Meter Hoewel ik al een tijdje de slimme meter uitlas met een op ESP01 gebaseerd draadloze interface, bleef dit een een beetje een zorgenkindje: hoewel het een op Arduino gebaseerde sketch was, had ik veel moeite om het te compileren, en bovendien was het een erg gecompliceerde oplossing, die teveel mogelijkheden had voor mijn doel: ik wilde alleen de meterwaarden uitlezen via MQTT, zodat ik ze kon gebruiken in Home Assistant. Op een gegeven moment hield de interface op met werken, dus dit was het punt om schoon schip te maken. Mijn aanpak was als volgt: Een eigen interface bouwen om de seriële output van de meter te lezen. Ik had al een paar pogingen ondernomen, maar het was elke keer mislukt. De software integreren in de 'library' die ik gebouwd had voor de Arduino Mega controllers. Dit was ook al een keer gestrand op het 'blokkerende' karakter van het uitlezen van een seriële verbinding. Interface De interface bouwen bleek na wat naspeurwerk simpel te zijn: het

Meer over Sonoff Schakelaars

Afbeelding
Voor het gemak heb ik een aantal Sonoff S20 schakelaars in gebruik: Deze schakelaars zijn voor erg weinig geld te koop via diverse chinese websites. De Tasmota software waar ik deze schakelaars mee installeer, kent ook een hele leuke optie in combinatie met Home Assistant: 'auto discovery'. Dit betekent dat je de schakelaars alleen maar hoeft te voorzien van de juiste Wifi credentials en het adres van de MQTT server, om ze in Home Assistant automatisch te laten verschijnen, compleet met alle statussen en schakelfuncties. Daarnaast is het mogelijk om extra sensoren aan de S20 aan te sluiten. Als je de S20 openmaakt, zitten er 4 aansluitingen, waar je een header in kunt solderen voor het programmeren. In de versie die ik gebruik, zit er een 5e aansluiting, en even doormeter leerde mij dat deze aangesloten was aan de GPIO2 pin van de ESP8266 chip. In de Tasmota software kun je deze pin configureren voor diverse sensoren, en als ik deze aansluit aan een DS18B20 temperatu