De rules van ESPEasy zijn een soort scripttaal en hét unieke aspect van de firmware. Daarmee kun je ESPEasy eigen schakellogica bijbrengen zonder de programmacode van de firmware te hoeven veranderen. We laten je de basis zien, om bijvoorbeeld bij het rebooten het actuele ip-adres en andere statusgegevens zoals e-mail, MQTT-publish of HTTP-request te versturen. De rules zijn echter veel krachtiger dan we in dit artikel kunnen bespreken, maar in de documentatie van ESPEasy vind je een tutorial die verdere informatie biedt.
Om rules aan te maken, moet je die functie eerst activeren: op het tabblad Tools staat onder Advanced de checkbox voor Rules – vink die aan en bevestig met Submit. Wacht een moment en laad dan de webinterface met F5 opnieuw in. Dan verschijnt het tabblad Rules in de interface. De eenvoudigste rule bestaat uit een trigger en een actie, bijvoorbeeld:
on Time#Initialized do
notify 1, ESP verbonden!
endon
Daarmee stuurt de ESP na iedere reboot en succesvolle NTP-tijdsynchronisatie een mail naar het bij de e-mailinstellingen opgegeven adres. De trigger System# Boot zou te vroeg in werking treden, namelijk voordat de ESP zich met zijn wifiverbinding en het DHCP-request bezighoudt, zodat het verzenden van de mail mislukt. Met het grote aantal systeemvariabelen kun je statusberichten dynamisch vormgeven: %ssid%, %bssid%, %ip% en %wi_ch% verraden bijvoorbeeld belangrijke netwerkgegevens. Bijvoorbeeld: notify 1, ESP verbonden: SSID: %ssid%, BSSID: %bssid%, Kanaal: %wi_ch%, IP: %ip%. Als je de komma-gescheiden opmaak niet fijn vindt, kun met %CR% nieuwe regels maken. Alle systeemvariabelen vind je onder ‘Tools / System Variables’ inclusief hun huidige waarden.
Alle sensorinstellingen kunnen bij ESPEasy via de webinterface worden geconfigureerd.
Wil je na iedere reboot hetzelfde bericht krijgen, dan kun je dat bij de systeemvariabelen van de e-mailinstellingen als Body aanmaken. Die mail wordt dan door het commando notify 1 geactiveerd, maar zonder volgende tekst zoals in het eerdere voorbeeld. ESPEasy verstuurt de mail dan zoals in de body opgegeven – toch kun je het commando met aangehangen tekst blijven gebruiken om berichten vanuit de rules te versturen.
GPIO’s en temperatuursensors zijn net zo makkelijk als triggers voor berichten te gebruiken:
on Sensor1#Temperature<20 do
notify 1, De temperatuur bedraagt [Sensor1#Temperature]
endon
Sensor1 geeft de sensor en Temperature geeft de betreffende meetwaarde aan. Die laatste worden bij de instellingen van de sensor weergegeven en zijn vrij aan te passen. Een combisensor kan bijvoorbeeld Temperature en Humidity als meetwaarden hebben. Let er daarbij op dat iedere nieuwe waarde onder 20 °C een mailtje activeert. Anders kun je eventueel het leesinterval bij de sensorinstellingen verhogen naar enkele minuten.
Voeg je bijvoorbeeld een GPIO als eenvoudige schakelaar toe, dan controleer je of de waarde 1 of 0 is:
on Switch1#State=1 do
notify 1, Raam is gesloten
endon
Met if kun je triggers aan meer voorwaarden koppelen, bijvoorbeeld:
on Sensor1#Temperature<15 do
if [Switch1#State]=0
notify 1, Temperatuur onder 15 °C en raam open
endif
endon
Wanneer je meer dan één sensor hebt, kun je die er met and en or bij betrekken, om zoals in dit geval bijvoorbeeld meer waarden of schakeltoestanden op te vragen.
Tijdgestuurde events kun je afhandelen met Clock#Time, in dit voorbeeld om een GPIO elke dag om 15:00 uur te schakelen:
On Clock#Time=All,15:00 do
GPIO,10,1
endon
Vooropgesteld dat de ESP een tijdsynchronisatie heeft.
Als je slechts op één dag wilt schakelen, voer dan in plaats van All een enkele weekdag in: Mon, Tue, Wed, Thu, Fri, Sat, Sun. Wanneer je de GPS-coördinaten van de beoogde locatie bij de Advanced Settings invoert, kun je ook %sunrise% en %sunset% gebruiken in plaats van een vaste tijd. Net als de rules, zijn ook de commando’s uitgebreid gedocumenteerd.