FIBARO Virtual Device in HCL en HC2
- Geplaatst op
- Door Patrick
- Geplaatst in Fibaro Blogs
- 0
Met een Virtual Device in de FIBARO Home Center kun je o.a. knoppen of een slider maken voor eenvoudige bediening van je slimme apparaten. In dit Blog laten we zien hoe je dat doet met een "string" code, zodat dit zowel in de Home Center Lite als in de Home Center 2 werkt.
Introductie
Virtuele apparaten kunnen LUA-codering of de HTTP (string) -methode gebruiken voor interactie met slimme apparaten in jouw lokale netwerk. Echter de LUA-taal is alleen beschikbaar op de Fibaro Home Center 2, dus Virtuele apparaten die zijn gemaakt in LUA werken niet op de Home Center Lite.
In dit Blog richten we ons op het maken van Universele Virtual Devices (VD's) met strings, ofwel de HTTP-methode, die dus zowel op de Home Center Lite als in de Home Center 2 werken. Voorheen werd gebruik gemaakt van de Firebug-add-on van Mozilla Firefox voor het achterhalen van de code, maar die werkt niet meer in de nieuwere versies. Je kunt nu gewoon gebruik maken van de ingebouwde Developer Tools die je activeert met Functietoets F12. Op deze manier kunnen we alle opdrachten vinden die door de webbrowser naar andere apparaten worden verzonden, zoals bijvoorbeeld voor audio-videosystemen, camera's en andere devices.
Je kunt uiteraard ook de Developer Tools in IE of DevTools in Chrome gebruiken, maar wij richten ons voor dit Blog even enkel op het gebruik met Firefox.
FIBARO Virtual Device aanmaken
1. Als je een virtuele apparaat wil maken, begin je met het aanmelden bij het FIBARO basisstation als supergebruiker.
2. Klik op het tabblad "Apparaten" in het bovenste paneel en vervolgens op de knop "Apparaat toevoegen of verwijderen" in de linker zijbalk.
3. We zien nu een menu van waaruit we het virtuele apparaat kunnen toevoegen. Klik op de knop "Toevoegen" in het gedeelte Virtueel apparaat toevoegen.
4. Het nieuwe apparaat venster verschijnt zoals hieronder wordt weergegeven.
Beschrijving van het menu:
Naam: de naam van het virtuele apparaat
Kamer: de ruimte waaraan een virtueel apparaat wordt toegewezen
IP-adres: internetprotocol-adres van het apparaat zelf of anders het standaard VD adres van je Home Center (zie verderop)
TCP-poort: Transmission Control Protocol van het apparaat of anders de standaard VD poort van je Home Center
Klik vervolgens op het tabblad "Geavanceerd" om het onderstaande venster te zien.
In geavanceerde opties kunnen we een set knoppen kiezen die zichtbaar zal zijn als je virtuele apparaat. Nadat je het aantal knoppen of de slider hebt geselecteerd, klik je op het pictogram 'Opslaan' aan de rechterkant.
Enkele functies van de gebruikersinterface:
We kunnen door de knoppen heen lopen en op elk moment één toevoegen.
Elke klik op de knop activeert de code die eraan is toegewezen.
De naam van elke knop kan op elk moment worden gewijzigd.
We kunnen het pictogram voor elke knop wijzigen, wat zichtbaar zal zijn in de interface van het VD.
Nadat je de juiste samenstelling van de knoppen hebt ingesteld, voeg je de juiste instelling toe voor specifieke knoppen. Elke knop kan afzonderlijk worden geconfigureerd. Bovendien kan elke knop worden geconfigureerd met de navolgende instellingen;
(Knop)Label - dynamisch tekstbericht.
Kan worden gebruikt als dynamische feedback met toestand statussen of andere netwerkgebaseerde tekstinhoud.
Button of Knop - Elke knop kan worden gebruikt als een trigger van de scène of als een trigger voor het verzenden van de tekenreeksopdracht.
Slider of Schuifregelaar - kan worden gebruikt voor het dynamisch wijzigen van parameters, bijv. dimmen.
Label 1 - definieert een beschrijving van de specifieke 1e knop (bijv. AAN, UIT). Die tekst zal zichtbaar zijn in de interface van het VD.
ID - definieert een uniek ID voor gebruik in LUA-scènes of blokscènes.
Empty ofwel Leeg - hiermee kun je bepaalde knoppen verbergen.
Main of Hoofd - bepaalde knop is zichtbaar op het tabblad 'Jouw huis'.
Main Loop - zoals de beschrijving zegt, elke code die hier wordt geschreven, wordt continu in een lus uitgevoerd. Vermeldenswaard is het commando - fibaro: sleep die de uitvoering van de main loop code beëindigt. Variabelen die in de loop zijn gedefinieerd, kunnen niet opnieuw worden gebruikt in de knoppen.
Debug - optie op Main Loop of Knop om de code uit te voeren en te testen.
Wijzig Icoon - optie om een eigen pictogram te uploaden die zichtbaar zal zijn nadat je op deze knop drukt. Een pictogram moet 128 × 128 pixels zijn, met een transparante achtergrond. Momenteel werken (nog) niet alle iconen in de App. Soms helpt verwijderen en opnieuw installeren van de App.
FIBARO Virtual Device Code maken
We weten nu hoe we knoppen moeten instellen in ons virtuele apparaat, dus nu is het tijd om de code voor elke knop te schrijven. Begin met het openen van Firefox en log in als een Super-gebruiker op je Fibaro Home Center. Dankzij Firefox Developer Tool met F12 kunnen we zien welke opdrachten door de controller worden verzonden als je op een knop drukt van het Apparaat en kunnen we die vervolgens kopiëren en plakken in onze code voor virtuele apparaten.
In ons voorbeeld gebruiken we de FIBARO Rolluik Schakelaar voor een Rolgordijn, waarvoor we een VD willen maken met 2 knoppen voor een Dag en Nacht stand. We klikken nu op "Open" en noteren de POST URL code, en op "Sluiten" en noteren de POST URL code, en zetten we de "Slider" ongeveer in het midden en noteren de POST URL code. Tussen de opdrachten kun je op het prullenbakje klikken om het code veld leeg te maken en het overzichtelijk te houden. Zie onderstaande Webinterface screenshots van de Slider opdracht code;
Tevens checken we steeds de Parameters, of hier een waarde vermeld wordt. Dit is bij dit voorbeeld enkel het geval voor het gebruik bij de "Slider" en is dit het percentage van het openen van het Rolgordijn, in dit geval 51%, wat je uiteraard straks zelf kunt aanpassen.
We hebben nu navolgende genoteerd;
Extern adres: 192.168.178.190:80 (Dit is in dit geval het IP adres van de Home Center zelf)
Versie: HTTP/1.1
POST sluiten/close:
http://192.168.178.190/api/devices/108/action/setAjar
Parameters: leeg
POST open:
http://192.168.178.190/api/devices/108/action/open
Parameters: leeg
POST slider, ca. half open:
http://192.168.178.190/api/devices/108/action/setValue
Parameters: {"args":[51]}
We hebben de opdrachten verzameld om de FIBARO Rollershutter te schakelen. Nu is het tijd om de code te maken die wordt geactiveerd door op ons virtuele apparaat te klikken. In dit geval willen we twee knoppen gebruiken in ons virtuele apparaat, nl; Dag en Nacht stand. Nadat we die knoppen hebben ingesteld, moet het verder ingevuld worden zoals hieronder. Merk op dat als er commando's naar de Fibaro API zelf worden gestuurd, dat deze het IP-adres en de poort nummers zoals hieronder moeten hebben. Als je een virtueel apparaat voor een ander apparaat maakt, moet je het IP-adres nummer van dat apparaat invullen. Hetzelfde met TCP-poort.
Nu zullen we een aantal codes maken. Fibaro Home Center begrijpt enkel de reekscode die volgens een bepaald patroon wordt verzonden.
Het eerste deel van de code moet een van de drie bewerkingen bevatten:
- GET: wordt meestal gebruikt om apparaat status / -waarden te nemen
- PUT: wordt gebruikt om waarden te wijzigen
- POST: wordt gebruikt om de status te wijzigen / nieuwe gegevens te maken
Vervolgens hebben we een IP-adres voor de host waarnaar het commando zal worden verzonden. In ons geval is dit het IP-adres van de gateway.
Laatste onderdeel is autorisatie van referenties, in dit geval login en wachtwoord, gecodeerd in base64-code. Om Super User login- en wachtwoorddetails correct in string te converteren, moeten we een encoder gebruiken, bijvoorbeeld: http://www.motobit.com/util/base64/encoder.
Het onderstaande voorbeeld laat zien hoe "login: admin, wachtwoord: admin" wordt geconverteerd naar string na het gebruik van de optie "Converteer de brongegevens".
Het resultaat (YWRtaW46YWRtaW4NCg ==) moet worden geplakt na de opdracht "Basic" in het virtuele apparaat.
Als samenvatting zou het patroon van de code in dit geval er als volgt uit moeten zien:
Opdracht (GET, PUT, POST) opdrachtadres zonder IP-adres HTTP / 1.1
Host: IP-adres van Home Center
Autorization: Basic + spatie en je Super User inloggegevens login: wachtwoord omgezet in string (zie hieronder)
Een lege regel
Optionele parameters om te verzenden
Voor de Dag-stand willen we het rolgordijn ca. half open hebben en is in dit geval op open 42% gezet.
Voor de Nacht-stand willen we het gordijn volledig sluiten.
De codes hadden we eerder genoteerd, en gaan we nu invullen onder beide knoppen.
Na het opslaan van de wijzigingen (knop opslaan in rechter paneel) kunnen we het virtuele apparaat testen. Als alles goed werkt zou het virtuele apparaat exacte opdrachten verzenden zoals die worden verzonden via een webbrowser interface. Ook kan het VD nu worden gebruikt in blokscènes (niet als trigger) op de FIBARO Home Center.
Door met strings te werken en niet LUA code, werkt het Virtual Device zowel in de Home Center Lite als in de Home Center 2.
Mocht u n.a.v. dit artikel nog vragen of opmerkingen hebben, reageer dan gerust via onderstaand formulier.
Reacties
Wees de eerste om te reageren...