APNT-78 - Udvidelse af sprinklerstyring i Fibaro Home Center

Denne vejledning viser, hvordan du udvidet Fibaro Home Center 2's Sprinklers Panelets funktioner, så du kan justere vandperioden og automatisk forsinke den næste vandcyklus, hvis Fibaro Vejrrapporterne viser, at det regner.

I det foregående eksempel APNT-77 - Kontrollerende sprinklere Vi introducerede panelet Fibaro Sprinklers, der er tilgængeligt i Fibaro Home Center 2. (HC2) Z-Wave Controller.

Udvidelse af sprinklerpanelets kontrol

Sprinklers-panelet giver dig mulighed for manuelt at tilføje en 'regnforsinkelse' og øge / reducere vandcyklustiden inde i panelet Sprinkler (se APNT-77. For detaljer) kan du dog ikke gøre dette fra den nuværende smartphone-app, og du kan ikke direkte ændre dem fra en standard hjemmecenter scene.

Ved at oprette en virtuel enhed, sammen med en lille smule Lua-kode, kan du have kontrol over disse funktioner, og du kan bruge en standard scene til at justere dem baseret på vejret.

Denne vejledning viser dig, hvordan du:

  • Opret en virtuel enhed i Fibaro Home Center
  • Program knapperne til at styre sprinklerpanelets regnforsinkelse og 'Juster vand' funktioner
  • Opret en scene for automatisk at forsinke sprinklercyklussen, hvis det regner eller stormy

Bemærk: Dette kan kun bruges i Fibaro Home Center 2 (HC2), da det kræver LUA-kodning - det kan ikke bruges i Fibaro Home Center Lite (HCI)


Sprinkler Virtual Device.

En virtuel enhed er lige hvad det lyder som, en enhed, der ikke er en fysisk enhed, men en oprettet i hjemmet for at styre andre enheder. Dette eksempel viser en virtuel enhed, der kan ændre sprinklerpanelets regnforsinkelse (0, 24h, 48h) og 'justere vand' (0, 10%, 20%) værdier.

Virtuel enhed til styring af 'regnforsinkelse' og 'Juster vand'figur 1: Virtuel enhed til at kontrollere 'regnforsinkelse' og 'justere vand'

Opret den virtuelle enhed

  • I hjemmet går til Enheder > Tilføj Fjern enheder
  • I sektionen Virtual Device klik 'Tilføje'
  • Giv enheden A Navn
  • Vælg en Værelse Fra rullelisten
  • IP-adresse - Indtast hjemmecenterets IP-adresse
  • TCP Port. - Gå ind 80 (Dette er den port, der bruges af hjemmecenter)
  • Klik på 'Gemme'ikon på højre sidebjælke

Oprettelse af en virtuel enhed til sprinklerpaneletFigur 2.: Oprettelse af en virtuel enhed til sprinklerpanelet

Opret knapperne

Den virtuelle enhed har brug for to rækker af tre knapper - den første række styrer 'regnforsinkelsen' og den anden kontrollerer værdien 'Juster vand'.

  • Gå til den virtuelle enhedens 'Fremskreden'Tab.
  • Rul ned til 'Vælg sæt af knapper' sektion
  • Vælg 'Tre knap pr. Linje'- Dette vil give os en tre knapper
  • Klik på 'Tilføj sæt'Button
  • Tilføj en anden række med tre knapper (for justering af vandkontrol)
  • Klik på 'Gemme'ikon på højre sidebjælke

Oprettelse af en knap i den virtuelle enhedFigur 3.: Oprettelse af en knap i den virtuelle enhed

Tilføj Lua-koden

Hver knap vil blive styret af et simpelt Lua-script, der tager 'regnforsinkelsen' eller 'Juster vand' værdi fra panelet Sprinklers, ændrer værdien og derefter opdaterer panelet.

  • Rul ned til den første knap og navngiv det - '0h.'I dette tilfælde (for nul timer forsinkelse)
  • Vælg 'Lua.'(bunden af ​​bundredaktøren)
  • Indsæt Lua-koden (nedenfor) og foretage ændringer for dit system (HC2 IP-adresse, brugernavn. og adgangskode)
  • Klik på den blå 'Gemme'ikon på højre sidebjælke
  • Test knappen i vinduet 'Debug', hvis du ønsker, og kontroller, at regnforsinkelsen er blevet ændret i panelet Sprinkler

Lua Code

- Indstil autentificering

Hc2 = net.fhttp ("192.168.1.162",80)

HC2: Setbasicauthentication ("admin.", "admin.")

Fibaro: Fejlfinding ('Button Lua udløst:')

- Få datatabellen fra sprinklers panel

Svar, Status, Errorcode = HC2: Få ("/ API / Panels / Drenchers")

