Alle mogelijkheden, beslissingen en resultaten van de bouw van onze passieve energie-plus woning

Categorie: Domotica mogelijkheden (Pagina 1 van 3)

Honderden voorbeelden en keuzes te maken op het gebied van domotica. Wat zijn de mogelijkheden?

Flic2 buttons koppelen aan HomeAssistant

Start

In 2019 heb ik meegedaan aan een kickstarter project; Flic2-buttons . Kleine en heel simpele knopjes met een langhoudbare knoopcel-batterij. De bedoeling is dat je zo’n knopje ergens onopvallend kan plaatsen en met indrukken iets kan laten starten.

FlicHub

De flic-button werkt met Bluetooth. De eerste versies konden alleen verbinding maken met een telefoon. Dat is wel lastig als je iets wil doen en de persoon met de telefoon is er niet. Met dit project hebben ze er nog iets aan toegevoegd; een hub. De FlicHub maakt via bluetooth verbinding met de flic-buttons en via WiFi (of een kabel) met het netwerk in het huis. Op deze manier heeft de button dus 24u/dag verbinding met het netwerk.

HomeAssistant

De knoppen zouden via Bluetooth verbinding kunnen maken met een ontvanger in de RaspberryPi (RPI) met HomeAssistant. In HomeAssistant is er een intergratie  en er moet dan op de RPI een service “flicd” worden geïnstalleerd zodat er kan worden geluisterd naar binnenkomende signalen. Ondanks uitzoekwerk en pogingen is me dat niet gelukt. Het kan liggen aan de beperkte WiFi/USB/Bluetooth combinatiemogelijkheden van de Raspberry.

FlicHub-component

Daarom wilde ik graag een poging doen om met HomeAssistant de FlicHub te benaderen. Er is nog geen functionaliteit gemaakt door de community. Ook navraag bij de makers van Flic (ShotcutLabs) leverde in eerste instantie niet veel op. In september wilde ik weer heel graag de Flic-buttons gaan gebruiken voor sturing van de domotica, dus nieuwe moed verzameld om zowel bij ShortcutLabs als bij de HomeAssistant-community na te vragen wat de mogelijkheden zijn en hoe het aan te pakken. Ik begon me al voorzichtig in te lezen in Gitlab, pull-requests, forken van andere source etc. Behoorlijk complex om als nieuweling in te duiken.

FlicHub SDK Firmware

Van ShortcutLabs kreeg ik het bericht dat ik speciale firmware moest hebben om de FlicHub te benaderen. Terwijl ik me via een google-formulier inschreef en wachtte op automatische update van de firmware dook ik in JavaScript, waarmee de SDK te benaderen moest zijn. Online allemaal trainingen volgen en meteen ook Visual Source Code leren en installeren want dat is het meest gebruikelijk bij JavaScipt.

Toen ik de update kreeg, was er ook een beschrijving van hoe de SDK te benaderen, met voorbeelden in JavaScript hoe een en ander aan te pakken.

Wat bleek het geval; je kan via een speciale url de FlicHub benaderen en op het device JavaScript schrijven en draaien. Als de FlicHub een signaal van een button ontvangt kan je code laten uitvoeren. Na wat testscripts had ik snel een werkende code; bij een ‘click’, een ‘double-click’ en een ‘hold’ stuurt het script een http-bericht.

console.log("JavaScript started");
var buttonManager = require("buttons");
var http = require("http");
var baseurl = "http://192.168.xxx.xxx:8123/api/webhook/";

buttonManager.on("buttonSingleOrDoubleClickOrHold", function(obj) {
    var button = buttonManager.getButton(obj.bdaddr);
    var clickType = obj.isSingleClick ? "click" : obj.isDoubleClick ? "double_click" : "hold";
    var url = baseurl + button.name + "_" + clickType;

    http.makeRequest({
        url: url,
        method: "POST",
        headers: {"Content-Type": "application/json"},
        content: JSON.stringify({"serial-number": button.serialNumber, "click-type": clickType}),  }, function(err, res) {
        if (!err) {
          console.log("url send: " + url);
        }
        else {
            console.log("Error sending message over http about " + button.name + ": " + clickType + " - ERROR " + res.statusCode );
        }
    });
});

console.log("JavaScript running")

