APNT-78 - Udvidelse af sprinklerstyring i <tc>Fibaro</tc> Hjemmecenter

Denne vejledning viser, hvordan man forlænger Fibaro Home Center 2's sprinklerpanel har funktioner, så du kan justere vandingsperioden eksternt og automatisk forsinke den næste vandcyklus, hvis Fibaro Vejrrapporter viser, at det regner.

I det foregående eksempel APNT-77 - Styring af sprinkleranlæg vi introducerede Fibaro Sprinklerpanel, der er tilgængeligt i Fibaro Hjemmecenter 2 (HC2) Z-Wave Controller.

Udvidelse af sprinklerpanelets styring

Sprinklerpanelet giver dig mulighed for manuelt at tilføje en 'Regnforsinkelse' og øge/reducere vandcyklustiden indefra Sprinklerpanelet (se APNT-77 for detaljer), men du kan ikke gøre dette fra den nuværende smartphone-app, og du kan ikke ændre dem direkte fra en standard Home Center-scene.

Ved at oprette en virtuel enhed, sammen med lidt LUA-kode, kan du få kontrol over disse funktioner, og du kan bruge en standardscene til at justere dem baseret på vejret.

Denne vejledning viser dig, hvordan du:

  • Opret en virtuel enhed i Fibaro Hjemmecenter
  • Programmér knapperne til at styre sprinklerpanelets funktioner 'Regnforsinkelse' og 'Juster vand'
  • Opret en scene til automatisk at forsinke sprinklercyklussen, hvis det regner eller stormer

NoteDette kan kun bruges i Fibaro Home Center 2 (HC2), da det kræver LUA-kodning - det kan ikke bruges i Fibaro Home Center Lite (HCL)


Sprinkler Virtuel Enhed

En virtuel enhed er præcis, hvad det lyder som, en enhed, der ikke er en fysisk enhed, men en, der er oprettet i Home Center til at styre andre enheder. Dette eksempel viser en virtuel enhed, der kan ændre sprinklerpanelets værdier for 'Regnforsinkelse' (0, 24 timer, 48 timer) og 'Juster vand' (0, 10 %, 20 %).

Virtual Device to control 'Rain Delay' and 'Adjust Water'Figur 1Virtuel enhed til at styre 'Regnforsinkelse' og 'Juster vand'

Opret den virtuelle enhed

  • I hjemmecenteret skal du gå til Enheder > Tilføj Fjern enheder
  • I sektionen Virtuel enhed skal du klikke på 'Tilføje'
  • Giv enheden en Navn
  • Vælg en Værelse fra rullelisten
  • IP-adresse - Indtast hjemmecenterets IP-adresse
  • TCP-port - Indtast 80 (dette er den port, der bruges af Home Center)
  • Klik på 'Spare'-ikonet i højre sidebjælke

Creating a Virtual Device for the Sprinkler PanelFigur 2Oprettelse af en virtuel enhed til sprinklerpanelet

Opret knapperne

Den virtuelle enhed skal bruge to rækker med tre knapper - den første række styrer 'Regnforsinkelse', og den anden styrer værdien 'Juster vand'.

  • Gå til den virtuelle enheds 'Fremskreden' fanen
  • Rul ned til sektionen 'Vælg et sæt knapper'
  • Vælg 'Tre knapper pr. linje' - dette vil give os tre knapper
  • Klik på 'Tilføj sæt'-knap
  • Tilføj en anden række med tre knapper (til Juster vand-kontrollen)
  • Klik på 'Spare'-ikonet i højre sidebjælke

Creating a Button in the Virtual DeviceFigur 3Oprettelse af en knap i den virtuelle enhed

Tilføj LUA-koden

Hver knap styres af et simpelt LUA-script, der tager værdien 'Regnforsinkelse' eller 'Juster vand' fra sprinklerpanelet, ændrer værdien og derefter opdaterer panelet.

  • Rul ned til den første knap og navngiv den - '0 timer'i dette tilfælde (for nul timers forsinkelse)
  • Vælg 'LUA' (nederst i den nederste editor)
  • Indsæt LUA-koden (nedenfor) og foretag ændringer for dit system (HC2 IP-adresse, brugernavn og adgangskode)
  • Klik på det blå 'Spare'-ikonet i højre sidebjælke
  • Test knappen i vinduet 'Fejlfinding', hvis du ønsker det, og kontroller, at regnforsinkelsen er blevet ændret i panelet Sprinklere.

LUA-kode

-- Indstil godkendelse

