Gå til innhold
  • HomeSeer-skolen #8: HStouch


    Fermate

    Hvorfor  HomeSeer Touch?

    Personlig synes jeg HomeSeer har 3 styrker: Åpenheten gjennom plugin-systemet, muligheten til selv å bygge ut systemet med scripting og egne plugins og sist men ikke minst HS Touch systemet som gir mulighet for å lage egne touch interface.

    Å kjøre HomeSeer (heretter kalt HS) uten å ta i bruk HomeSeer Touch (heretter kalt HST) blir som å kjøpe en bil men aldri åpne bagasjerommet.

     

     

    HST består av 3 deler:

    - En editor for å «tegne» opp brukergrensesnittet og definere funksjonene det skal ha.
    - En App på en telefon, ett nettbrett eller en PC for å kjøre dette brukergrensesnittet
    - Og en server Plugin for å kommunisere med denne App’en.

    Editoren lagrer all funksjonaliteten du definerer i en XML fil og overfører denne til App’en sammen med nødvendig grafikk. App’en er således den samme hele tiden men parametriseres til å oppføre seg som du ønsker gjennom dataene som blir lastet opp fra editoren. Når alt er lastet opp kommuniserer App’en direkte med HS plugin’en og editoren er ute av bildet:

    b1.PNG

    Pro versjonen av HS kommer med HST inkludert, ellers må du kjøpe den separat.
    App'ene laster du ned fra Appstore/Google Play, mens Windows klienten førlger med HST:  hstApp.png

     

    So lets get started!

    HST er en ganske avansert affære med mange muligheter, men vi skal nå se på hvordan du kommer i gang og hvordan du lager de viktigste tingene:
    - En slider som dimmer et lys
    - En knapp som kjører en Event
    - Statuser vist som tekst eller Grafikk
    - En knapp som skrur av/på og som viser status
    - Hvordan en bytter bilde

     Start opp HST Editoren hsteditor.png og velg «File/New Project» så får du opp «Project Defaults»:

    project defaultpng.png

    Her fyller du inn Prosjekt Navn, velger Type (som bestemmer høyde og bredde i piksler) og angir IP adresse (eller DNS) og login til HS serveren (En av dem du har definert i HS under "Tools/Setup/Network")

    Så dukker editoren opp og for dem som har kjørt Visual Studio er mye kjent:

    hstedit 1.png

    Først sjekk at den "grønne prikken" i toolbaren er grønn. Den signaliserer at du har kontakt med serveren. Er den ikke grønn så gå "Tools/Options/Connection Defaults" og connect på nytt.

    I midten er arbeidsflaten som skal bli en skjerm i App'en. Til høyre er Egenskapene (Properties) til det elementet som er selected. Til venstre er det Elementer du kan bruke for å tegne opp brukergrensesnittet. Disse velges fra et "Skin" (Et grafisk tema) og er gruppert i faner med navn som "Buttons, Sliders, Graphics osv.

    En kan også lage egne skins med knapper og Custom elementer men det skal vi ikke snakke om i denne artikkelen.

     

    La oss lage en Slider som dimmer et lys.

    Gå til "Sliders" fanen, dra en Scrollbar ut på arbeidsflaten og klikk på Property: "StatusTracking" :

    hstedit 2.png

    Du får nå opp en "Element Association". Her velger du "HomeSeer Devices" og finner en Device du vet er en dimmer.

    Etter OK er vi klar for å teste. Velg "Tools/Run Windows Client" og så kommer App'en din opp på PCen og du kan dra i slideren og se at lyset dimmer. Gratulerer du har laget din første HST applikasjon! :) 

     

    På telefon eller pad

    Om du har en PCskjerm med touch kan du nå henge den på veggen og bygge videre. For de fleste av oss er en iPad (gjerne en brukt iPad1) eller en iPhone (eller ditto Adroid selvfølgelig) et enklere alternativ:

    Last ned HomeSeer Appen og finn den i "Settings". Sjekk at connection Mode = Ask og klikk på en av Server Connection:

    1hstip1.png  ->  hstip3.png

    Endre "Address" til IP-Adressen til HS serveren din (eller bruk DNS) og skriv inn brukernavn og passord og gå tilbake og start opp APP'en.

    Etter å ha valgt den serveren du valgte å konfigurere kommer standard Interfacet til HST opp:
    (Her kan du nå med en gang velge deg ned til den pæra vi skal dimme og styre den med standard interfacet for å sjekke at det går)


    hstip4.png  hstip5.png

    Noen synes dette er greit nok, men jeg synes du skal designe ditt eget interface som er spesialtilpasset ditt behov og din smak.

     

    Ready to DEPLOY

    Vi skal derfor sende det vi har designet i HST editoren til telefonen; Velg "Tools/Deploy" og sjekk at telefonen din vises i listen, og klikk på den:

    hstedit x2.png

    La bildet med overføringsparametere være uendret og når du trykker OK vil Telefonen vise "Deploying Configuration" og deretter vår App:

    h1.png   h2.png

    Dra i slideren og nyt følelsen av å ha laget din egen HS App :) 
    Legg også merke til at når du endrer dimmeren manuelt (eller med Web Interfecet til HS) så flytter slideren seg :) 

    Nå er det egentlig bare å prøve seg fram og teste for å se hvordan de forskjellige tingene oppfører seg, men la meg ta en par av de mest praktiske tingene for å gi deg en flying start:

     

    En knapp som starter en Event

    Dra ut en knapp og endre "Text" propertyen. Klikk på "Action When Released" og få opp "Action Editoren".
    Legg til en Action og sett typen til "HomeSeer: Trigger a HomeSeer Event"
    Velg en Event som skal kjøres.

    knapp1.png

    Så er det bare å kjøre "Tools/Deploy" igjen (husk at App'en må kjøre for at telefonen skal dukke opp i Editoren) og sjekke funksjonaliteten på telefonen.

    Ikke fall for fristelsen til å lage mange Actions bak en knapp dersom det samme kan oppnås ved å lage en ny Event som kaller på disse funksjonalitetene. Det er MYE lettere å endre en Event senere enn å måtte deploye ett nytt HST prosjekt til alle enhetene dine.

     

    La oss bygge ut med å lese av en status verdi:

    Velg fanen "Others" og dra ut to "Text" elementer. Sett teksten på den ene til "Ute Temp" og Trykk på "Status Tracking Normal" på den andre.
    Velg en Device fra et termometer og bruk "Use Status Text". OK og Ferdig!

    text1.png

     

     

    Om vi vil ha en status vist som grafikk gjør vi slik:

    Dra ut en "Image" og bind den til et lys med "Status Tracking Normal" på samme måte som vi gjorde med dimmeren, men denne gangen velger du "Use status Image" isteden for "Use Value". Endre propertyen "ImageFormat" til "Stretched" slik at hele bildet blir synlig. Nå vil du se standardgrafikken til denne Devicen, men vi ønsker å bruke vår egen grafikk så vi trykker på "StatusImages" og får opp "Status Image Editor":

    grap1.png

    Her trykker vi "Add" 2 ganger for vi trenger bare 2 status bilder, -en for ON og en for OFF.
    Vi kan for eksempel velge bulb-back.png for OFF status og bulb-on.png for ON fra denne mappen
    C:\Users\xxx\Documents\HSTouch\Skins\Android\Graphics
    som ble installert sammen med HST.

    Deploy og test at pæren tenner og slukker når du tenner og slukker devicen som du tracker.

     

    Men vi vil også kunne tenne og slukke den ved å trykke på lyspæren!

    Om vi nå endrer "IgnorePresses" til FALSE dukker propertiene for en knapp opp. Vi bruker "ActionsWhenReleased" og lager en action på det samme devicet som vi tracker. Dette ligner på knappen som startet en Event, men denne gangen velger vi "Toggle On/Off" som command:

    toggle.png

    Deploy og test at du nå kan slå pæren av og på ved å trykke på den.

    Jeg bruker ofte slike knapper med både tekst og bilde til å vise status og aktivere ting:
    Alarm-Garasje-norm.pngAlarm-Garasje-pressed.pngb-Bod-norm.pngb-Bod-pressed.pngb-Les2-norm.pngb-Les2-pressed.png
    Å lage egne (3D) knapper med enkle verktøy som Powerpoint (!) er en historie vi må ta en annen gang.

    Tilslutt en par viktige funksjoner:

     

    Det kan være greit å ha en knapp som lukker App'en:

    Til det bruker vi Action type: "Misc: Exit Application"

    exit.PNG

     

    Flere skjermer

    Du klarer aldri å få alt inn på en skjerm så flere skjermer må til.

    Bruk "File/New Screen" for å lage en ny skjerm eller høyreklikk headeren på en eksisterende skjerm og velg "Copy".

    Gi den nye skjermen et navn, og pass på at hovedskjermen din (den som App'en kan "time ut og gå tilbake til") er den (eneste) som er merket "IsMain"=TRUE

     

    ny skjerm.PNG

     

    Når du vil vise denne skjermen bruker du Action "Screen: Show another screen by itself" og angir den skjerm du ønsker å vise:

    bytte skjerm.png

     

    Men når jeg er laaangt borte

    Om du ønsker å kunne styre huset fra telefonen når du ikke er hjemme må du åpne opp port 10200 i routeren din og forwarde den til HS serveren.
    Du må enten ha en fast IP om ISPen din tilbyr det eller en DynDns type tjeneste slik at du kan sette opp den IP'en/DNS'en i Configurasjonen i App'en.

    Om du har en router som kan mappe din WAN DNS til din LAN IP (eller du kjører en server med full DNS) klarer du deg med kun 1 server i HST App oppsettet og du kan endre connection mode fra  "Ask" til en fast server. Har du ikke det kan du bruke to server definisjoner med henholdsvis WAN og LAN IP og kalle dem "HST Hjemme" og "HST Borte".

     

    HS kan også styre HST på eget initiativ:

    Du kan vise en skjerm med et bilde fra et kamera når det ringer på døra eller si "Alexa, Show me the carport web camera on the upstairs iPad"
    Sjekk under "HSTouch Actions" på en Event for hva du kan gjøre. Husk at så lenge den tilbyr "Simulate a press of an element" kan du bruke dette på en usynlig knapp i HST og la den ha alle de actions du måtte ønske.

    Ting vi ikke har snakket om:
    - Å kjøre HTML inne i HST
    - Starte et script med eller uten parametere
    - Video (Som egentlig bare er stillbilder fra et WebCam med en refresh hver x sekund :( )
    - Design for å få ting pent og effektivt og passe lett å forstå
    - Verktøy for å effektivisere produksjon...

     

    Ellers er det jo bare å spørre :) 

     



    Brukertilbakemelding



    Anbefalte kommentarer

    Topp! :)

     

    Kan nevnes at man kan koble til via MyHs også, da virker det både på LAN/WAN uten at man trenger gjøre noe i routeren. 

     

    Og har man iOS og skal ha en app som ikke skal stå åpen hele tiden, så er faktisk en "exit"-knapp veldig viktig! HSTouch er ikke spesielt glad i å ligge i bakgrunnen og oppdaterer stort sett ikke statusen på devicene når man "åpner" appen på nytt når den bare har ligget i bakgrunnen. 

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    2 timer siden, ZoRaC skrev:

    Og har man iOS og skal ha en app som ikke skal stå åpen hele tiden, så er faktisk en "exit"-knapp veldig viktig! HSTouch er ikke spesielt glad i å ligge i bakgrunnen og oppdaterer stort sett ikke statusen på devicene når man "åpner" appen på nytt når den bare har ligget i bakgrunnen. 

    Android sliter også med det. Exit-knapp (eller en knapp for å hente frem menyen) er kjekt å ha.

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider

    Herlig med HomeSeer-skolen. Har lært masse!

     

    En ting som jeg har lagt merke til når jeg jobber med HomeSeer og HSTouch er at når man har HSTouch kjørende og koplet til (grønt status-ikon) og så gjør endringer i HomeSeer (f.eks. status-grafikk, nye enheter, osv.) så henter ikke HSTouch inn disse endringene. Jeg må da trykke på den grønne knappen i HSTouch slik at den blir rød, og så trykke på den rød knappen slik at den kopler til igjen og blir grønn. Da har HSTouch synkronisert med HomeSeer igjen og har korrekt informasjon.

     

    Mulig det bare er her, men det har i ihvertfall skjedd meg at jeg har lett etter enheter, grafikk, osv. og ikke funnet dem pga dette.  

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    5 minutter siden, Gaute skrev:

    Jeg må da trykke på den grønne knappen i HSTouch slik at den blir rød, og så trykke på den rød knappen slik at den kopler til igjen og blir grønn. Da har HSTouch synkronisert med HomeSeer igjen og har korrekt informasjon.

     

    Rett til venstre(?) for den er det en "refresh"-knapp. Den gjør samme nytten. :) Også praktisk når man skal deploye og klienten ikke kjørte når du startet HSTouch. 

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    Et øyeblikk siden, ZoRaC skrev:

     

    Rett til venstre(?) for den er det en "refresh"-knapp. Den gjør samme nytten. :) Også praktisk når man skal deploye og klienten ikke kjørte når du startet HSTouch. 

     

    Takk, da var jo det enda enklere 😄

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    5 timer siden, ZoRaC skrev:

     

    Kan nevnes at man kan koble til via MyHs også, da virker det både på LAN/WAN uten at man trenger gjøre noe i routeren. 

    ....

     

    Ja det er riktig. Og det forenkler den problematikken.

    Det er bare meg som er litt allergisk mot sky-tjenester ;)

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    33 minutter siden, ZoRaC skrev:

    ...

      Også praktisk når man skal deploye og klienten ikke kjørte når du startet HSTouch. 

     

    Hm Det var nytt for meg.

    Min erfaring er at HS sjekker for klienter hver gang en åpner Tools/Deploy menyen (?)

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider

    en ting som også kan være med HST-Designeren, er at om du legger til nye enheter i HS, vil ikke alltid designeren få med seg dette. da er en restart av HST pluginen en enkel løsning.

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    8 timer siden, Fermate skrev:

    Min erfaring er at HS sjekker for klienter hver gang en åpner Tools/Deploy menyen (?)

    Det gjør den ikke for meg... ;) 

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    9 timer siden, Håvardgj skrev:

    en ting som også kan være med HST-Designeren, er at om du legger til nye enheter i HS, vil ikke alltid designeren få med seg dette. da er en restart av HST pluginen en enkel løsning.

    Det skal ikke være nødvendig. Det burde holde å bruke "refresh pilene" til venstre for den "grønne prikken" i HST toolbaren.

    • Like 2

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    3 timer siden, Moskus skrev:

    Det gjør den ikke for meg... ;) 

     

    Det var rart.

    Jeg testet det akkurat nå og det er tydelig at det er programmert på "click Eventen" til menyen "Tools".

    Kan det være versjons forskjeller?

    Min HST: 3.0.30

    Min iPhone App: 3.0.0.25

     

    Kan det være forskjell på iPhone / Android / PC ?

    (Jeg kjører nesten bare iPhone / iPad'er)

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider

    En liten ting til:

     

    Dersom dere trenger en "Toggle" funksjon (for å kunne trykke Av / PÅ i HST) på et device som ikke har noen slik funksjon (slik som dørlåsen min) har dere to muligheter:

     

    #1 Lag en virtuell device og to Events på denne som styrer det devicet dere egentlig vil styre og la "Actions When Released" gå mot den virtuelle devicen (mens status trackingen fremdeles går mot original devicet)

    #2 Lag en "Toggle" knapp ved hjelp av et script.

     

    Det kan gjøres slik:

     

    Sub MakeToggleButton(Byval pParam As String)
    Dim dvRef as integer =pParam
    
       hs.WriteLog("Toggel Script", "Create Togglebutton on dev:" & dvRef )
    
    if hs.DeviceScriptButton_AddButton(dvRef,"Toggle",101,"ToggleButtons.vb","Toggle",pParam,1, 1, 1) then
       hs.WriteLog("Toggel Script", "OK")
    else
       hs.WriteLog("Toggel Script", "FEIL")
    end if
    
    End Sub
    
    Public Sub Toggle(Input As Object)
    Dim dvRef as integer =Input(0)
          Dim iNewVal as integer
    
       If hs.DeviceValue(dvRef ) = 0  Then
          iNewVal = 100
       else
          iNewVal = 0
       End if
       hs.SetDeviceValueByRef(dvRef , iNewVal , True)
    
       hs.WriteLog("Toggel", "Toggle dev " & dvRef  & " To: " & iNewVal)
    
    End Sub

     

    @Moskus kan får beskrive hvordan dette skal gjøres i CAPI og ellers stille seg kritisk til min gammeldagse programmering (som han pleier) ;) 

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    4 timer siden, Fermate skrev:

    En liten ting til:

     

    Dersom dere trenger en "Toggle" funksjon (for å kunne trykke Av / PÅ i HST) på et device som ikke har noen slik funksjon (slik som dørlåsen min) har dere to tre muligheter:

     

    #3: Plug-in EasyTrigger har en toggle-funksjon, slik at man enkelt kan lage eventer som toggler en device mellom forhåndsvalgte verdier.

    • Like 1

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    5 timer siden, Fermate skrev:

    @Moskus kan får beskrive hvordan dette skal gjøres i CAPI og ellers stille seg kritisk til min gammeldagse programmering (som han pleier) ;) 

    Siden det nå MÅ gjøres med CAPI (og kan gjøres "smart") så finnes det jo allerede et script for det. ;)

    SmartToggle.vb

     

    ... men jeg har ikke lagt opp til å legge til en knapp på Devicen, det var jo hendig. :) 

     

     

    52 minutter siden, psv021 skrev:

    Plug-in EasyTrigger har en toggle-funksjon, slik at man enkelt kan lage eventer som toggler en device mellom forhåndsvalgte verdier.

    ... men med et superenkelt script slipper man det. ;)

     

    Jeg synes EasyTrigger er en glimrende plugin, men for meg ikke verdt $30 så jeg har stått over. :) 

    • Like 1

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider

    Jeg synes "Schedules" og "Toggle"er to av de mest verdifulle funksjonene i EasyTrigger. Som en elendig programmerer synes jeg det var gull verdt å kjøpe EasyTrigger for $19.95. Prisen er nå øket til 24.95 etter at Spud jevnlig har lagt til flere funksjoner. Anbefaler denne sterkt da den gir viktig utvidet funksjonalitet til HomeSeer.

    • Like 1

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider

    Ser ut som at det der er mulig å lage i HS touch. Men er nok brukt custom iconer og brytere, de ser ikke ut som de som ligger der som standard.

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider

    Er det mulig å bruke en Raspberry Pi med berøringsskjerm istedenfor PC/telefon/Surfebrett som HMI?

     

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    38 minutter siden, Oddvar skrev:

    Dette er nok en app de har laget selv. 

    Du mener de har laget et eget interface til HS, og ikke HStouch? Det tviler jeg på.

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider

    Jeg har ikke brukt HStouch noe særlig, men det er vel ikke mye som minner om HStouch i dette? Ikke så vanskelig å lage en app som snakker med HS :) Hvis de selger custom HStouch-løsning så forutsetter det vel at kunden må ha Pro-lisens også?

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider
    37 minutter siden, Oddvar skrev:

    Jeg har ikke brukt HStouch noe særlig, men det er vel ikke mye som minner om HStouch i dette?

    Jaha, hvordan trakk du den slutningen? Synes det er ganske mye som minner om HStouch, jeg.

    HStouch er tross alt bare et verktøy for å lage og vise brukergrensesnitt.

     

    38 minutter siden, Oddvar skrev:

    Hvis de selger custom HStouch-løsning så forutsetter det vel at kunden må ha Pro-lisens også?

    Nei, men de må ha en HStouch-løsning å distribuere fra.

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider

    Dette er jo hemmekoselig. Akkurat som å designe skjermbilder for et industridisplay. Supert!

    Det var litt fomlete å få klienten koblet opp, men det gikk tilslutt.

     

    Jeg kjøpte et Lenovo surfebrett som displayenhet. Er det noen her som vet hvordan jeg får den til å forbli på så lenge HStouch har fokus?

    Det er ikke brukervennlig å pirke etter påknappen for å få tilgang.

    Det er Android 5.0.1 OS på den.

     

     

    Endret av Einar

    Del denne kommentaren


    Lenke til kommentar
    Del på andre sider



    Opprett en konto eller logg inn for å kommentere

    Du må være et medlem for å kunne skrive en kommentar

    Opprett konto

    Det er enkelt å melde seg inn for å starte en ny konto!

    Start en konto

    Logg inn

    Har du allerede en konto? Logg inn her.

    Logg inn nå


×