“HomeWizard” UWP app

Nadat ik een SmartSwitch bij de Action had gekocht en deze met de standaard app kon bedienen, werd het de uitdaging om hem ook via een Raspberry Pi met Windows 10 IoT te bedienen.

 

SmartSwitch

De SmartSwitch bleek via HomeWizard Lite te werken en dat communiceert via REST over het internet.

Na wat onderzoek naar de heen en weer gestuurde gegevens naar diverse HomeWizard websites, heb ik een eenvoudige app geschreven.

Je kan zelf de code en opmaak aanpassen voor eigen schermgrootten (bijvoorbeeld  voor Windows Phone of tablet)  en je kan ook andere HomeWizard compatible apparaten programmeren, zoals bijvoorbeeld Somfy motoren voor zonwering.

Het lijkt moeilijker dan het is, als je eenmaal door hebt welke gegevens er heen en weer gestuurd worden, dan blijkt het best eenvoudig uit te breiden.

De code is via GitHub te downloaden.

De eenvoudige schermopmaak ziet er zo uit:

Hoofdscherm met overlappend inloggegevens scherm.
Hoofdscherm zonder uitgeklapt menu
Hoofdscherm met uitgeklapt menu.

 

Mocht je zelf apparaten toe willen voegen, dan heb je de gegevens nodig van de apparaten die onder je HomeWizard account vallen.

Om deze gegevens te achterhalen kan je, als je de bronbestanden in Visual Studio geopend hebt, vinden door bij de HomeWizardConnector een BreakPoint te plaatsen bij de laatste regel van de GetDevicesJson taak.

Breakpoint

Bij het debuggen van de code zal Visual Studio hier stoppen en kan je de json variabele via de JSON Visualizer bekijken.

Hier vind je dan ook de waarde “typeName” onder “devices”, welke je ook weer op kan zoeken bij “deviceTypes”.

Als je de juiste “name:” gevonden hebt, deze is dan gelijk aan “TypeName”, dan kan je daar ook de bijhorende “actions” vinden, met de mogelijke opdrachten die bij je apparaat horen.

Met deze gegevens kan je dan je eigen app maken, die dus niet alleen met de “plug_outlet” HomeWizard apparaten overweg kan.

Ik heb ze zelf niet toegevoegd, dit aangezien ik die apparaten nog niet heb.

JSON Visualizer

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *