Naar content
Trending apps
  • Inbox by Gmail

  • Maps: Navigatie en OV

  • WhatsApp Messenger

  • Messenger

  • Facebook

Trending games
  • Dr. Mario World

  • Harry Potter: Wizards Unite

  • Breaking Bad: Criminal Elements

  • The Elder Scrolls: Blades

  • Ghostbusters World

Trending smartphones
  • Xiaomi Mi 9T Pro

  • Samsung Galaxy Note 10 Plus

  • ASUS ZenFone 6

  • OnePlus 7 Pro

  • Google Pixel 3a XL

Nieuwste tablets
  • Samsung Galaxy Tab S6

  • Samsung Galaxy Tab A 10.5

  • Samsung Galaxy Tab S4

  • Samsung Galaxy Tab S3 9.7

  • Asus Zenpad 3S 10

Spraakbesturing HomeWizard via Tasker [tutorial]

· 26 maart 2014

Toen Androidworld de themaweek over Domotica aankondigde werd ik gelijk enthousiast. Ik ben zelf de laatste tijd heel veel met domotica bezig, en telkens weer op zoek naar nieuwe toepassingen. Het leukste vind ik zelf om niet alleen naar de standaard mogelijkheden te kijken die aangeboden worden in de markt, maar juist zelf toepassingen te bedenken en deze te maken.

De domoticaverslaving

Ik ben zelf ooit begonnen met een simpel setje van KlikAanKlikUit bestaande uit een aantal schakelaars en dimmers met daarbij een afstandsbediening. Daarna heb ik al vrij snel de HomeWizard aangeschaft omdat ik de lampen in huis ook graag via mijn Androidtelefoon en/of -tablet wilde kunnen bedienen. Na de aanschaf van de HomeWizard is de domoticaverslaving enorm toegenomen en inmiddels hangt het hele huis vol met KlikAanKlikUit- en HomeWizardspullen. Ik praat dan over de HomeWizard met de daarbij behorende EnergyLink en HeatLink, 6 dimmers, 7 switches, 3 motion sensors (bewegingssensor), 1 autogordijn voor rolgordijnen, 2 deursensors, een draadloze deurbel, een wireless outdoor PTZ IP camera, 5 rookmelders, een schemersensor, 3 thermometers en 12 wandschakelaars. Mocht je nieuw zijn op het gebied van domotica en er mee willen beginnen, let dus op, het is enorm verslavend!

Spraakbesturing

Een tijdje terug kwam ik op YouTube een video tegen van Armando Ferreira waarin hij liet zien hoe hij zijn domoticasysteem kan aansturen middels voice control. Hier gebruikte hij Tasker voor op Android en kon zo via voice commands zijn domoticasysteem aansturen. Mijn eerste reactie was: Dat wil ik ook! Ik ben ermee aan de slag gegaan en al vrij snel is het gelukt om dit ook met de HomeWizard aan de praat te krijgen. Het is namelijk mogelijk om via HTTP GET commando’s de HomeWizard aan te sturen. Zie het als een API (Application Programming Interface) van de HomeWizard. Deze API wordt ook in de app en webinterface van de HomeWizard zelf gebruikt om te communiceren met de HomeWizard.

Ik heb dit als tip gemeld bij Androidworld en mij is gevraagd of ik leuk vind om er een artikel over te schrijven, met daarbij een tutorial hoe je het zelf ook kan implementeren. Leuk idee, dus aan de slag!

Aan de slag

Ik heb een voorbeeld gemaakt voor het aansturen van de HomeWizard via voice commands in Tasker. De bedoeling is dat je kunt zien wat je moet doen in Tasker om het voor elkaar te krijgen en dat bepaalde 'bouwblokken' er al voor je zijn die je zelf kunt gaan gebruiken.

Als je nog nooit met Tasker hebt gewerkt kan het misschien even lastig zijn en is het vooral veel informatie om te verwerken. Maar, met een beetje doorzettingsvermogen, geduld en vrije tijd kom je een heel eind.

Wat heb je ervoor nodig?

* De HomeWizard met één of meer KlikAanKlikUit-schakelaars

* Tasker

* De plugin AutoVoice voor Tasker

* Enige kennis van Tasker, alhoewel ik het zo goed mogelijk zal proberen uit te leggen

* Vrije tijd en wat geduld