De Flichub stuurt via het JavaScript een http-POST-request via de url “http://192.168.xxx.xxx:8123/api/webhook/webhook_idnaar HomeAssistant. Het laatste deel, het webhook_id’ bepaald het script zodat HomeAssistant onderscheid kan maken tussen de verschillende knoppen en de manier van indrukken.

Ontvangst bericht door HomeAssistant

HomeAssistant kan het bericht van de FlicHub ontvangen door een ‘Webhook’. Elke combinatie van button en actie heeft een eigen Webhook-ID, bijvoorbeeld “Flic21_click” en “Flic23_hold”. En aangezien elke actie wat anders kan doen, is het nodig elke actie apart op te stellen; als automatisering. In de UI gaat dat tegenwoordig eenvoudig:

  • Naam: “Klik op button 1 doet de woonkamerlampen uit”

  • Modus “in de wachtrij plaatsen” (zodat als je meerdere keren drukt de actie sowieso wordt uitgevoerd)

  • Trigger: type Webhook, ID “FLic21_click”

  • Actie: Activeer scene, ‘scene.woonkamerlampen uit’

De automation ziet er in yaml als volgt uit:

– id: ‘>>automatisch<<‘
alias: Flic21_click is avondlampen uit
description: Onderneem actie als een http POST binnenkomt = webhook flic21_click
trigger:
– platform: webhook
webhook_id: Flic21_click
condition: []
action:
– scene: scene.woonkamerlampen_uit
mode: queued
max: 5

Resultaat

Als nu op een button wordt gedrukt, stuurt deze een bericht naar de FlicHub via Bluetooth.
De FlicHub draait een script en stuurt via Wifi een http-POST met een ID naar HomeAssistant.
HomeAssistant start een automation welke een gewenste actie kan uitvoeren.

Mijn ingestelde functies:

  • Alle woonkamerlampen uitdoen (bij het naar bed gaan)

  • Woonkamerlampen op een stand ideaal voor TV kijken

  • Woonkamerlampen aan als het nog te vroeg voor de automaat is (‘vroeg op’)

  • Toggle (aan of uit) de lamp in de bijkeuken terwijl je niet bij de schakelaar bent

  • Toggle (aan of uit) de keukenspots terwijl je niet bij de schakelaar bent

Kan het ook anders?

Nu ik alles wat meer begin te snappen, zie ik ook wat er nog eenvoudiger kan;

Het maken van het script is niet beslist noodzakelijk. Via de app kan je de FlicHub instellen dat bij een actie er een http-POST bericht wordt verstuurd. Dat moet dan wel voor elke actie en button opnieuw; dus drie per button. Je kan dan wel variëren per actie wat het ID is.

En het nadeel hier is dat je niet heel internet afstruint naar hoe je JavaScript moet schrijven, hoe je Visual Source Code installeert en gebruikt en hoe je changes uitvoert in integraties van HomeAssistant. Ik heb een hoop geleerd dus.

Handleiding van de Flic Hub SDK

Via http://myhub.flic.io/static/tutorial/ kom je bij de ingebakken handleiding van de FlicHub SDK. De beschikbare routines zijn uitgebreid beschreven in een open google-docs-document 

Waar te koop?

De Kickstarter en Indiego-acties zijn voorbij, tegenwoordig zijn ze direct te koop in de flic-shop: https://flic.io/shop

Automatisering achter de schakelaar

Uitgangspunten

In een geautomatiseerd huis gaan lampen automatisch aan bij behoefte. En dan liever ook vaste plafondlampen en dergelijke, niet alleen die ene lamp op een kastje met een stekker in het stopcontact. Bij de domotica in ons huis hou ik drie uitgangspunten aan;
1. Alles blijft met de hand te bedienen
2. Slimme apparaten zo min via de cloud of een dienst van een bedrijf
3. Zo veel mogelijk draadloos, bij voorkeur WiFi

Alles blijft met de hand te bedienen

Als je een slimme stekker wilt welke je in het stopcontact steekt (zoals ik een Wemo of Plugwise heb) dan kijk ik altijd of er ook een knopje op zit om met de hand te schakelen. Dan kan iemand in huis altijd de lamp of iets dergelijks met de hand bedienen. De plugwise voldoet daar NIET aan, want er zit juist geen schakelaar op. Deze wordt door mij dus niet als schakelaar gebruikt, enkel om het verbruik te meten.

Een ‘slimme’ RGB-lamp voldoet hier dus ook niet aan, omdat deze in een fitting ergens moet worden gedraaid waarbij de schakelaar altijd in de aan-stand moet staan. Doet iemand of iets de lamp elektronisch uit, dan zal hij niet aangaan als je de schakelaar omzet; deze gaat immers van ‘aan’ naar ‘uit’. Ik heb hiervan twee lampen; Yeelights.

Inbouwen achter een schakelaar

Een alternatief voor een lamp op een muurschakelaar is een inbouwschakelaar. Dat is een klein kastje welke je achter je muurschakelaar stopt en zowel verbonden is met de draad naar de lamp als de schakelaar. Voorbeelden hiervoor zijn Fibaro, Qubino, Develo, Sonoff Shelly en Tuya.
Er zijn een paar afhankelijkheden die het werken hiermee makkelijker maken
• Extra diepe inbouwdozen. Bij het ontwerp van het huis heb ik er specifiek naar gevraagd en mijn bouwer met veel Duitse aanpak deed dat al automatisch. Door de extra diepte heb je meer ruimte om al die draden en de extra elektronica te plaatsen.
• Overal zowel bruin (Live/Fase) als blauw (Neutral) draad. Ook dat deed mijn aannemer al automatisch omdat ze met een megagrote rol standaard flexibele buis mèt draad door het huis gaan om alle elektra aan te leggen; het stuk voor stuk uitvogelen en trekken van draden wordt in ieder geval bij onze moderne bouw niet meer gedaan.
• Goede wifi (of ZigBee of Zwave) verbinding in het huis. Door een wifi-punt op elke verdieping is dat bij ons geen probleem.
Zelf ben ik voor de allergoedkoopste oplossing gegaan die ik maar kon vinden; via BangGood (een variant van AliExpress) drie Tuya Smart Switches.

Van cloud naar lokaal

Tegenwoordig worden bijna alle ‘smart’ apparaten voorzien van een cloud-voorziening. Er wordt dan reclame gemaakt voor vooral spraakbesturing via Alexa en Google. Via een app kan het apparaat dan worden bediend. Achter de schermen stuurt de app (of ‘Alexa’ als je een spraakcommando geeft) een bericht via het internet naar de centrale server. Bij Tuya-devices is dat in China. In China gaat dat commando naar een ander deel en stuurt weer over het internet het apparaat aan om AAN of UIT te gaan. Voor dit alles heb je dus werkend internet en een werkende provider nodig.
Werkend internet hebben we nagenoeg continue, maar het komt nogal eens voor dat de provider, de fabriek de voorwaarden verandert, de dienst betaald maakt of zelfs uitschakelt. In zo’n geval kan je dus het apparaat niet meer bedienen. Het is een dom en nutteloos apparaat geworden.
<<plaatje cloud informatie stromen>>. Voorbeelden hiervan zijn Nest en ook Tuya welke de koppeling met IFTTT uitschakelt.

Om problemen te voorkomen en minder afhankelijk te zijn is het handig om een lokale variant te gebruiken. Omdat al deze tuya-apparaten gebruik maken van eenzelfde centrale chip met wifi (een ESP8266) heeft iemand bedacht om er nieuwe software (firmware) voor te schrijven; Tasmota. Deze kan nog steeds het apparaat laten werken zoals de bedoeling was. Maar dan zonder koppeling met de centrale server ergens in de wereld.

Om van het een naar het andere te komen een aantal stappen
1) het apparaat moet worden gereset
2) er wordt een ander wifi-apparaat ingesteld welke doet alsof hij een ‘instel-apparaat’ is; een host
3) je smart-device maakt verbinding met de host
4) nieuwe software wordt geplaatst op je smart-device (Tasmota)
5) Tasmota wordt ingesteld op juist werken en wordt actief.
De stappen 2 t/m 4 wordt gedaan met speciale software weer door iemand anders OpenSource geschreven: Tuya-Convert.
En tegenwoordig gaat 95% via wifi (=OTA, Over The Air) ipv het solderen van draadjes in opengemaakte apparaten.

Er is zijn veel handleidingen geschreven over het gebruik van Tuya-Convert en Tasmota: youtube video’s over Tuya-Convert  youtube video’s over Tasmota

En ik maak dus heel veel gebruik van anderen die het allemaal al een keer hebben uitgevonden en in mooie video’s delen met de community. Met name de kanalen en uitlegvideo’s van DigiblurDIY , The Hook Up , SuperHouseTV  en DrZzs  zijn mijn bijna dagelijkse kost geworden.

