Onze sponsor:

Guide:

23 februari 2023 | Niels Laan | Homey

E-inkt display voor de Homey

Gemakkelijk data laten zien op een display.

Er zijn verschillende manieren om data te tonen vanaf je Smart Home systeem. Zo kun je natuurlijk in de Homey APP kijken wat het verbruik is van een bepaalde lamp of via de computer in de web-UI. Deze laatste kun je ook opvragen via een tablet. Deze tablet kun je dan een centrale plek geven in je huis. Dit is natuurlijk wel een beetje een dure oplossing en verbruikt behoorlijk wat energie. 

Daarnaast is de web-UI nou ook niet echt heel lekker te installeren. Wat wel leuk is aan deze optie is dat je een apparaat ook aan en uit kunt zetten. 

Een andere optie is om Home Assistant aan je Homey te koppelen. Je kunt daarvanuit alle data naar de Homey sturen zoals temperatuur, de status van een apparaat, stroomkosten en verbruik. Met Home Assistant kun je een mooi dashboard maken die weer op te vragen is via een tablet. Dit brengt natuurlijk ook weer allemaal extra kosten met zich mee. Want je moet naast je tablet ook nog een apparaat hebben om Home Assistent op te draaien. Niet echt praktisch dus.

The easy-way:

Data laten zien moet dus gemakkelijker kunnen zou je denken. En dat dat kan het zeker. Wij kwamen via de community site van Homey een post tegen over een e-inkt scherm van LilyGo. LilyGo maakt schermen op basis van Arduino en ESP32. De Homey heeft een Arduino APP dus je kunt hem koppelen.

Je hebt alleen een stukje software nodig welke je op het scherm moet draaien. Deze verzorgt dan voor de communicatie tussen het scherm en de Homey. Dit stukje software is gemaakt door sebyldino.

E-inkt (of e-paper) is een technologie die wordt gebruikt in schermen van elektronische apparaten zoals e-readers en de prijsbordjes bij de Mediamarkt. In tegenstelling tot traditionele LCD-schermen die constant achtergrondverlichting nodig hebben om tekst of afbeeldingen weer te geven, werken e-inkt schermen met reflectief licht, wat betekent dat ze licht gebruiken dat op het oppervlak valt om de afbeeldingen te creëren.

E-inkt schermen hebben een aantal voordelen:

- Ze gebruiken minder energie, waardoor dit scherm veel langer mee gaat op een enkele lading.
- Bovendien is het beeld dat op een e-inkt scherm wordt weergegeven veel gemakkelijker te lezen in direct zonlicht, omdat er geen reflecties zijn zoals bij een glanzend LCD-scherm.

Nadelen zijn er helaas ook want dit scherm geeft geen licht waardoor het lastig in het donker af te lezen is.

Wat kun je met dit scherm?

Eigenlijk kun je zo'n beetje alles laten zien wat je ook in de Homey ziet. Dus bv:

Energie:
Stroomverbruik (huidige en totaal) en kosten

Verwarming:
Target temperatuur en huidige temperatuur

Verlichting:
Aan/uit status, dim waarde en kleur

Beveiliging:
Alarm aan/uit, raam open/dicht, beweging gedecteerd, slot

Weer
Temperatuur, wind, regen, lux waarde, uv waarde en luchtvochtigheid

Klimaat:
Temperatuur, luchtvochtigheid, co2, tvoc, ppm, lux waarde, druk en geluid

AV:
Afspelen, volume, kanaal, album en track 

Wat heb je nodig?:

LiliGo Display TS-4.7 epaper
Indien met batterij een 18650 zonder beveiliging (maat xx)
USB Kabel
PC/laptop met Arduino IDE erop geinstalleerd
3d printer voor behuizing (of het laten printen)

Installatie:

Om dit scherm te installeren moet je een aantal stappen volgen. Deze staan duidelijk uitgelegd op de Github pagina:

https://github.com/sebyldino/Homey_e-paper/tree/V1.1.0

Standaard wordt de LilyGo met geen software erop geinstalleerd geleverd. Deze moet je er dus op zetten via de volgende stappen:

1) Installeren van de Arduino IDE software

Ga naar: http://www.arduino.cc/en/software en download en installeer deze. 

2) Voeg ESP32 board pakket toe

Als de installatie voltooid is en je Arduino IDE opgestart hebt ga je naar:

File > Preferences (links bovenin)

Bij "Additional Boards Map Manager URLs" kopieer je de volgende url erin:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Dit heb je nodig om de ESP32 software te installeren in het programma. Als alles klaar is start je het programma even opnieuw op.

3) Installatie ESP32 board in de IDE

Ga naar: Tools > Board > Board Manager

Hier moet je even zoeken op "esp32" en deze installeren.

 

4-Installeren van de nodige "libraries"

Om de display (LilyGo-EPD47) te laten praten met de Homey moet je de "homeyduino" bibliotheek installeren. Dit kun je doen door te gaan naar:

Tools > Manage Libraries

Zoek vervolgens op "homeyduino" en installeer deze.




Nu moeten we nog een bibliotheek installeren, dit kan helaas niet op dezelfde manier als in stap 3 (ESP). Je moet deze even downloaden en installeren door te gaan naar:

https://github.com/Xinyuan-LilyGO/LilyGo-EPD47

Pak dit bestand uit in de "Sketchbook Location" welke je bij de preference kunt vinden. Normaal is dit:

C:\Gebruikers\YOUR NAME\Documents\Arduino\libraries

5) Download van de Homey e-paper screen code en deze installeren

Download de code op deze pagina:
https://github.com/sebyldino/Homey_e-paper

