Als je Homey net hebt gekocht zul je met de basis functionaliteit aardig uit de voeten kunnen. Zodra je wat geavanceerdere flows wil gaan maken dan ontkom je er niet aan om logica te gaan gebruiken. In deze blog wil ik de ingebouwde logica in Homey gaan behandelen. De ingebouwde logica komt aardig overeen met de better logic app dus deze blog kan je ook gebruiken als je de better logic app gebruikt in plaats van de ingebouwde logica.
Wat kan je met de logica functie?
Met de logica functie kan je schakelingen maken op basis van variabele. De logica functie is een erg handige functie omdat een variabele contant kan blijven veranderen, denk hier bij aan de temperatuur of het wattage van je energie meter. Om deze waardes te gebruiken kan je een variabele aan maken en hem vervolgens gebruiken in je flow. Deze variabele kan je aanmaken door naar het tabblad meer > logica > + te gaan.
Variabele
De ingebouwde logica in Homey kent 3 verschillende variabele te weten.
- Ja/nee ( boonlean)
- Nummer (number)
- Tekst (text)
Laten we eens kijken naar wat welke variabele doet.
Ja/nee
Bij een ja/nee variabele moet de variabele waar (ja) of nietwaar (nee) zijn voordat de flow verder gaat.
(voorbeeld) ALS het 18:00 uur is EN variabele “het is donker” is ja DAN zet verlichting aan
(voorbeeld) ALS het 18:00 uur is EN variabele “het is donker” is nee DAN zet verlichting uit
Nummer
Een nummer variabele werkt met cijfers, denk hier bij aan de temperatuur of een co2 waarde welke in een nummer variabele kan worden opgeslagen.
(voorbeeld) ALS het 18:00 uur is EN variabele “het is donker” is groter dan 1 DAN zet verlichting aan
(voorbeeld) ALS het 18:00 uur is EN variabele “het is donker” is kleiner dan 1 DAN zet verlichting uit
Tekst
Met een tekst variabele kan je een flow schakelen met woorden.
(voorbeeld) ALS het 18:00 uur is DAN zet variabel dag op avond
(voorbeeld) ALS het 06:00 uur is DAN zet variabel dag op ochtend
Flow kaarten
Laten we eens gaan kijken naar welke flow kaart mogelijkheden je hebt in de flow editor.
Als kolom
In de als kolom heb je 2 mogelijkheden.
- Een variabele is veranderd
- Een webhook is ontvangen
Een variabele is veranderd
Met deze kaart kan je er voor zorgen dat een flow start zodra de opgegeven variabele is veranderd van waarde.
Een webhook is ontvangen
Met de een webhook is ontvangen kaart kan je een flow laten starten als een webhook word aangesproken.
EN kolom
Als we naar de EN kolom gaan kijken dan hebben we wat meer mogelijkheden en wel maar liefst 9, dit komt omdat je in de En kolom de voorwaarden kan opgeven voor een flow.
- Is precies
- Is gelijk aan ‘ja’ (is om te draaien naar nee )
- Bevat
- Is kleiner dan
- Is groter dan
- ga door met een kans van
- een variabele is gelijk aan
- een vergelijking is waar
- webverzoek statuscode is gelijk aan
Is precies
De waarde van de logica moet precies het zelfde zijn als de opgegeven waarde in de flow kaart.
Is gelijk aan ‘ja’
De ja/nee variabele moet ja zijn om verder te gaan met de flow. Wil je dat de waarde nee is dan kan je de kaart omkeren en dan veranderd de kaart van ja naar nee.
Bevat
Voor deze kaart moet de variabele die je wilt controleren de opgegeven waarde bevatten. Bijvoorbeeld een woord of cijfer.
Is kleiner dan
De nummer variabele moet kleiner zijn dan de opgegeven waarde.
Is groter dan
De nummer variabele moet groter zijn dan de opgegeven waarde.
Ga door met een kans van
Deze kaart zorgt er voor dat de flow verder gaat als het opgegeven percentage bereikt word.
Een variabele is gelijk aan
Met deze kaart kan je 2 waardes of berekeningen met elkaar vergelijken. Mocht de vergelijking waar zijn dan gaat de flow verder deze kaart is ook om te keren in onwaar.
Webverzoek statuscode is gelijk aan
Deze kaart kijkt naar de waarde van een webhook en vergelijkt deze met een opgegeven waarde.
Dan kolom
In de DAN kolom vind je kaarten waar je een variabele mee kan veranderen of aanpassen.
- Zet een tekstuele variabele
- Zet een numerieke variabele
- Bereken een numerieke variabele
- Zet een ja/nee variabele
- Toggle een ja/nee variabele
- Maak een webverzoek
Zet een tekstuele variabele
Met deze kaart kan je een tekst variabele een waarde geven bijvoorbeeld middag of avond.
Zet een numerieke variabele
Deze kaart zet de nummer variabele naar de opgegeven waarde bijvoorbeeld 1 of 400.
Bereken een numerieke variabele
Met deze kaart kan je een som berekenen en vervolgens zet Homey het antwoord in de variabele. Zet je berekening altijd tussen accolades {zet hier je berekening tussen }
Zet een ja/nee variabele
Deze kaart zet de ja/nee variabele op de gekozen waarden.
Toggle een ja/nee variabele
Deze kaart veranderd de ja/nee variabele van waarde. Als de variabele ja is word hij nee en als hij nee is dan word hij ja.
Maak een web verzoek
Met deze kaart kan je een webhook aanroepen.
Zoals je in alle bovenstaande kaart opties’s kan zien zijn de kaarten in de EN kolom voorwaarde, welke waar of niet waar moeten zijn om een flow verder te kunnen laten gaan of om te stoppen. In de Dan kolom zien we de kaarten die een variabele kunnen veranderen.
Wanneer gebruik je welke variabele
Om je een klein beetje op weg te helpen wil ik hier wat voorbeelden geven. Wat ik zelf meestal doe om te bepalen welk variabele ik nodig heb is mezelf een vraag te stellen en dan te kijken hoe ik daar het beste op kan antwoorden, dus bijvoorbeeld is er al verlichting nodig? ja/nee. Hier kan ik dus het beste de ja/nee variabele voor gebruiken. Welk deel van de dag is het? middag. voor deze vraag gebruik ik dan de tekst variabele. Hoe warm moet het zijn voordat het te warm word en de airco aan moet? 25 graden. voor dit antwoord kan ik dus het beste de nummer variabele gebruiken. Met deze manier van vragen aan jezelf te stellen kan je dus makkelijk bepalen welke variabele je het beste kan gebruiken in je flow. Hieronder vind je nog meer voorbeelden van hoe je de variabele kan gebruiken.
Ja/nee variabele
Een ja/nee variabele zou je bijvoorbeeld kunnen gebruiken om te bepalen of de verlichting aan moet of uit moet blijven.
Zoals je in bovenstaande flows ziet heb ik in de En kolom de kaarten is kleiner dan en is groter dan gebruikt. Deze kaarten kijken of de waarde van de Philips hue motion sensor niet groter of kleiner worden dan de opgegeven waarden, mocht dit in een van beiden gevallen wel zo zijn dan zet deze flow in de Dan kolom een ja/nee variabele op ja of nee. Aan de hand van de status van de ja/nee variabele laat ik dan mijn verlichting aan of uitschakelen.
Nummer variabele
Een nummer variabele kan je gebruiken om een gemiddelde te bereken.
In dit voorbeeld bereken ik de gemiddelde luchtvochtigheid van mijn badkamer. Omdat ik twee apparaten in mijn badkamer heb staan welke de luchtvochtigheid kunnen meten. De sensoren verschillen meestal van waarden dus om een goede waarde te krijgen kan je een nummer variabele gebruiken om het gemiddelde te berekenen.
Tekstuele variabele
De tekstuele variabele kan je gebruiken om bijvoorbeeld een dagdeel te bepalen.
In dit voorbeeld kun je zien dat om 06:00 uur Ochtens de tekstuele variable op ochtend word gezet maakt deze flows ook voor de middag en avond en Homey weet welk deel het van de dag is.
Mocht je na aanleiding van deze blog nog vragen hebben laat gerust hier onder een reactie achter of stuur me een berichtje.