Ik zal eerst laten zien hoe het in de praktijk werkt en dan stap voor stap uitleggen hoe je dit zelf ook kunt maken.

Stap 1: Configuratie van de HomeWizard

Om met de HomeWizard te kunnen communiceren heb je het IP-adres en port van de HomeWizard nodig. Standaard krijgt de HomeWizard een dynamisch IP-adres van je router, maar het beste is om de HomeWizard een vast IP-adres te geven. Dit kan ingesteld worden met de HomeWizard Configuration Tool die je hier kunt downloaden. De werkwijze van de tool spreekt voor zich en anders kun je op de site van HomeWizard daar meer informatie over vinden. Daarnaast heb je het wachtwoord nodig van de HomeWizard, dat je zelf hebt ingesteld.

Verder moeten er natuurlijk al één of meer schakelaars zijn ingesteld in de HomeWizard die je wilt gaan bedienen via voice commands.

Stap 2: De ID’s van de schakelaars achterhalen

In de app of webinterface van de HomeWizard zie je bij je schakelaars alleen de namen staan die je zelf hebt opgegeven. Om straks vanuit Tasker schakelaars te bedienen heb je de ID-nummers nodig van de schakelaars.

Deze kun je via een URL in je browser opvragen. Deze URL is als volgt opgebouwd: http://ipadres:port/wachtwoord/swlist

Voorbeeld: http://192.168.1.10:80/wachtwoord/swlist

Het resultaat wat je nu terug krijgt in je browser is in JSON. Als je hiermee niet bekend bent is het misschien in eerste instantie wat lastig te lezen. Er zijn verschillende tools op het internet te vinden waarmee je het wat meer leesbaar kunt maken, bijvoorbeeld The JSON Validator.

Hier een voorbeeld van een deel van het resultaat:

{

"status": "ok",

"version": "2.56",

"request": {

"route": "/swlist"

},

"response": [

{

"id": 0,

"name": "Lamp Woonkamer",

"type": "switch",

"status": "off",

"favorite": "no"

},

{

"id": 1,

"name": “Lamp Keuken",

"type": "switch",

"status": "off",

"favorite": "no"

},

{

"id": 2,

"name": "Lamp Gang",

"type": "switch",

"status": "off",

"favorite": "no"

},

…….

Het gaat nu om de velden 'id' die je ziet. Noteer de ID-nummers van de schakelaars die je wil gaan bedienen.

Stap 3: Tasker installeren en het voorbeeld project importeren

Allereerst moet je Tasker en de plugin AutoVoice installeren op je Androidtelefoon of -tablet. Ik heb een voorbeeldproject in Tasker gemaakt wat je kunt importeren. Zodra je dit project hebt geïmporteerd kun je het verder naar eigen wens aanpassen.

Het voorbeeld project kun je hier downloaden:

Volg nu de onderstaande stappen:

1. Plaats het bestand “HW.prj.xml” in de map “Tasker/Projects” op je Androidtelefoon

2. Er worden een aantal geluidsbestanden (.wav-audio bestanden) gebruikt die afgespeeld worden zodra een taak is uitgevoerd. Plaats deze         bestanden in de map “Tasker/Sounds” op je Android device.

3. Open Tasker. Als je Tasker nog niet eerder hebt gebruikt ziet het beginscherm er als volgt uit:

Tasker

4. Ga nu naar de instellingen (menu -> preferences) en zorg dat de instelling 'Beginner Mode' is gedeselecteerd:

Tasker

5. Ga terug naar het hoofdscherm van Tasker, dit ziet er nu iets anders uit, in de statusbalk onderaan het scherm is er een icoontje van een       huis bijgekomen:

Tasker

6. Houdt nu het 'home'-icoontje links onderin lang indrukt tot er een menu verschijnt en kies dan voor “Import”

7. Selecteer het bestand 'HW' (Dit bestand hebben we in stap 1 op je device geplaatst). Het project wordt nu direct geïmporteerd in Tasker:

Tasker

8. Allereerst moet je nu je IP-adres, port en wachtwoord van de HomeWizard instellen. Ga hiervoor naar het tabblad “Tasks” en klik op de         task 'HW_Init':

Tasker

9. Klik op regel 3 en vul de volledige URL in als volgt: http://ipadres:port/wachtwoord

Tasker

10. Klik bovenin het scherm twee keer op '<' om terug te gaan, de instellingen zijn nu opgeslagen.

Stap 4: Instellen van voice commands en schakelaars

Nu is het tijd om je eigen voice commando’s in te stellen, en de schakelaars die je wil bedienen er aan te koppelen.

1. Selecteer het tabblad 'Profiles' in hoofdscherm van Tasker.

2. In dit voorbeeld heb ik drie profielen gemaakt. Het profiel 'AutoVoice Failed' wordt uitgevoerd zodra een voice commando niet herkend is,       en speelt een geluidje af.

  • Het profiel 'AutoVoice Lampen' wordt gebruikt om één of meerdere lampen te schakelen.
  • Het eerste voice commando is hier altijd 'Lampen', en daarna wordt er vanuit gegaan dat het tweede voice commando de schakelaar is die je wil bedienen, bv 'Woonkamer' of 'Keuken'. 
  • Het profiel 'AutoVoice Rolgordijnen' is een tweede voorbeeld wat geactiveerd wordt het bij voice commando 'Rolgordijnen'. De werking is verder bijna identiek aan die van het profiel 'AutoVoice Lampen'.

3. Selecteer het profiel 'AutoVoice Lampen'.

Tasker

4. Hier zie je nu aan de linkerkant waar het profiel door geactiveerd wordt. In dit geval een state 'AutoVoice Recognized', wat wil zeggen dat       er een voice commando is herkend.

Als je hier op klikt, zie je dat dit profiel alleen geactiveerd wordt als het commando 'Lampen' is herkend:

Tasker

5. Door middel van het potloodje kun je dit eventueel aanpassen. Klik op het potloodje en selecteer 'Command Filter'. Hier kun je aanpassen       welk woord herkend moet worden:

Tasker

6. Ga nu terug naar het profiel. Aan de rechterkant staan de acties die uitgevoerd moeten worden. Hier kun je de schakelaars in je                   HomeWizard gaan koppelen aan uitgesproken commando’s zoals bv 'Lampen Woonkamer' of 'Lampen Keuken'.

Klik op de acties, je komt dan in het volgende scherm terecht:

Tasker

7. Regel 4 t/m 7 zijn hier van belang. Zoals je ziet kun je hier de ID’s van je lampen instellen en het voice commando er aan koppelen. In het regel 4 wordt dus schakelaar 4 bediend zodra het tweede woord wat is herkend 'keuken' is.

Dit profiel kun je nu verder gaan aanpassen naar je eigen behoefte.

Stap 5: Voice recognition activeren

Tasker is nu helemaal geconfigureerd en nu wordt het tijd voor het onderdeel waar het allemaal om draait: Babbelen tegen je telefoon, en een lamp aan- of uitschakelen.

Er zijn verschillende manieren om de voice recognition te activeren. De makkelijkste manier is om het te activeren via een task in Tasker, en deze op je homescreen te plaatsen. 

In het voorbeeld project is hiervoor al een task opgenomen die 'Activate AutoVoice' heet.

Het kan per home launcher die je gebruikt (bijvoorbeeld stock Android of Nova Launcher) verschillen hoe dit het makkelijkste werkt, maar het kan in ieder geval altijd via de widget 'Task' of 'Task Shortcut' van Tasker. Hiermee maak je een shortcut (snelkoppeling) op je homescreen aan naar een task in Tasker.

Plaatst de widget op je homescreen, en selecteer de task 'Activate AutoVoice'.

Zodra je nu deze snelkoppeling opent, verschijnt het onderstaande scherm, en kun je voice commando inspreken:

Tasker

Nadat je een voice commando hebt ingesproken krijg je een pop-upschermpje te zien met mogelijke woorden die herkend zijn, en zal de bijbehorende actie worden uitgevoerd:

Tasker

En nu?

Voor dit artikel gaat het te ver om alle commando’s en taken in het voorbeeld project te bespreken en uit te leggen. Alle bouwstenen zijn ieder geval aanwezig zodat je er zelf verder mee aan de slag kunt gaan.

Voor mij is dit de eerste tutorial die ik gemaakt hebt, dus ik hoop dat het één en ander duidelijk is en het jou de mogelijkheid geeft om er zelf verder mee te knutselen.

Dit artikel is geschreven door Gerhard ter Mors.

Spelfouten, taalfouten of inhoudelijke fouten ontdekt? Stuur dan een mailtje naar de auteur van dit artikel!

Reacties (40)
Bezig met laden van reacties...