Pak hem uit. Het maakt niet uit waar het komt te staan (als je hem maar weer terug kunt vinden). In deze map staat een Homey_e_paper_V1.X.X.ino bestand. Je moet nu even zorgen dat de map er boven ook "Homey_e_paper_V1.X.X" gaat heten.

Open nu vervolgens het "Homey_e_paper_XXXX.ino" bestand om de WiFi gegevens te veranderen.

Dit kun je in deze regel doen door de volgende waardes in te vullen

const char* ssid = "YOUR SSID"; < WiFi naam
const char* password = "YOUR PASSWORD"; < Je wachtwoord

Dus dat ziet er dan zo uit: 

const char* ssid = "Livebox-1234";
const char* password = "12345678";

Naast dit moet je even de taal wijzigen:

String lang = "FR"; // Possible value: EN, FR, NL

Dat is alles wat je hoeft te doen qua code. Je kunt eventueel nog de naam wijzigen mocht je dat willen:

Homey.begin("Paper Screen"); < Default naam welke erin de Homey wordt getoond.

6) Compiling en upload de code

Nu moeten we de code ook daadwerkelijk op het display gaan zetten. Dit doe je door naar:

Tools > Board Type > Arduino ESP32 te gaan en te kiezen voor "ESP32 Dev Module".

Controleer of de onderstaande waardes goed zijn:

Als je een MAC gebruikt gebruik dan deze waardes:
Upload Speed = 115200
Programmer = Esptool

Als het klopt moet je de boel "compilen" door op CRT +  te drukken. Hij gaat dan even rammelen, dus heb even geduld.

 

Als er geen rare meldingen komen dan kun je alles "uploaden" naar het display. Dit doe je door:

CRTL + U 

Setup Homey en werking:

Basis configuratie:

Nu we de software op het scherm hebben draaien moeten we hem nog gaan configureren. Goed om te weten is dat het scherm in een "altijd aan" modus staat. Hierdoor kun je alles realtime naar het scherm sturen. 

Deze mode is zeer handig om wat te spelen en je configuratie te doen. Als je hem namelijk gaat gebruiken wil je de batterij sparen en hem in een "sleep mode" zetten. Het scherm gaat dan om de x minuten een update halen. Je kunt hem natuurlijk op via de USB kabel aansluiten en hem altijd voorzien van stroom dan heb je deze "sleep mode" niet nodig.

We moeten een paar standaard configuraties doen voordat we de waardes kunnen gaan doorsturen. De eerst is om de layout te keizen, er is een 4 of 6 layout indeling. Om dit in te stellen maak je flow met de volgende kaartje en waarde:

Display mode "horizontal 6"

Nu moeten we zorgen dat het scherm gaat slapen zodat hij niet te veel batterij verbruikt. Dit kun je instellen door:

Time_Deep_Sleep "seconde" in te stellen. Als je dit gedaan hebt zie je een zzz staan bij de update tijd.

Waarde configuratie:

Nu we de basis hebben gedaan, willen we dat er wat waardes op het scherm getoond worden. Hierbij is het van belang dat je de verplichtvelden in deze flow opneemt.

Hiervoor moet je een flow maken welke getriggerd wordt door het kaartje:

Trigger "Tekst" "paperScreenOnline"

Deze zal dus in ons geval om de 300 seconden aangeroepen worden om de nieuwe waardes te laten zien (als je de "sleep modus" gebruikt). Als je hem altijd aan hebt kun je de flow starten om de x seconden.

Om de waardes te laten zien heb je de volgende kaarten tot je beschikking per zone:

Icon *:

Hiermee stel je in welke icoon er getoond moet worden. De volgende zijn beschikbaar:

Naam van Zone *:

Geef de naam van de zone op, zorg dat deze niet te lang is.

Waarde *:

Als laatste geef je de waarde van de zone op:

Als je nou een deursensor bijvoorbeeld hebt dan zal er "True" en "False" getoond worden. Dit kun je wat mooier krijgen door het type kaart te gebruiken:

 

De volgende zijn beschikbaar:

– "light": "true" toont "On" en "false" als "Off"
– "open/close": "true" toont "Open" en "false" als "Closed"
– "on/off": "true" = "ON" en "false" = "OFF"
– "lock": "true" = "Locked" en "false" = "Unlocked"
– "heater": "true" = "Off" en "false" = "On" (reversed)
– "water sensor": "true" = "Wet" eb "false" = "Dry"
– "presence": "true" = "Present"en "false" = "Absent"

 

Weer:

In de rechterbovenhoek kun je het weer tonen. Deze moet je ook aanroepen en dit doe je door:

"Weather_Value" en Custom_weather_Icon via een kaartje op te vragen.

Als waarde kun je het weer van de Homey gebruiken.

Verandering in waarde:

Op het scherm kun je laten zien of de nieuwe waarde t.o.v. de oude waarde hoger of lager is. Dit roep je aan door onderstaande kaartje te gebruiken:

Voorbeeld flow:

Onderstaanden voorbeeld is onze eigen flow welke we gebruiken om de volgende waardes te laten zien:

- Weer en temperatuur
- Huidige vermogen huis (power hour app)
- Huidige vermogen Zonnepanelen
- kWh kosten per dag
- Gas kosten per dag
- Wind kracht (via Alecto weerstation)
- Zonkracht

De zonkracht positie wisselen we met als:

- Auto aan het opladen is
- Wasmachine klaar is
- En zolder raam open staat (deze vergeten we nog weleens) 

Klik hier om het te downloaden.

Dit product is te koop voor:


€ 35
Kopen
;
;

Auteur:
Niels Laan

Oprichter van dit blog en passievolle domotica nerd. Alle artikelen van Niels