Als je op kantoor gebruik maakt van slimme verwarmingsapparatuur als die van Tado°, kan je de verschillende ruimtes naar wens laten opwarmen volgens een schema of handmatig via de app. De schema's houden geen rekening met flexibel gebruik. Zeker in kantoor omgevingen blijven verwarmingen dan vaak aanstaan, of verwarmen ze op een dag dat niemand aanwezig is.
Met de hogere gasprijzen en belasting op het milieu kan dit nóg slimmer door gebruik te maken van Power Automate en Microsoft Outlook, en passant zorgen we ervoor dat medewerkers zo aangeven of ze naar kantoor komen.

Ons kantoor, een koetsruimte op Sparrendaal is prachtig, maar met enkele eeuwen oud niet bepaald energiezuinig. In de wintermaanden hebben we veel gas nodig om een aangename temperatuur te bereiken. Sinds de gestegen gasprijzen hebben we gekeken hoe we met gelijkblijvend comfort minder gas kunnen verbruiken.

Sparrendaal 

We hebben meters geïnstalleerd om het verbruik inzichtelijk te maken en een thermostaat van Tado om de temperatuur instelling beter regelbaar te maken. Zowel de centrale temperatuur als die van enkele kamers. Hoewel Tado een stuk toegankelijker is dan een thermostaat aan de muur, dachten we met een koppeling van onze agenda's met de thermostaat nog meer gemak te realiseren. Zo kan iedereen binnen Ensior de temperatuur aansturen en met het huidige hybride werken laten we elkaar ook beter zien wanneer we op kantoor zijn en wanneer niet.

In deze blog beschrijft Geoffrey Rosheuvel de stappen die nodig zijn om dit mogelijk te maken.

Wat heb je nodig?

Tado°

  • Slimme thermostaat V3+ en een of meer slimme radiatorknoppen
  • Een bijbehorende gebruikersaccount (van de Tado° app)

Microsoft 365/Exchange Online omgeving

Microsoft Power Automate plan

  • Met ondersteuning Premium flows
  • Gratis 90-dagen per-user trial te gebruiken
  • Daarna pay-as-you-go of per-user plan

Postman (optioneel)

  • Om API-calls te testen of te debuggen

Onze templates (download)

  • Postman voorbeeldcollectie met API calls
  • Twee Power Automate flows

Hoe werkt het?

Als medewerker hoef je in feite niet meer te doen dan een afspraak met een opgegeven locatie in te plannen in je Outlook calender; Power Automate en Tado° doen de rest.

  1. Je maakt een afspraak in in je Outlook 365 Calendar en geeft daarin een locatie op van een kantoorruimte (met een slimme radiator).

hoewerkt1a

hoewerkt1b

  1. Binnen enkele minuten ontvang je een emailbevestiging vanuit Power Automate flow 1. De notificatie geeft aan of de ingeplande afspraak voldoet aan de condities om de verwarming in te schakelen

hoewerkt2

  1. Zodra de afspraak bijna van start gaat, ontvang je een emailbevestiging vanuit Power Automate flow 2. Deze flow schakelt automatisch de verwarming in door de Tado° API aan te roepen en geeft daarbij de gewenste verwarmingsduur en temperatuur doorhoewerkt3
  2. Zodra de afspraak eindigt, zal Tado° weer terugvallen op uw reguliere verwarmingsschema.

Configuratie van onderdelen

Tado

Om de verwarming te kunnen bedienen, heb je de slimme thermostaat nodig. Indien je individuele ruimtes wil verwarmen, moeten deze zijn voorzien van tenminste één slimme radiatorknop. In ons voorbeeld is de slimme thermostaat geplaatst in de koetsruimte en is de vergaderkamer voorzien van twee slimme radiatorknoppen. Dit zie je terug op app.tado.com. De app communiceert met de thermostaat via een Application Programming Interface, de Tado° API.

tado

Zorg dat je voor het automatiseren van de verwarming een aparte inlog aanmaakt (de “service-account”). Het is altijd verstandig dergelijke automatiseringen een eigen account te geven en hiervoor niet je persoonlijke account te gebruiken. Indien deze service-account door een fout geblokkeerd raakt, of per ongeluk de bijbehorende inloggegevens gedeeld worden in tools als Power Automate, kan je de account eenvoudig blokkeren of verwijderen zonder dat je jezelf buitensluit.