Yeelight toevoegen

We hebben ook een tweetal RGB-meerkleuren-lampen. Ik heb als uitgangspunt heb om geen “app-only” lampen te hebben, waarbij dus geen domme bediening mogelijk is. Voor sfeer in de woonkamer heb ik een uitzondering gemaakt. Op ongeveer 180cm hoogte, aan weerszijde van de woonkamerwand met de televisie heb ik twee stopcontacten (wandcontactdozen) laten maken.Daar kunnen ook aansluitingen voor geluidsboxen in, maar ook lampen.
Met een relatief simpele stopcontact-E27fitting ontstaat een mooie standaard waarin precies de RGB-lamp kan.
(Als extra functie zit er gelukkig ook een schakelaar op om hem alsnog bij nood uit te schakelen).

De RGB-kleurenlampen zijn van het merk Yeelight. Deze hebben zowel een eigen app, maar zijn ook zeer eenvoudig benaderbaar via HomeAssistant. In het hele huis het communicatieprotocol voornamelijk WiFi en ook deze lampen communiceren via Wifi.

Zoals de naam al doet vermoeden kunnen de RGB-lampen alle kleuren aannemen. Er zitten zelfs speciale functies op zoals een paar keer fel knipperen of als een disco variëren. Gebruiken we allemaal niet, het gezin zou er gek van worden. In de praktijk gebruiken we één zachte gele kleur voor de avondinstelling.

Via de Yeelight-integratie in HomeAssistant zijn ze eenvoudig te koppelen. Als groep lampen zijn nu dus aangeschakeld de Wemo-stekker-schakelaars en de Yeelight-RGB-lampen. Zo kan de domotica “alle woonkamerlampen” in 1 keer schakelen.

Wemo stekker schakelaars toevoegen aan domotica

We hebben ook twee Belkin Wemo stekker schakelaars. Deze stop je in het stopcontact (de wandcontactdoos als je het goed wilt zeggen) en daar kan dan een stekker van een staande lamp of lampje in de hoek of van de kerstboomverlichting in. Er zit ook een knop op (in tegenstelling tot de plugwise stekkers) dus je kan ze ook handmatig schakelen zonder je telefoon of laptop er bij te pakken.

De Wemo-schakelaars maken via wifi verbinding met het internet in huis, bij ons is dat de Fritzbox router/modem van de internet-provider. En omdat de raspberry pi met HomeAssistant ook aangesloten is op het netwerk kunnen ze elkaar ‘zien’.  De Wemo-integratie in HomeAssistant kan automatisch de apparaten herkennen en toevoegen aan het dashboard. Installatie en koppelen ging dus heel erg eenvoudig. Op deze manier kan je ook via de domotica de schakelaars instellen en bijvoorbeeld bij zonsondergang aanschakelen.

Domotica inzet plugwise

We hebben een aantal Plugwise stekkers. Dit zijn stekkers welke je in je wandcontactdoos kan stoppen. Je kan ze op afstand schakelen. En ze meten het stroomverbruik. Onderling staan de plugwise stekkers (Circle’s genaamd) met elkaar draadloos in verbinding. Dit doen ze via het ZigBee protocol. En als er één in verbinding staat met een Plugwise Stick (met USB-stekker) dan worden de signalen doorgestuurd. Ze wisselen dus onderling alle gegevens uit, indien daarom gevraagd. Er zit geen losse aan- en uit-knop op om de stroom te schakelen, dat kan dus alleen op afstand.

De stick kan in een pc, met Plugwise software/ Met de software kan je de Circle’s aansturen en gebruiksdata binnenhalen.

Als je de stick in de Raspberry Pi USB-poort stopt kan HomeAssistant er ook mee bezig. Zo wordt live gebruiksinformatie gehaald en kan je ze aan- en uitschakelen.

Wij hebben ze nu alleen voor energie-informatie ingezet. Ze zitten achter de koelkast, vrieskast, internetrouter, wasmachine, wasdroger etc. We schakelen ze niet want we kunnen ze niet bij het apparaat schakelen en dan is er geen backup als je geen mobiel bij de hand hebt.

« Oudere berichten

© 2020 Eco Zonnewoning

Thema gemaakt door Anders NorenBoven ↑