Een Stekker van de Action voorzien van ESP-EASY

Bij de Action, een keten van winkels die vooral uitblinken in de verkoop van goedkope Chinese dingetjes, verkopen ze sinds een tijdje allerlei spullen die het kenmerk ‘Smart’ hebben.

Deze spullen zijn goedkoop en handig, maar ze hebben één groot nadeel: ze ’telefoneren’ allemaal naar China, via het Tuya-platform, om aan te geven dat jij het licht aandoet of je stekker inschakelt. En aangezien ik daar niet van houd en ik bovendien mijn domotica liever zelf beheer, besloot ik te proberen of ik zo’n goedkope stekker van ESP-Easy kon voorzien.

Mensen die mijn eerdere blogs hebben gelezen weten dat ik graag werk met een ESP8266 en dat ik die sensors koppel aan Domoticz. Het is overigens ook een hele kleine moeite om die sensors te koppelen aan Home Assistant, een ander domotica-platform, dat ook heel veel wordt gebruikt.

Nou wil het dat de genoemde stekkers een versie van de ESP8266 bevatten, die met wat goede wil te programmeren is door er een paar draadjes aan te solderen. Ik ga laten zien hoe dat moet, maar je dient dus te beschikken over een soldeerbout met een fijne punt en niet bang te zijn voor wat simpel soldeerwerk. En, o ja, een vaste hand is ook wel makkelijk. Daarnaast hebben we iets nodig om de ESP mee te programmeren, zoals deze.

Openmaken van de stekker

De stekker gaat wat moeilijk open. Maak de 2 schroefjes aan de achterzijde los en steek een schroevendraaier tussen de twee stekkerdelen. Wip hiermee de twee delen los van elkaar.

De ESP8266 is het lichtgroene vierkantje dat recht op de hoofdprint staat. De te solderen contactpunten bevinden zich onder de hoofdprint. De ruimte daar is erg krap, dus het is verstandig om hier voorzichtig een schroevendraaier of iets dergelijks tussen te zetten. De puntjes die we moeten solderen zijn op de print gemarkeerd als 3V3, GND, RX en TX.

Solderen van de stekker

De foto hierboven is nogal onduidelijk helaas, maar daarop zie je het stukje van de ESP8266 dat onder de hoofdprint uitkomt.
Soldeer nu 4 draadjes op de genoemde punten. Als je dit voorzichtig doet, dan is het met een fijne soldeerbout best te doen.

Draden programmeermodus

Als de draadjes zitten is het ergste voorbij. Er moet nu nog een draad worden gesoldeerd tussen twee punten op het bovenste gedeelte van de print, om de ESP8266 straks in programmeermodus te zetten. Soldeer daartoe een draad tussen GND aan de rechterkant en IO0 links van het midden.

Programmeren van de stekker

Het is nu tijd om de ESP-programmer aan te sluiten. Hier zijn diverse oplossingen voor, ik prefereer een eenvoudige CH340G Serial converter, die een USB poort omzet naar een 6pins TTL verbinding. In Nederland bijvoorbeeld snel hier te bestellen, of bij AliExpress voor heel weinig.
BELANGRIJK: de ESP8266 heeft 3,3 volt nodig. Zorg ervoor dat de programmer op het juiste voltage staat. De meeste zijn om te schakelen tussen 3,3 volt en 5 volt.

Sluit de 3V3 van de ESP aan op VCC van de programmer, GND aan GND, de RX van de ESP aan de TXD van de programmer en de TX van de ESP aan de RXD van de programmer. Sluit de programmer nu aan op je computer.

In een van mijn eerdere blogs staat beschreven waar je de ESP Easy software kunt vinden en hoe je die moet programmeren.
BELANGRIJK: Wanneer het flashen is gelukt, haal je de ESP8266 los van de programmer en verwijder je de extra draad tussen IO0 en GND. Doe dit direct na het flashen, voordat je de ESP gaat proberen!

Om er nu zeker van te zijn dat alles is gelukt sluit je de ESP weer aan via de programmer op de computer. Omdat de draad is losgesoldeerd dient deze verbinding nu alleen nog om de ESP van stroom te voorzien. Ga nu verder met hetgeen in de andere blog staat beschreven en koppel de ESP aan je Wifi-netwerk.

Is alles goed verlopen dan kan je nu de stekker losmaken van de programmer, de draadjes desolderen en de stekker weer in elkaar zetten. Als je hem daarna in het stopcontact steekt, dan moet ESP Easy weer te vinden zijn.

Bedienen van de stekker

Koppel ESP Easy aan Domoticz, zoals eerder beschreven aan het begin deze blog onder het kopje ‘koppelen aan Domoticz’. Maak ook in Domoticz dummy hardware aan zoals daar wordt beschreven.
Stel nu in de stekker 2 schakelaars in in het onderdeel Devices:

Vink daarna Rules aan onder Tools / Advanced:

En voer dan bij Rules de volgende regels in en druk op Save:

on Knop#State do
  if [Knop#State] = 1
    gpio,12,1
    gpio,4,0
  else
    gpio,12,0
    gpio,4,1
endon
on Relais#State do
  if [Relais#State] = 1
    gpio,4,0
  else
    gpio,4,1
endon

Zoek de schakelaar nu op in Domoticz en kies ‘aanpassen’. Onderstaand scherm verschijnt:

Wat we nu moeten toevoegen zijn de commando’s die Domoticz moet versturen naar de stekker via de wifi. Je hebt hiervoor het wifi-adres nodig dat wordt gebruikt door de stekker. In mijn geval is dat 10.10.10.180. Stel dan in bij Aan actie

http://10.10.10.180/control?cmd=GPIO,12,1

en bij Uit actie

http://10.10.10.180/control?cmd=GPIO,12,0

en sla dit op met de knop Opslaan.

Wanneer je nu in Domoticz de schakelaar bedient zal deze ook in het echt worden bediend. Andersom zal de status van de schakelaar in Domoticz worden weergegeven wanneer je hem met de hand bedient.

Domotica – 5. Een ANDER gratis weerkanaal in Domoticz

In het recente verleden heb ik een artikel geschreven over het aanmaken van een gratis weerkanaal in Domoticz, met behulp van de Weather Undergroud service. Helaas is deze service gestopt met het verstrekken van gratis accounts, dus deze manier werkt niet meer. Maar er is gelukkig een alternatief, namelijk OpenWeatherMap!

Hoe gaan we te werk

Het is mogelijk om in Domoticz naast ‘echte’ sensors ook virtuele sensors te gebruiken. Van die eigenschap gaan we hier gebruik maken.

Een API-key aanvragen bij Open Weather

We beginnen met het aanvragen van een API-key bij OpenWeatherMap. Zo’n API-key is een identificatie waardoor zij weten wie er data bij hen opvraagt. Ga naar de website openweathermap.org.Kies nu voor de optie Sign Up.

Maak een nieuwe account aan en vrijwel onmiddellijk zal in je mailbox een bericht van OpenWeatherMap ontvangen:

In het midden bevindt zich de API-key. Je hebt alleen het gedeelte ná APPID= nodig.

Bepalen plaatsnaam

Naast de API-key hebben we ook nog een plaatsnaam nodig. Ga daarvoor op de website van OpenWeatherMap naar het kopje Weather in your city:

Voer daar de plaatsnaam in die je zoekt en druk op Enter. Als er meerdere keuze zijn, dan worden die nu getoond. Zo wist ik niet dat er naast ons Rotterdam nog twee van die plaatsen in de wereld waren:

Wij zoeken natuurlijk Rotterdam,NL.

Virtuele hardware in Domoticz

Kies in het SetUp-menu van Domoticz voor Hardware.

We voegen nu onderaan het scherm nieuwe hardware toe. Kies een naam voor je weerkanaal en kies bij Type voor Open Weather Map.
Laat Data Timeout op Disabled staan.

Voeg daarna bij API Key alleen het gedeelte achter APPID= in wat je uit de E-mail van OpenWeatherMap hebt gehaald.

Voeg tenslotte de plaatsnaam en het land in zoals ze op de website van OpenWeatherMap worden getoond.

Druk tenslotte op Add en het nieuwe virtuele weerstation is aangemaakt.

Werkt het?

Om te controleren of het werkt gaan we nu naar de logging in Domoticz in menu Setup.Als alles goed is gegaan zie je hier eerst de melding dat het nieuwe weerkanaal is gestart en dat er gegevens zijn opgehaald. Staat er een rode melding dat het weerkanaal niet is gestart, dan heb je iets verkeerd gedaan. Verwijder het virtuele weerstation dan bij de hardware en doet het stap voor stap opnieuw.

Sensors

Je hebt er nu een aantal nieuwe virtuele sensors bij. Deze ‘meten’ elke 10 minuten nieuwe waarden. Je vindt die sensors onder Devices in het Setup-menu van Domoticz:

Je kunt nu de sensors voor temperatuur, vochtigheidsgraad, luchtdruk, wind, zicht en bewolkingspercentage toevoegen aan Domoticz door op het groene pijltje ernaast te drukken.

Ze zijn daarna te vinden onder de hoofdmenu’s van Domoticz:

Tenslotte

Met behulp van OpenWeatherMap heb je nu een handig virtueel weerstation van je woonplaats, waarvan je nu automatisch alle gegevens gaat verzamelen. Het is niet zo mooi als dat van WeatherUnderground, waarbij je ook nog eens kon kiezen voor een bepaald weerstation vlak bij je in de buurt, maar het is toch een leuke en handige uitbreiding van je Domotica, zonder dat je zelf sensors hoeft te kopen.

Sensoren via Wifi koppelen aan Domoticz – Deel 3

Na de vorige blog uit deze reeks is het hopelijk gelukt om een ESP8266 aan te praat te krijgen via wifi. Mijn ervaring is dat het grote voldoening geeft als het ‘eindelijk’ is gelukt. Toen ik zelf mijn eerste ESP8266 in mijn netwerk zag verschijnen was dat echt even een *YES* momentje…

In deze blog gaan we de ESP8266, die ik voor het gemak weer D1 zal noemen, koppelen aan Domoticz en we gaan er een temperatuursensor aan hangen.

Koppelen aan Domoticz

Nadat de D1 draait in het wifi netwerk is het tijd om hem te gaan koppelen aan Domoticz. Je dient daarvoor te weten op welk IP-adres Domoticz draait en op welke poort. Dat is heel gemakkelijk af te leiden uit het adres dat je opgeeft bij het starten van Domoticz.
Ik geef op http://192.168.178.5:8085, waarmee direct duidelijk is dat het adres 192.168.178.5 moet zijn en de poort 8085. Geef je geen poort op, dan is het 8080.
Druk op het tabblad Controllers in de web-interface van de D1.
Kies bij Protocol voor Domoticz HTTP. Vul daarna je IP-adres en poort in, kruis Enabled aan en druk op Submit.Je hebt nu de D1 aan Domoticz gekoppeld.
Alleen weet Domoticz dat zelf nog niet. Ga daarom naar de web-interface van Domoticz en kies rechtsboven in het menu Setup voor Hardware. Voeg nu hardware toe van het type Dummy en geef het een logische naam. Ik gebruik daarvoor altijd dezelfde naam als die ik de D1 heb gegeven:Vergeet niet Enabled aan te kruisen en voeg de hardware toe met de knop Add.
Het enige wat we nu nog moeten doen is het creëren van een virtuele sensor, maar dat komt zo.

Een temperatuur sensor

Eén van de makkelijkste sensoren  die je op deze manier kunt koppelen is een temperatuursensor. Er zijn een aantal verschillende typen in omloop die naast temperatuur vaak ook nog luchtdruk of luchtvochtigheid meten.

Een handige sensor is de DHT22. Deze meet temperatuur en luchtvochtigheid en is voor rond de 2 Euro te koop bij aliexpress.com.

Behalve de sensor hebben we nog een weerstand van 4,7 K Ohm nodig en 3 draden om de sensor met de D1 te verbinden.
Het schema dat aangeeft hoe te verbinden ziet er als volgt uit:

Een virtuele sensor in Domoticz

Om Domoticz daadwerkelijk aan deze sensor te koppelen moeten we een (virtuele) sensor toevoegen aan de hierboven gemaakte hardware. Druk daartoe op de knop Create Virtual Sensors achter de D1 in de hardwarelijst van Domoticz:

Kies voor sensortype Temp+Hum en geef hem een logische naam.Het enige dat nu nog moet gebeuren is het opzoeken van het indexnummer van onze nieuwe virtuele sensor in Domoticz. Ga hiertoe in het menu Setup naar Devices. Ergens in die lijst (waarschijnlijk bijna bovenaan) bevindt zich onze nieuwe virtuele sensor. Schrijf het nummer op dat zich in de kolom Idx bevindt (hier dus 268):

Het activeren van de sensor

Ga nu in de webinterface van de D1 naar het tabblad Devices:Druk op de bovenste Edit knop om een nieuw Device toe te voegen:

Kies in de lijst van Devices voor Environment DHT11/12/22.
Daarna kunnen de gegevens worden ingevuld:Voer een naam in en zet een vinkje bij Enabled.
Onder Sensor moet de waarde van 1st GPIO corresponderen met de gekozen poort (D3, standaard). Bij DHT Type wordt gekozen voor een DHT 22.
Onder Data Acquisition wordt een vinkje gezet bij Send to Controller 1 en bij IDX wordt de eerder opgeschreven index uit Domoticz ingevuld (hier 268).
Tenslotte wordt bij Delay ingevuld om de hoeveel tijd een waarde naar Domoticz moet worden gestuurd. Ik kies bij temperatuur altijd voor 60 seconden.

Druk daarna op Submit. Als je nu opnieuw op de tab Devices klikt is je sensor toegevoegd. Na een tijdje zullen de waarden voor temperatuur en vochtigheid achteraan in de kolom verschijnen. Vernieuw hiervoor wel steeds de pagina in de webinterface! Gebeurt dat na enkele minuten nog niet, dan is de sensor waarschijnlijk verkeerd aangesloten.

Sensorwaarden in Domoticz

Als we nu naar Domoticz gaan en op de pagina Temperature kijken, dan is onze nieuwe sensor daar te zien, inclusief doorgegeven waarden:

Tot zover de serie blogs over het aansluiten van een sensor aan Domoticz via wifi.
Op dezelfde manier kunnen ook andere sensors worden toegevoegd. De D1 heeft nog veel meer poorten. Misschien schrijf ik daar nog wel eens over in een toekomstige blog.

Save

Save

Save

Save

Save

Save

Sensoren via Wifi koppelen aan Domoticz – Deel 2

In deel 1 van deze serie blogs ben ik ingegaan op de verschillende soorten en verschijningsvormen van de ESP8266, het IoT minibordje waarmee gemakkelijk sensors aan Domoticz kunnen worden gekoppeld.

Gereedmaken van de hardware

In deze blogs ga ik gebruikmaken van de Wemos D1 mini (hier kortweg D1 genoemd). Deze variant op de ESP8266 is klein en erg veelzijdig, zoals ik in deel 1 van deze blog heb besproken. Het enige nadeel: de pootjes moeten er nog aan worden gesoldeerd. Zie je daar tegenop, gebruik dan de ook besproken NodeMCU V3.

Solderen

Het gemakkelijkst soldeer je zo’n printje door gebruik te maken van een simpel breadboard zoals die overal te koop zijn, bijvoorbeeld bij AliExpress.com voor een Euro. Steek de pootjes in het breadboard:

Leg daarna de D1 erop:

En soldeer de pootjes vast met een soldeerbout met een kleine punt. Solderen door de bout tegen het pootje te houden en daarna pas de soldeer tegen de bout te duwen, zodat deze netjes als een ‘bergje’ op de verbinding vloeit. Het is makkelijker dan het lijkt.

Firmware

Om met de D1 te kunnen werken moet deze voorzien worden van firmware. Op het internet is een scala aan firmware te vinden voor de EPS8266, want deze is erg populair. Omdat deze blog bedoeld is voor beginners maak ik gebruik van ESPEasy, een heel eenvoudige firmware van Nederlandse herkomst met een duidelijke webinterface. Ondanks het gebruiksgemak is deze firmware toch heel veelzijdig.

ESPEasy flashen

De beschrijving hieronder is voor een computer die draait onder Windows. Onder Linux of MacOS kan gebruik worden gemaakt van ESPTool.py. De beschrijving hoe dat gaat vind je hier.

Het flashen

  • De software waarmee de D1 wordt geflasht wordt gedownload vanaf de site van ESP-Easy. Op het moment van schrijven is de versie 1.20 de standaard en is versie 2.0 nog in ontwikkeling. Mijn ervaring is dat je die laatste gerust kunt gebruiken. Download versie 2.0 hier en pak het zip-bestand uit in een directory naar keuze.
  • Koppel de D1 met een micro-USB kabel aan je computer.
    Neem hiervoor een kwalitatief goede kabel, om problemen tijdens het flashen te voorkomen.
  • In Windows 8 en hoger wordt de D1 normaal gesproken herkend en worden de drivers automatisch geladen. Is dat niet het geval, dan kan je hier de juiste USB-drivers dowloaden en dan installeren. Daarna zou het herkennen wel moeten lukken.
  • De D1 wordt aan de pc gekoppeld als com-poort. Kijk in Device Manager (Apparatenbeheer) van Windows welke COM poort in gebruik is genomen door de D1. Dit is meestal het hoogste nummer (in dit voorbeeld COM3). De aanduiding CH340 zal bij de gezochte poort staan.
  • Zoek in de directory waarin de ESPEasy software is uitgepakt naar FlashESP8266.exe en start dit programma.
    Kies bij COM-Port de opgezochte poort (zie boven) en kies bij Firmware voor de versie waarin ‘normal’ en ‘4096’ worden genoemd, voor de standaard versie van 4MB.
  • Start de flashtool met de knop ‘Flash’. Als alles goed is gegaan verschijnt er een commandovenster en wordt de ESP8266 geflasht.
  • Zodra het flashen is geëindigd, dan wordt dit door de software gemeld.
    Nu verbreek je de verbinding met de computer. Het beste kan je de D1 nu met de USB-kabel aan een eigen stroombron koppelen en niet meer aan de pc.

Wifi webserver

Wanneer het flashen is gelukt en de D1 weer stroom krijgt, dan gaat hij zich tijdelijk gedragen als webserver. Je kunt nu alleen met hem verbinden via Wifi. Zoek de beschikbare netwerken op met bijvoorbeeld een tablet:Zoek naar het netwerk ESP_Easy_0 en verbindt hiermee. Het password dat hierbij moet worden opgegeven is configesp. Na het verbinden komt de tablet waarschijnlijk uit zichzelf met een configuratiepagina. Zo niet, open dan een browser en vervolgens een willekeurige pagina. Je komt nu automatisch bij 192.168.4.1/setup:Kies nu je eigen wifi SSID, voer je password in en druk Connect. De D1 maakt contact met je wifi en krijgt van diens DHCP server een IP-adres. Dit duurt even en in die tijd loopt een tellertje terug op het scherm: Daarna wordt het toegekende IP-adres getoond en is de D1 geen webserver meer, maar maakt hij deel uit van je eigen wifi-netwerk:Door op de knop ‘Proceed to main config’ te drukken ga je naar de nieuwe hoofdpagina van de D1.

Mogelijke problemen

Mijn ervaring met de D1 is dat het flashen meestal goed gaat. De belangrijkste bron van eventuele problemen is de USB kabel. Deze moet echt van goede kwaliteit zijn. Een dun, halfzacht exemplaar voldoet niet.
Daarnaast wil het niet altijd gelijk lukken om – na het kiezen van je Wifi SSID – je nieuwe adres te krijgen. Geen paniek, vaak voldoet het om gewoon de pagina van de browser opnieuw te openen op de tablet. Ook het invoeren van het setupadres 192.168.4.1/setup wil wel helpen. Tenslotte kan je ook de stroomtoevoer tijdelijk onderbreken en daarna opnieuw naar de setup pagina gaan.
Wil het nu nog niet, dan is waarschijnlijk het flashen toch niet goed gegaan. Doe dit dan gewoon opnieuw, liefst met een andere goede USB-kabel.

Verbonden met het Wifi netwerk

Als alles goed is gegaan is de D1 nu verbonden met het Wifi netwerk. De beginpagina verschijnt:Standaard krijgt de D1 nu de naam ESP_Easy (zie bovenaan). Het IP-adres staat linksonder.
Zelf vind ik het prettiger dat de ESP8266’s die ik gebruik een vast IP-adres hebben. Dat adres stel ik in en laat ik terugkomen in de naam van het apparaat. Daartoe gaan we naar de pagina Config (tweede tab).Ik geef deze apparaatjes een adres in de range 201 tot 250. Dat laat ik terugkomen in de unit naam en het unit nummer. Ik stel dan bijvoorbeeld dit in:Apparaat 8 krijgt dus adres 208. Het beginscherm laat dan dit zien:De D1 is nu klaar voor gebruik!

In de volgende aflevering van deze blog ga ik een temperatuursensor aan de D1 koppelen en vervolgens de D1 aan Domoticz.

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Save

Sensoren via Wifi koppelen aan Domoticz – Deel 1

In het verleden heb ik al eens een blog gewijd aan het koppelen van sensoren aan Domoticz met behulp van een apparaatje dat radiosignalen opvangt en verstuurt, de RFXtrx433E. Op zich een prima systeem, maar het kan nog veel simpeler en het is leuk: met behulp van de ESP8266. Dit is een klein bordje met een Microcontroller, wat Flash geheugen en een Wifi chip aan boord. Dit bordje kan worden ingezet in het zogeheten Internet of Things (IoT).

In een aantal blogs wil ik laten zien hoe zo’n bordje wordt geflasht, geprogrammeerd, gekoppeld met sensors en natuurlijk gekoppeld aan Domoticz. Ik heb alle voorbeelden zelf uitgezocht en geprobeerd.

Maar nu eerst een introductie van de ESP8266.

De vele incarnaties van de ESP8266

Het is niet zodat we kunnen spreken van ‘de ESP8266’. Van dit bordje zijn talloze varianten gemaakt, met allemaal hun eigen voor- en nadelen. Ik ben niet van plan deze allemaal te gaan bespreken, maar het is wel interessant drie totaal verschillende versies te bekijken:

De ESP-01

ESP-01De ‘eenvoudigste’, goedkoopste versie is deze ESP-01. Hij meet zo’n 1,5 x 2,5 cm en heeft het minste aantal te programmeren poorten van de hele familie (maximaal 4), al is dat voor een paar sensors ruim voldoende. Hij is uitgerust met 1 MB flashgeheugen. Het flashen van deze versie kost wat meer moeite dan gemiddeld voor een beginner. Je hebt er een speciale programmeertool voor nodig, of een Arduino. Hij kost zo’n 1,40 bij een Chinese leverancier zoals AliExpress.com.

De Wemos D1 mini

Deze versie is iets groter dan de ESP-01, zo’n 3 x 2,5 cm groot en hij heeft 11 digitale I/O poorten en 4 MB flashgeheugen. Het flashen van deze versie van de ESP8266 is heel eenvoudig, dankzij een extra ingebouwde chip en een micro-USB voeding. Persoonlijk vind ik dit dé versie voor de beginner. Als die solderen kan tenminste. Want de D1 wordt geleverd met drie soorten pootjes, die je er natuurlijk wel eerst aan moet solderen! Dat solderen blijkt echter makkelijker dan het lijkt, als je een fatsoenlijk soldeerboutje hebt met een kleine punt en een paar simpele richtlijnen in acht neemt. Kost ongeveer 3,20 Euro bij AliExpress.com. Er zijn ook nog allerlei leuke uitbreidingen op te koop, maar daar heb ik het later misschien nog wel eens over.

De NodeMCU V3

De grootste, uitgebreidste en tevens makkelijkst te hanteren versie van de ESP8266 vind ik de NodeMCU V3. Dit bordje meet 6 x 3 cm. Hij heeft 15 digitale I/O poorten, heeft 4 MB flashgeheugen en is standaard te koop met reeds gesoldeerde pootjes. Dankzij een eigen voeding via micro USB en een ingebouwde chip is ook deze versie van de ESP8266 zeer eenvoudig te programmeren. Is goedkoper dan de D1 (ongeveer 2,40 bij AliExpress.com) en het meest geschikt van allemaal voor de beginnende gebruiker. Zijn enige minpunt is zijn grootte, maar ook dat valt eigenlijk nog best mee vergeleken met een ‘reus’ als de Raspberry Pi (die natuurlijk wel veel meer kan). Hij trekt ook iets meer stroom dan de anderen.

Wat hebben we nodig?

Om te starten met de ESP8266 hebben we in elk geval nodig:

  • Een (variant op de) ESP8266. Ik ga een voorbeeld beschrijven met de Wemos D1 mini, maar de NodeMCU V3 (of een andere ‘makkelijke’ ESP8266) kan ook worden gebruikt.
  • Een micro-USB kabel. Neem hiervoor een goed, stevig exemplaar
  • Flash software
  • Een USB naar COM driver voor de flash software
  • Een Wifi netwerk (logisch)
  • Een draadloos apparaat om (tijdelijk) mee in te loggen op de ESP8266, bijvoorbeeld een tablet.

In een volgende aflevering van deze blog ga ik de Wemos D1 mini in elkaar zetten en van software voorzien.

Save

Save

Save

Domotica – 4. Een gratis weerkanaal in Domoticz

Dit bericht is niet relevant meer, daar Weather Underground is gestopt met het verstrekken van gratis API-keys. Maar er is nu een alternatief, in de vorm van OpenWeatherMap, waarvoor ik een nieuw artikel heb geschreven.

In eerdere blogs heb ik uitgelegd wat domotica is, hoe je het kunt aansluiten op de computer met de gratis software Domoticz voor Linux en Windows en hoe je sensors kunt gebruiken en ontvangers kunt programmeren.

Eén van de leuke, nieuwe dingen die ik onlangs heb gedaan met Domoticz is het toevoegen van een gratis weerkanaal. Omdat het best kostbaar is om allerlei weerapparatuur aan te schaffen en te onderhouden is zo’n weerkanaal een heel leuk alternatief.

Wat is een weerkanaal?

De wereld kent veel weer-enthousiasten en Nederland vormt daarop geen uitzondering. En veel van die mensen zijn weer georganiseerd in groepen op websites. Eén van de grootsten op dat gebied is het Amerikaanse Weather Underground. Hier zijn ook heel veel Nederlanders bij aangesloten. Zij hosten via de website van Weather Underground een weerkanaal en sturen daarom hun metingen naar die website. En gelukkig mogen wij buitenstaanders daar weer gebruik van maken. Dit gaat ook vrij gemakkelijk in Domoticz, maar eerst moeten we ons aanmelden op de website.

Een account aanmaken

Om gebruik te kunnen maken van de weergegevens die worden verzameld dienen we eerst een gratis account aan te maken bij Weather Underground.

  1. Ga naar de aanmeldpagina van de website van Weather Underground.
  2. Voer hier E-mail, password en Handle in. Dat laatste is eigenlijk gewoon een gebruikersnaam. Kruis NIET de optie Upgrade my membership for only $10 per year aan, dat is niet nodig. De tweede optie dient wel te worden aangekruist.
  3. Druk op de knop Become a Member. Na korte tijd verschijnt er een mail met een aanmeldlink, waarop je moet drukken.
  4. Je kunt un inloggen met de gegevens die je eerder hebt opgegeven op www.wunderground.com.
  5. Om nu gebruik te kunnen maken van de weerdata heb je nog een API-key nodig. Ga daartoe naar deze pagina waarop het prijsplan staat vermeld. Kies voor de optie die het meest rechts staat (Anvil plan), daaronder voor de optie History Add-On Yes en tenslotte bij How will you use our service voor Developer. De totale kosten zijn dan nog steeds 0 dollar. Vraag de Key aan met de knop Purchase Key.
  6. Vul tenslotte nog wat gegevens over het project in:
    Contact name: <naam>
    Project contact e-mail: <e-mailadres>
    Project name: Domoticz
    Project website: http://www.domoticz.com
    Where will the API be used: Website
    Will the API be used for commercial use: No
    Will the API be used for manufacturing mobile chip processing: No
    A brief description: <Schrijf iets over de toepassing>
  7. Vink beide vakjes aan en druk weer op Purchase Key. Je hebt nu een API-Key, die in Domoticz zal worden gebruikt.

Weerstation dat wordt gebruikt

Naast de API-Key hebben we ook nog de Weather Undergroud code nodig van het weerstation dat we willen gebruiken. Veelal zal dat een weerstation zijn dat dicht in de buurt zit.

Weather Underground website

Ga naar de hoofdpagina van Weather Underground en vul in het invoerveld links, met de tekst Find Your Hyper Local Weather, een plaatsnaam in.

Je krijgt nu een kaart te zien, met daarop een aantal mogelijke weerstations. Klik op de kaart op een ballonnetje, waarna diens gegevens in het kadertje rechts verschijnen. Druk dan op Full Forecast om naar de pagina van dat weerstation te gaan.

Druk tenslotte op de straataanduiding van het weerstation (in dit voorbeeld is dat Rochussenstraat). Naast de naam van de straat wordt dan de locatiecode van het station vermeld (hier dus IROTTERD37):

Schrijf ook die locatiecode op. Nu kunnen we de weergegevens van dat weerkanaal in Domoticz weergeven. En als het weerstation een beetje in de buurt van je eigen huis is lift je dus gratis mee op de apparatuur van iemand anders, zonder dat hij of zij daar last van heeft.

Instellen in Domoticz

Kies in het menu Setup van Domoticz de knop Hardware. In het onderste deel van het scherm voer je nieuwe ‘hardware’ in (in dit geval is die virtueel dus).

Voer een naam voor het weerkanaal in en kies bij Type voor Weather Underground. Laat Data Timeout op Disabled staan en voer de API Key en de Location die je eerder hebt verkregen in.
Maar pas op: de Location moet vooraf worden gegaan door “pws:”. Dus in ons voorbeeld voer je daar pws:IROTTERD89 in.
Druk vervolgens op Add en je weerkanaal is toegevoegd aan je ‘hardware’!

De gegevens bekijken

Vanaf nu worden de weergegevens net als je andere data opgeslagen in de database van Domoticz. Onder Setup en dan Devices vind je de sensors van het weerkanaal terug. Deze kan je op de bekende wijze ‘aanzetten’: druk op de groene pijltjes en geef ze een naam.

Onder de menu items Temperature en Weather vind je de geactiveerde sensors terug.

Domotica – 3. Ontvangers en sensors

In de eerste twee afleveringen van mijn weblog over domotica heb ik uitgelegd wat dat nou eigenlijk is, domotica en hoe je het aan de computer koppelt. Ik maak daarbij gebruik van de gratis software van Domoticz, die je onder Windows of Linux kunt gebruiken om je domotica te besturen.

Ontvangers

In de vorige aflevering heb ik laten zien hoe je de zenders kunt koppelen aan Domoticz. Nu is het de beurt aan de ontvangers.
Wat zijn er zoal voor ontvangers die we kunnen koppelen? Denk aan schakelbare stopcontacten, lampfittingen, dimmers, schakelaars voor zonwering, deurbellen of motoren voor rolgordijnen.

Registreren van ontvangers

Om te kunnen registreren heb je óf de registratiecode en het type van de ontvanger nodig, óf je hebt een ontvanger nodig die een code kan leren. Afhankelijk van het gebruikte protocol moeten meer of minder gegevens worden ingevoerd. Gebruik hiervoor de knop Manual Light/Switch op de pagina Switches.
Kies allereerst de juiste hardware. Hier is dat RFXCOM. Geef hem een zinvolle naam en kies het soort schakelaar. Naast On/Off zijn er een groot aantal andere mogelijkheden, zoals  Blinds, Dimmer, of Door Lock.
Het Type (protocol) is iets wat je moet weten. Het staat niet op de verpakking… In de handleiding van de RFXCOM RFXtrx433 staan alle protocollen opgesomd. Daarin lees je bijvoorbeeld dat KlikAanKlikUit (KAKU) het AC protocol gebruikt. Voor dit protocol moet je een ID van 4 velden en een unitcode opgeven. Weet je die, dan kan je die invoeren en vervolgens met Add Device de ontvanger toevoegen. Weet je hem niet, dan verzin je een nog niet gebruikte code en zet je een zelflerende ontvanger in de leer-modus. Bij KAKU ontvangers doe je dat bijvoorbeeld door ze in het stopcontact te steken, ze ontvangen dan gedurende 5 seconden een signaal. Druk, zodra de ontvanger in de leer-modus staat, direct op de knop Test op de pagina waar je de gegevens invoert. De RFXtrx433 zendt het signaal uit en de ontvanger slaat het op.
Na het toevoegen vind je de ontvanger terug onder Switches. Net als bij de zenders (zie de vorige blog) kan je ook de schakelaars met het sterretje op de eerste pagina plaatsen (Dashboard).
Door op het pictogram van de ontvanger te drukken zet je handmatig, vanuit Domoticz, de schakelaar aan of uit. De optie Log geeft je toegang tot het logboek waarin de geregistreerde schakelmomenten staan opgeslagen.
De optie Edit geeft de mogelijkheid ingevoerde gegevens aan te passen. bijvoorbeeld de pictogrammen of naam van de schakelaar. Ook staan hier nog wat geavanceerdere instellingen, die voor dit blog op dit moment te ver gaan, zoals het starten van een extern script op het moment dat een schakelaar wordt geactiveerd.

De optie Timers geeft je de mogelijkheid de actie uit te voeren op een bepaalde tijd, bijvoorbeeld het inschakelen van een lamp bij de voordeur bij zonsondergang.

De optie Notifications tenslotte kan een bericht versturen wanneer een bepaalde actie plaatsvindt.

Sensors

Naast ontvangers, zoals lichtschakelaars, deurbellen enz. is het ook leuk en zinvol om Domoticz uit te rusten met sensors. Denk hierbij bijvoorbeeld aan weer- en temperatuursensors of sensors in pc’s. Een sensor kan niet worden geschakeld, deze geeft alleen periodiek één of meer gemeten waarden door aan Domoticz.

Aan sensors valt eigenlijk niets in te stellen. Als ze er zijn en gegevens versturen, dan zal Domoticz ze automatisch oppikken. Als je in de log kijkt van Domoticz (onder het menu Setup), dan zie je gelijk sensorgegevens staan, tussen eventuele andere signalen, die door Domoticz zijn verwerkt:

In bovenstaand voorbeeld zijn signalen van temperatuur-, weer- en hardwaresensors geregistreerd.
In het onderdeel Devices onder het menu Setup vind je de laatste registraties van de sensors in de database terug:

 

Ook deze sensors kan je gemakkelijk in Domoticz opnemen, door op het groene pijltje te klikken. Dat wordt blauw en je kunt de sensor nu een naam geven. De sensor vind je vervolgens terug onder één van de kopjes Temperature, Weather of Utility. Met het knopje Edit kan je o.a. de naam van de sensor aanpassen, met Log kan je o.a. mooie grafieken uit Domoticz toveren over bijvoorbeeld de temperatuur de afgelopen dag, maand of jaar.

 Tot zover deze keer, maar er is nog veel meer te vertellen over Domoticz!

En, o ja, reacties worden erg gewaardeerd!

Domotica – 2. Aansluiten op de computer

In de vorige aflevering van mijn blog heb ik uitgelegd wat domotica nu eigenlijk is en hoe je met een kleine investering al de nodige dingen simpel kunt automatiseren in je huis.
Mooier wordt het wanneer je je domotica aansluit op de computer.

Transciever die de Domotica met de PC verbindt

Hardware
Ik wil me niet binden aan één leverancier van schakelmateriaal of sensors, dus heb ik voor de verbinding met de computer gezocht naar een zo breed mogelijke inzetbare oplossing. En dan natuurlijk ook een beetje betaalbaar.
Ik ben uiteindelijk terecht gekomen bij de firma RFXCOM. Zij leveren een 433.92Mhz transceiver (de RFXtrx433E) die (de naam zegt het al) zowel kan zenden als ontvangen.
Dit kleine apparaatje wordt door middel van een USB-kabel verbonden met de PC en kan dan commando’s vanuit de PC verzenden naar de ontvangers (bijvoorbeeld stekkerschakelaars) van een groot aantal merken als bijvoorbeeld klikaanklikuit (kortweg KAKU), HomeEasy en ELRO. Omgekeerd kan het apparaat signalen van domotica-zenders (bijvoorbeeld temperatuursensors of deurschakelaars) ontvangen en terugsturen naar de PC. Op de pagina van de RFXCOM RFXtrx433E staat een opsomming van de zenders en ontvangers die ze ondersteunen (zie onder Will Support).

Software
Naast de hardware hebben we ook software nodig dat de signalen die binnenkomen kan verwerken, rubriceren en tonen en dat commando’s naar de hardware kan sturen. En dat daarnaast een interface vormt op pc, tablet en smartphone.
De RFXtrx433E ondersteunt een groot aantal programma’s die dit allemaal kunnen (zie op deze pagina onder Supported By).
Ik heb uiteindelijk gekozen voor het in Nederland ontwikkelde programma Domoticz. Zonder andere oplossingen tekort te willen doen vind ik de voordelen van Domoticz:

  • Multi platform (voor Windows en Linux)
  • Draait zowel op een PC als op een Raspberry PI
  • Makkelijk te installeren
  • Zeer duidelijk uitgelegd hoe het werkt
  • Heel erg veelzijdig
  • Fraaie interface
  • Actieve ontwikkelaar
  • Actieve community, zodat je met je  vragen ergens terecht kunt
  • Kostenloos

Installatie
De installatie van de RFXtrx433E is de simpelheid zelve: inprikken in een USB-poort. Bij het apparaat wordt ook een Windows-programmaatje geleverd dat kan worden gebruikt om te kijken of het apparaat signaal krijgt en wat er binnen komt. Voor Linux is zo’n programma er niet. Maar dat is geen groot gemis, want daar hebben we natuurlijk Domoticz voor!
Voor Windows en de Raspberry Pi zijn hier kant en klare setups beschikbaar van Domoticz. Voor Linux moeten we iets meer moeite doen, al valt dat ook best mee. Het makkelijkste is het om de instructies te volgen die hier staan. Daar staan instructies voor diverse Linux-smaken, Windows en de Raspberry Pi.

Compileren voor Linux
Het komt er voor Linux op neer dat de broncode wordt gedownload en vervolgens gecompileerd en gestart. En dat klinkt veel enger dan het is. De instructies zijn glashelder en het is in een paar minuten gepiept.
Voor mijn Ubuntu server 14.04 komt het neer op de volgende instructies:

sudo apt-get install build-essential -y
sudo apt-get install cmake libboost-dev libboost-thread-dev libboost-system-dev libsqlite3-dev subversion curl libcurl4-openssl-dev libusb-dev zlib1g-dev
svn checkout svn://svn.code.sf.net/p/domoticz/code/domoticz
cd domoticz
cmake -DCMAKE_BUILD_TYPE=Release
make

Linux Startup Script
Het is natuurlijk handig wanneer Domoticz altijd gelijk draait wanneer de computer wordt gestart. Voor Linux is dat te regelen met een startup script. Doe het volgende (vanuit de Domoticz directory, standaard is dat ~/domoticz):

sudo cp domoticz.sh /etc/init.d
sudo chmod +x /etc/init.d/domoticz.sh
sudo update-rc.d domoticz.sh defaults

Pas daarna het script aan. De USERNAME moet in elk geval worden aangepast:

sudo nano /etc/init.d/domoticz.sh

Ik heb daar de regel USERNAME=pi aangepast naar USERNAME=ronald.

Een interessante optie om aan te passen is de poort waarnaar Domoticz luistert. Standaard is dat 8080, maar deze poort is nogal eens bezet. Om bijvoorbeeld te luisteren naar poort 8085 wordt deze regel aangepast:

DAEMON_ARGS="-daemon -www 8085"

Sla de wijzigingen op en start de service met deze opdracht:

sudo service domoticz.sh start

Testen van de interface

Domoticz zou nu moeten draaien en zichtbaar moeten zijn op elke pc in je thuisnetwerk. Voer in een browser het adres in van de pc waarop domoticz draait, gevolgd door de poort waarop hij luistert. Test je op dezelfde pc als waar Domoticz draait op poort 8085 dan wordt dat:

http://127.0.0.1:8085

Domoticz zal nu starten en toont de pagina Dashboard. Wanneer Domoticz nog niet is geconfigureerd dan wordt dit getoond:

De link naar de pagina Hardware is de eerste die gevolgd moet worden. Daar vind je de Hardware die Domoticz heeft gevonden of die je kan gebruiken. Je vindt daar de RFXCOM (als hij goed is aangesloten) en eventuele andere hardware. Ik heb daar bijvoorbeeld ook Motherboard sensors, die Domoticz in staat stellen informatie over de pc te tonen.
Wordt de RFXCOM niet getoond, dan moet je die eerst kiezen en vervolgens met de knop Add toevoegen.

Zenders

Wanneer de RFXCOM is toegevoegd kan de pret gaan beginnen!
Alle zenders die signalen uitzenden die compatible zijn met de RFXCOM worden automatisch gelogd onder de knop Devices onder Setup. Wanneer dat het geval is, dan kan je die heel gemakkelijk toevoegen aan de interface van Domoticz. Het makkelijkste voorbeeld is een temperatuursensor. Koop een leuk sensortje (bijvoorbeeld de Oregon THN132N), sluit dit aan en onmiddellijk zie je hem verschijnen onder Devices:

Het enige wat nodig is om de sensor in de interface van Domoticz te kunnen zien is het drukken op het groene pijltje rechts (na het drukken wordt dit blauw). Voer vervolgens een naam in (ik heb hier heel origineel voor ’temperatuur’ gekozen) en hij staat er in. Dit laatste is te zien door bovenin de knop Temperature te kiezen. Alle temperatuursensors zijn daar verzameld. De onze wordt nu zo getoond:

De meeste informatie spreekt voor zich. Indien het sterretje wordt gekozen wordt de sensor ook op de voorpagina (Dashboard) van Domoticz getoond. Onder Log worden een aantal fraaie grafieken getoond met de geregistreerde temperaturen van vandaag, de laatste maand en het latste jaar:

Op dezelfde manier kunnen ook bijvoorbeeld schakelaars worden toegevoegd. Druk op de gewenste schakelaar en kijk weer onder Devices:

Schakelaars kan je, na toevoegen met het groene pijltje, terugvinden onder Switches:

Op dezelfde manier kunnen allerlei andere soorten zenders worden toegevoegd, zoals deurcontacten, schemerschakelaars of lichtsensors.

 

In de volgende blog ga ik ontvangers toevoegen en configureren en laten zien hoe je hen kunt automatiseren!

Tip: volg Domoticz op Twitter (@Domoticz). De ontwikkelaar geeft continu door wat er is veranderd, zodat je desnoods direct de broncode kunt updaten en de gewijzigde versie kunt installeren.

Domotica – 1. Een voorzichtig begin

Dit artikel is het eerste dat ik ga schrijven in een nieuwe reeks artikelen over Domotica.

Wat is dat eigenlijk, Domotica?
Volgens Wikipedia is het een ander woord voor huisautomatisering en bestaat het uit een samentrekking van het Latijnse woord domus (huis) en tica, wat afkomstig is van informatica, telematica en robotica. Het kenniscentrum voor Domotica & Slim wonen definieert Domotica als “De integratie van technologie en diensten, ten behoeve van een betere kwaliteit van wonen en leven.”

Maar wat moet je ermee, met die Domotica?
Dat is natuurlijk voor iedereen anders, maar je kunt er bijvoorbeeld een aantal routinematige handelingen in je huis mee automatiseren of vergemakkelijken (inschakelen lichten, neerlaten van de zonwering), zaken met betrekking tot je huis registreren (hoe warm is het in de slaapkamer, wanneer ging de achterdeur open, wanneer heb ik mijn pc aan of uitgezet) of je laten waarschuwen als er iets gebeurt (inbraakalarm, de schuurdeur staat te lang open).
Domotica is sowieso een manier om stroom mee te besparen en het is ook ideaal voor diegenen die het liefst alles wat er in en om het huis gebeurt vastleggen.

Een voorzichtig begin
Domotica is naast allerlei andere keuzes vooral ook een kwestie van geld. Met voldoende geld kan je de prachtigste systemen kopen. Kant en klaar. Ik wilde echter rustig beginnen en heb eerst eens rondgekeken op internet en daarna in bouwmarkten e.d. Vervolgens heb ik wat spullen aangeschaft van het Nederlandse merk klikaanklikuit. Dit spul is overal te krijgen, niet duur en gemakkelijk in gebruik.

Zenders en ontvangers van KlikAanKlikUit

Hierboven is een deel van de zenders en ontvangers te zien die ik heb aangeschaft.

Zenders zijn bijvoorbeeld:

  • Afstandsbedieningen (de cijfers 1, 2 en 3 heb ik er zelf opgeplakt)
  • Deur- of raamsensors
  • Schemerschakelaar
  • Bewegingssensor

Ontvangers zijn bijvoorbeeld:

  • Stekkerschakelaars
  • Inbouwschakelaars

Met behulp van deze spullen is al een aantal semi-automatische handelingen te verrichten:

  • Zo kan de schemerschakelaar automatisch het licht aan- en uitschakelen. Dat aanschakelen kan zowel voor bepaalde tijd (bijvoorbeeld een uur) als permanent. Het licht blijft dan aan totdat diezelfde schemerschakelaar het weer uitschakelt als het licht wordt.
  • De bewegingssensor kan het licht aanschakelen zodra er iemand in de buurt is. Na korte of langere tijd wordt het ook weer uitgeschakeld als er geen beweging meer is.
  • De deursensor kan automatisch het licht inschakelen en dit (eventueel vertraagd) weer uitschakelen.

Allemaal leuk en aardig, maar hoe kan ik dat verder automatiseren?
Als ICT-er wil ik natuurlijk meer doen en verder gaan dan dit soort simpele zaken. Ik wil dingen vastleggen, zelf schakelmomenten bepalen en het met mijn pc, laptop of smartphone kunnen bedienen.
Ook hiervoor heeft klikaanklikuit een nogal prijzige oplossing. Voor een bedrag van rond de 100 Euro is een apparaat te koop dat je in staat stelt hun spullen via wifi en bijvoorbeeld de smartphone te bedienen. Maar wat doe ik nou als ik een temperatuur wil bepalen? Of andere spullen wil aanschaffen dan die van klikaanklikuit? Dan heb ik iets anders nog. Iets veelzijdigers. Maar daarover in de volgende blog.