tado2

Noteer het emailadres en wachtwoord van de service-account, daarmee gaan we connectie met de Tado° API testen.

Postman

Een veelgebruikte tool om API’s mee te testen is Postman. Met de tool stuur je aanroepen naar de API over het en krijg je antwoorden terug. In Postman kan je een verzameling van deze “API-calls” aanmaken, testen en exporteren en deze vervolgens importeren in Power Automate als een “custom connector” mits deze aan bepaalde technische voorwaarden voldoet (zie: Create a custom connector from a Postman collection | Microsoft Learn).

Helaas is dit voor de Tado° API op het moment van schrijven nog niet mogelijk, want het specifieke authenticatietype wordt niet ondersteund. Zodoende zullen we de API-calls die we in Postman gaan testen vervolgens handmatig definiëren in Power Automate.

Je kunt onze voorbeeldcollectie importeren met de calls die we binnen Power Automate gaan gebruiken, het bestand "TadoBlogEdit.postman_collection.json" in de template files (downloadlink bovenin). In Postman kan je vervolgens enkele parameters aanpassen zodat deze werkt met je eerder aangemaakte Tado° service-account. De collectie is gebaseerd op een blogpost van Stephen C. Philips uit 2017; Tado° heeft zelf geen officiële of publieke API documentatie gepubliceerd. Houd er zodoende rekening mee dat er onverwacht wijzigingen doorgevoerd kunnen worden waardoor de automatisering niet (meer) werkt.

Zodra je de collectie geïmporteerd hebt, kan je met Postman de volgende stappen doorlopen om de API te testen en de benodigde parameters voor Power Automate op te halen. !-- -->

Access token ophalen

De eerste call is het aanvragen van een token. Dit werkt via een zogeheten OAuth2-protocol, voor authenticatie en autorisatie van de applicatie en gebruiker. Daarbij worden de volgende parameters gevraagd:

client_id:tado-web-app
client_secret:wZaRN7rpjn3FoNyF5IFuxg9uMzYJcvOoQ8QWiIqS3hfk6gLhVlG57j5YNoZL2Rtc
grant_type:password
scope:home.user
username:This email address is being protected from spambots. You need JavaScript enabled to view it.
password:Wachtwoord123#

De “client_id” en het “client_secret” zijn de algemene identifiers van de Tado web app, hiermee herkent de API in dit geval dat de call afkomstig zou zijn van de web app. De username en password zijn specifieke identifiers van de Tado°-gebruiker, pas deze aan naar die van de eerder aangemaakte service-account.

Postman1

Zodra je op “Send” klikt, wordt de call verstuurd en zie je onderaan het antwoord met een token terug:

Postman2

In dit geval hebben we alleen het “access_token” nodig. Uit het antwoord valt af te leiden dat deze 599 seconden geldig is en daarna verloopt; dit is ruim voldoende voor het doorlopen van de Power Automate flow. Het access_token wordt tijdelijk in de Postman-collectie opgeslagen en gebruikt voor de hier op volgende calls.

Home ID ophalen

Postman3

Antwoord:

Postman4

Het “HomeID”, hier 1234567,  wordt ook tijdelijk opgeslagen voor gebruik in de hierna volgende calls. Noteer dit nummer ook bij de inloggegevens van de eerder aangemaakte service-account; we hebben het straks in Power Automate nodig.

ZoneID's ophalen

 Zoneid1

Zoneid2

Antwoord (ingekort):

Zoneid3

Hier vinden we de diverse ruimtes en Tado° apparatuur terug. In ons voorbeeld willen we de vergaderkamer gaan bedienen, dus noteren we zoneID 2.

Zone temperatuur instellen

Met een PUT-request kan vervolgens de temperatuur ingesteld worden. In dit voorbeeld geef je in de URL aan dat je de temperatuur instelt voor zone 1, en in de “request body” de temperatuur - en tijdsduur parameters. Deze drie parameters passen we naar wens in een vervolgstap aan in Power Automate.