HC2 = Net.FHttp("192.168.1.162",80)

HC2:sætBasicAuthentication("administrator", "administrator")

fibaro:debug('Knap LUA udløst: ')

-- hent datatabel fra sprinklerpanelet

svar, status, fejlkode = HC2:GET("/api/paneler/drenchere")

jsonTable = json.decode(svar)

fibaro:debug('Regnforsinkelsesværdi: ' ..jsonTable.rainDelay);

-- ændr data i LUA med 0 timers forsinkelse

jsonTable.rainDelay = 0

fibaro:debug('Regnforsinkelse Ny værdi: ' ..jsonTable.rainDelay);

-- send opdateret tabel til panelet

json = json.encode(jsonTable);

HC2:PUT("/api/paneler/drenchere", json)

fibaro:log("klar")

fibaro:debug('Knap-LUA færdig: ')

LUA-forklaring

LUA-koden er opdelt i sektioner af kommentarlinjer (som du kan fjerne), og den indeholder også adskillige fejlfindingslinjer, der hjælper dig med at teste den i den virtuelle enheds fejlfindingsprogram.

  • Det første afsnit angiver din HC2's IP-adresse - du skal tilføje den korrekte IP-adresse.
  • Indtast din korrekte brugernavn og adgangskode i anden linje (administrator &forstærker; administrator i dette eksempel)
  • Den anden sektion henter sprinklerpanelets datatabel fra HC2
  • Den 'regnForsinkelse'værdien ændres i tredje afsnit - til Nul i dette tilfælde
  • Den sidste sektion sender datatabellen tilbage til sprinklerpanelet med den nye værdi for 'regnForsinkelse'

FejlfindingslinjerDe blå linjer (startende 'fibaro:debug) er fejlfindingslinjer, der viser værdier i fejlfindingsvinduet - du kan bruge disse til at bekræfte, at koden kører korrekt. Du kan slette disse, når knappen fungerer.

Adding the IR Command String to the ButtonFigur 4LUA-kode i den virtuelle enheds knap

Konfigurer de andre knapper

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

  • 24 timer - skift rainDelay-linjen til jsonTable.rainDelay = 24
  • 48 timer - skift rainDelay-linjen til jsonTable.rainDelay = 48
  • 0% (Juster vand) - skift regnforsinkelseslinjen til jsonTable.adjustWater = 0
  • 10% - skift rainDelay-linjen til jsonTable.adjustWater = 10
  • 20% - skift rainDelay-linjen til jsonTable.adjustWater = 20
  • Klik på det blå 'Spare'-ikonet i højre sidebjælke

Den endelige virtuelle enhed er vist i figur 5. Denne har sprinklerikonet i stedet for standardikonet for den virtuelle enhed - se APNT-72 - Ændring Fibaro Hjemmecenter-ikonerDu kan nu ændre sprinklerpanelets værdier uden at skulle åbne det, og lige så vigtigt er det, at du nu kan ændre disse værdier automatisk fra en Fibaro Scene.

Virtual Device to control 'Rain Delay' and 'Adjust Water'Figur 5Sprinkler Virtuel Enhed med opdateret ikon

Automatiseret vejrscene

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

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

Virtual Device to control 'Rain Delay' and 'Adjust Water'Figur 6Sprinklerforsinkelsesscene baseret på vejret

  • Skab en scene - se nærmere på APNT-61 - Oprettelse af scener i Fibaro Hjemmecenter
  • Vælg 'Vejr > Vejrforhold fra rullemenuen for udløser
  • Tilføj en vejrtilstand for Regn OG og anden betingelse for Storm
  • Tilføj en række for virtuel enhed med knappen '24 timers forsinkelse' valgt - Knap 12 i dette eksempel
  • Eksempelscenen indeholder også en push-notifikation, der advarer dig om, at HC har forsinket den næste sprinklercyklus - Se APNT-76 - Notifikationer fra hjemmecenteret

Sidste ord om LUA

Denne vejledning er én måde at oprette en automatiseret scene til at forsinke vandcyklussen. Alternativt kan du bruge en enkelt LUA-scene til at hente værdierne og ændre dem baseret på vejrforholdene, eller du kan have en separat LUA-scene til at styre dem baseret på vejret - og dermed erstatte den standard 'blok'-scene, vi har brugt i dette eksempel. Du har mange muligheder for at forfine kontrollen i Home Center.

Reference

Denne applikationsnotat er baseret på test af Vesternet samt mange nyttige forumindlæg fra brugerne af Fibaro Forum.

Relaterede oplysninger