jsontable = json.decode (svar)

Fibaro: Fejlfinding ('Regnforsinkelsesværdi:' ..jsontable.rainDelay);

- Skift data i LUA for 0 timers forsinkelse

jsontable.raindelay = 0.

Fibaro: Fejlfinding ('Regnforsinkelse Ny værdi:' ..jsontable.rainDelay);

- Send opdateret bord til panelet

json = json.code (jsontable);

HC2: Sæt ("/ API / Panels / Drenchers", JSON)

Fibaro: Log ("Ready")

Fibaro: Fejlfinding ('Button Lua færdig:')

Lua Forklaring.

Lua-koden er opdelt i sektioner efter kommentarlinjer (som du kan fjerne), det indeholder også flere debug linjer for at hjælpe dig med at teste det inden for den virtuelle enheds debugger.

  • Det første afsnit angiver din HC2s IP-adresse - du skal tilføje den korrekte IP-adresse
  • Indtast din korrekt brugernavn. og adgangskode i anden linje (admin. & admin. I dette eksempel)
  • Det andet afsnit får sprinklerpanelets datatabell fra HC2
  • Det 'RAINDELAY.'Værdien ændres i det tredje afsnit - til Nul I dette tilfælde
  • Det sidste afsnit sender datatabellen tilbage til sprinklerpanelet med den nye værdi for 'RAINDELAY.'

Debug Lines.: De blå linjer (Start 'Fibaro: Debug) er debug linjer, der viser værdier i debug-vinduet - du kan bruge disse til at bekræfte, at koden kører korrekt. Du kan slette disse, efter at knappen fungerer.

Tilføjelse af IR-kommandostrengen til knappenFigur 4.: Lua kode i den virtuelle enhedens knap '

Konfigurer de andre knapper

Nu skal du konfigurere de to resterende 'Rain Delay' knapper og de tre 'Juster vand' knapper ved at gentage ovenstående proces.

  • 24h. - Skift RAINDELAY LINE til jsontable.rainDelay = 24.
  • 48h. - Skift RAINDELAY LINE til jsontable.raindelay = 48.
  • 0% (Juster vand) - Skift Raindelay Line til jsontable.Adjustwater = 0.
  • 10% - Skift RAINDELAY LINE til Jsontable.Adjustwater = 10.
  • 20% - Skift RAINDELAY LINE til jsontable.Adjustwater = 20.
  • Klik på den blå 'Gemme'ikon på højre sidebjælke

Den endelige virtuelle enhed er vist i figur 5, dette har sprinklerikonet i stedet for det standard virtuelle enhedsikon - se APNT-72 - Ændring af Fibaro Home Center Ikoner. Du kan nu foretage ændringer i sprinklerpanelets værdier uden at skulle åbne det, og lige så vigtigt kan du nu automatisk ændre disse værdier automatisk fra en fibaro scene.

Virtuel enhed til styring af 'regnforsinkelse' og 'Juster vand'Figur 5.: Sprinkler virtuel enhed med opdateret ikon

Automatiseret vejr scene

Vi kan nu bruge sprinklerens virtuelle enhed som en del af en scene for at forsinke sprinklercyklussen med 24 timer, hvis den har regnet.

Home Center har en indbygget vejrrapport, som den downloader regelmæssigt fra Yahoo vejr, vi bruger dette til at afgøre, om det har regnet.

Virtuel enhed til styring af 'regnforsinkelse' og 'Juster vand'Figur 6.: Sprinkler Delay Scene Baseret på vejret

  • Opret en scene - tag et kig på APNT-61 - Oprettelse af scener i Fibaro Home Center
  • Vælg 'Vejr > Vejrforhold Fra rullemenuen Trigger
  • Tilføj en vejrforhold til Regn Og og anden betingelse for Storm
  • Tilføj en virtuel enhedsrække med knappen '24h forsinkelse' valgt - Knap 12. I dette eksempel
  • Eksempelets scene indeholder også en push-meddelelse for at advare dig om, at HC har forsinket den næste Stænkningscyklus - se APNT-76 - Home Center Notifikationer

Final Word på Lua

Denne vejledning er en måde at skabe en automatiseret scene til at forsinke vandcyklusen. Alternativt kan du bruge en enkelt Lua-scene til at få værdierne og ændre dem baseret på vejrforholdene, eller du kan have en separat Lua-scene til at styre dem baseret på vejret - udskiftning af standardblokkens scene, vi har brugt i dette eksempel. Du har masser af muligheder for at forfine kontrollen inden for hjemmet.

Reference

Denne applikationsnota er baseret på test af Vesternet såvel som mange nyttige forum indlæg fra brugerne af Fibaro Forum..

Relateret information