ZoneTemp1

Antwoord:

ZoneTemp2

Na het versturen wordt in het antwoord de instelling bevestigd, merk hierbij op dat de timestamps in UTC-tijd weergegeven worden en niet in de lokale tijd.

Kantoor locaties

Om gebruik te kunnen maken van kantoorlocaties in Outlook moeten de ruimtes (met een slimme radiatorknop) bekend zijn in je Active Directory. Mocht dit bij jou op kantoor nog niet het geval zijn, kan je deze aanmaken in het Microsoft 365 – of Exchange admin portal. Om deze te kunnen configureren heb je administrator-rechten nodig. Indien je die niet hebt of hier niet bekend mee bent, kan je dit het beste samen met of door een IT-administrator laten uitvoeren.

(zie Room and equipment mailboxes - Microsoft 365 admin | Microsoft Learn voor meer informatie).

In dit voorbeeld voegen we onze sportruimte toe als kantoorlocatie.

KantoorLocaties

Hou bij het aanmaken van de resource rekening met hoe de ruimtes geboekt kunnen worden en door wie, en wat voor impact dit kan hebben op het inschakelen van de verwarming. Bij een Boardroom is het misschien logisch dat deze op een bepaald tijdstip slechts door één iemand tegelijk te reserveren is, en de reservatie eerst door iemand goedgekeurd moet worden. De algemene kantoorruimte is dan weer door meerdere medewerkers tegelijk te boeken (dubbel boeken) zonder dat goedkeuring noodzakelijk is.

Ook wil je uiteraard niet dat door een verkeerde boeking de verwarming onnodig aanstaat, dus zorg dat je de risico’s daartoe inperkt in zowel de boekingsopties als ook de logica in Power Automate in de verdere stappen.

KantoorLocaties2

KantoorLocaties3

KantoorLocaties4

Om vanuit Power Automate flows te kunnen maken die reageren op events van een resource calendar, heeft diegene die de flow maakt volledige toegang nodig tot de aangemaakte resources. Met die toegang kan een agenda uitgelezen worden (de trigger), en kan namens de resource een notificatiemail verstuurd worden. Voeg hiervoor de gebruikersaccount toe aan de send as, send on behalf en read and manage permissies in de tab delegation.

KantoorLocaties5

Power Automate

In Power Automate maken we tweetal automated flows aan. Je kan de flows die wij gebruiken importeren en naar wens aanpassen, de twee zip-bestanden in de template files (downloadlink bovenin). De eerste flow is optioneel, deze geeft een notificatie per mail dat er een event gepland is en of deze de verwarming wel of niet in zal schakelen. Deze notificatie verschijnt binnen enkele minuten nadat iemand deze in zijn agenda ingepland heeft. In de acties van de flow pas je enkele parameters aan zodat deze werkt met jouw Tado° omgeving, de "Calender id" in actie "event is created" en het bijbehorende emailadres in "initialize resource-emailadres".

PowerAutomate

De tweede flow wordt geactiveerd zodra een event bijna begint en de verwarming inschakelt indien aan de conditie wordt voldaan. Ook hier pas je de enkele parameters aan; dezelfde uit de vorige flow plus de overige "initialize" variabelen acties. Vul daar de waarden in die je met Postman gebruikt dan wel opgehaald hebt, de Tado° service-account inloggegevens, de "zoneID", "homeID" en de gewenste temperatuur.

PowerAutomate2

Conclusie

Met bekende middelen van Microsoft (Outlook en Power Automate) hebben we de temperatuur in ons kantoor en enkele kamers ervan instelbaar gemaakt voor alle collega's. Bijvangst is dat we elkaar beter informeren wanneer we op kantoor zijn.

Ons gasverbruik is met ruim 30% gedaald, zonder dat we de temperatuur omlaag hebben gezet.

Leuk dat we dit met middelen die we professioneel ook inzetten, hebben kunnen realiseren. Mocht je vragen hebben naar aanleiding van deze blog, stuur ze dan naar This email address is being protected from spambots. You need JavaScript enabled to view it..

BI Consultant
Ensior B.V. 2024 All rights reserved