Et teknisk tilbakeblikk og sniktitt på fremtiden

Et teknisk tilbakeblikk og sniktitt på fremtiden

I 2013 bestemte vi oss for at smarthusmarketed i Norge skulle fikses. Markedet var desperat etter en løsning som var teknisk avansert men på en brukervennlig måte både i installasjon, konfigurasjon og ikke minst i bruk. Prisbildet var også en viktig faktor for å kune gi alle smarthus og ikke bare de som var spesielt interessert eller hadde en “lommebok” til det.

Dette blogginnlegget vil ta deg gjennom vår reise fra begynnelsen og frem til nå i dag, innlegget er nok en smule teknisk men vi skal gjøre et ærlig forsøk på å forklare oss så godt som mulig.

Futurehome bestemte seg tidlig for å benytte EnOcean trådløs protokollen og dens produkter. Vi falt pladask for Enocean og elsker fortsatt enhetene og systemet for de egenskapene de har. EnOcean gav oss en produktportefølje som løste så og si alle problemene vi ønsket å løse for våre kunder. Samtidig hadde EnOcean flere sensorer som ikke krevde batteri, som var selvforsynte og ikke hadde behov for jevnlig vedlikehold. Vi og teknologien er i konstant forandring, Z-Wave protokollen gjorde sitt inntog for alvor i samme periode som vi jobbet med vår Smarthub, denne standarden kunne ikke ignoreres. Nye Z-Wave produkter ankom markedet hver uke, vi begynte derfor tidlig med å implementere Z-Wave som standard i Smarthub sammen med EnOcean.

I begynnelsen av implementasjonen av Z-Wave standarden kunne vi se at produktene i sammenligning med EnOcean hadde svært lik funksjonalitet. En dimmer var en enhet som kunne skrus av/på og dimmes mellom 0-100%, en varmestyrings enhet for panelovn kunne skrus av og på, solskjermingen kunne justeres fra 0-100%. En dørlås kunne låses og låse opp, bevegelses sensorer registrerte bevegelse eller ingen bevegelse, temperatur sensorer rapporterte temperatur og så videre.

Vi kunne likevel se at produktene som benyttet Z-Wave hadde flere tilpasningsmuligheter som kunne justeres på selve enheten. For å kunne sy sammen en enkel og brukervennlig opplevelse for deg som sluttbruker ønsket vi å abstrahere bort en del av de tekniske funksjonene som dermed ble mindre viktig.

Dette gjorde det mulig for oss å bygge z-Wave biten inn sammen med den allerede eksisterende EnOcean protokollen.

 

Systemet

For å kunne forklare essensen i dette innlegget ønsker vi å gi deg en kort innføring i hvordan vårt system er sydd sammen i dag. Futurehome er og har blitt et stort og komplekst system med mange komponenter. Vi klarer likevel å snevre systemet ned til 3 hovedkomponenter.

Smarthuben er en slags trådløs ruter for alle dine smarte enheter. Den kommuniserer med alle enhetene i ditt hjem og sender informasjon til vår server. Smarthub  kjører også all logikk lokalt for feks hva som skal skje når du skifter modus, kjører en snarvei, lager en tidsinnstilling eller får lyset til å skru seg på når det er bevegelse i et rom og lignende.

 

Serveren sørger for at all ekstern kommunikasjon til Smarthub skjer på en kontrollert og sikker måte. Serveren tillater også ekstern styring for tjenester som IFTTT, Futurehome API, og andre samarbeidspartnere slik som Tibber. Serveren er det sentrale lagringspunktet for innstilliger slik som passord, e-poster, tilgangsnivå, push varslinger og hendelser som lagres på tidslinjen og i statistikk.

 

Futurehome appen er til for at du skal kunne styre hjemmet ditt fra sofakroken eller når du er ute fra hjemmet. Appen lar deg også gjøre tilpasninger i systemet slik som å endre moduser og lignende.


Smarthub “motoren”

Selve Smarthub består av mange forskjellige hardware og software komponenter. Programvaren som styrer hjemmet ditt styrer enheter trådløst via Z-Wave eller Enocean og samtidig selve systemet slik som moduser, snarveier, triggere, tidsinnstillinger og lignende, alt fra et kjerneprogram.

Å kunne kjøre kjerneprogramvaren i en og samme komponent er bra da den er meget effektiv og rask. Dette var en god løsning for oss i begynnelsen da vi støttet få protokoller og funksjoner. Denne måten å kjøre hovedprogrammet på kan by på utfordringer etterhvert som mer kompleksitet og flere protokoller introduseres.

 

Noen av våre utfordringer

Dersom en grov feil skulle oppstå i kjerneprogramvaren kunne feilen potensielt stoppet opp hele systemet. En grov feil kan da ligge på protokoll nivå eller innenfor systemets funksjoner slik som moduser og snarveier.

Vi ønsket å garantere at vårt nye system skulle kunne skaleres bedre og potensielt støtte flere protokoller og produkter. I tillegg skulle hele kjerneprogramvaren være raskere enn dagens løsning. Kjerneprogramvaren slik den er laget i dag krevde at vi lagde “drivere” til hvert enkelt produkt som skulle støttes. Dette arbeidet var tidkrevende og mye av tiden gikk til testing og verifikasjon som samtidig krevde at vi hadde det støttede produktet i hende. Når man la til et støttet produkt holdt det ikke bare at produktet ble gjenkjent av Smarthub men også av appen og våre servere.

 

La oss bruke en hund som et eksempel på dette:

Dette er en hund. Den har 2 øyne, en nese, 4 føtter, 2 ører osv. Dersom du la til en hund som dette i Smarthub ville den ikke alltid gjenkjennes av alle deler i systemet.

Den ville ofte dukke opp som en hund med store mangler. Kanskje ville den dukke opp som et par med hundeøyne, en for eller en nese eller lignende. I noen tilfeller ville ikke systemet kunne forstå noe om “hunden” og ingenting dukket opp i appen.

Så for å unngå å måtte lage spesialtilpasninger i drivere for hvert enkelt produkt valgte vi å implementere Z-Wave protokollen på en annen måte som førte til at alt måtte skrives om fra bunnen av helt på nytt…

 

Den ombygde Smarthub kjerneprogramvaren

For å være bedre skodd til fremtiden måtte vi altså skrive om alt helt på nytt. I desember 2016 startet arbeidet med å designe vår nye “motor”, noen måneder senere begynte implementeringen.

 

 

Denne nye kjerneprogramvaren vil være i stand til å håndtere mange forskjellige trådløse standarder, applikasjonslag, sky baserte produkter eller annen lokal styring av en nettverksbasert enhet.

Hver protokoll og system har sin egen adapter og funksjon, skulle det oppstå et problem med en av disse vil det ikke ha umiddelbar påvirkning på en annen, og systemet vil fortsatt være operativt. Vi benytter nå MQTT som transportlag mellom alle disse komponentene i Smarthub.
I begynnelsen av denne nye kjerneporgramvaren vil vi fortsette å fokusere på EnOcean og Z-Wave, men vi ser parallelt på mange andre spennende protokoller og systemer.

 

Ombygging av Z-Wave

Nå som fundamentet av den nye kjerneprogramvaren var på plass kunne vi begynne med å implementere Z-Wave protokollen. For å garantere mindre behov for kontinuerlig tilpasning per produkt og være bedre skodd for fremtiden måtte vi tenke helt nytt.

I september 2016 lanserte Sigma som er eier av Z-Wave, en offentlig versjon av Z-Wave protokollen som skulle sikre at alle enheter snakker samme språk og dermed forstå hverandre.

Frem til nå har altså hvert selskap som ønsket å støtte Z-Wave enheter bygge sin egen versjon av protokollen etter Sigma sine retningslinjer. Selv om Sigma gjør en god jobb med å dokumentere koden er mye opp for tolkning. Når alle produkthus følger en veiledning og gateway produsenter lager sine versjoner i henhold til veiledning vil man sitte igjen med noe som ikke er en “ferdig vare”, dette førte til at slettes ikke alt snakket sammen.

Nå som Sigma offentliggjorde sin versjon av protokollen slik den er tiltenkt var det ikke vanskelig for oss å forstå at dette var veien å gå, ingenting er bedre enn å følge produsenten 100%.

Vi startet implementasjonen og fikk en veldig god start, det meste var oppe og gikk relativt kjapt etter bare noen måneder. Vi satte opp en del lukkede pilot hjem og her møtte vi en del utfordringer. Dette var i hjem med over 50-100 enheter, her erfarte vi dessverre en del feil som omfattet noen av de enhetene vi hadde solgt aller mest av.

Når vi begynte arbeidet med Z/IP Z-Wave protokollen var vi en av de første selskapene i verden som jobbet med den offentlige versjonen av protokollen. Etterhvert som månedene gikk var det flere og flere selskaper som begynte å bruke denne versjonen noe som gjorde til at flere bidro til å avdekke feil og få Sigma Designs til å gjøre feilrettinger.

En annen del av denne omleggingen fra vår eksisterende Z-Wave motor til ny er at alle enheter skal overføres fra gammelt til nytt. Noen av enhetene vi har i drift på eksisterende versjon er vanskeligere å flytte over enn andre. Vi jobber mot en smidig og god overgang til nytt system slik at du som kunde ikke skal merke noe som helst annet enn forbedringer. I noen tilfeller med enkelte produkter vil det kanskje bli nødvendig å slette enheten og lære den inn på nytt for at det nye systemet skal forstå produktets egenskaper og utnytte det fullt ut.

 

Støtte for hele hunden!

Vi ser veldig frem til den nye kjerneprogramvaren er på plass i alle sin Smarthub. Under de siste 6 månedene med implementasjon av støtte for nye enheter og protokoller ser vi at det nye systemet er milevis bedre enn det vi hadde og at vi vil være i stand til å utvikle enda raskere og bedre i fremtiden. Vi bruker nå mye mindre tid på å legge til støtte for enheter, ikke bare Z-Wave enheter men også skybaserte systemer og lignende.


Smarthub vil nå være i stand til å se og forstå “hunden”, vi har likevel en del jobb foran oss for å få appen og serveren til å få samme grad av forståelse for hunden. Vi har parallelt med arbeidet med kjerneprogramvare startet arbeidet med å legge om strukturen i appen og det samme med våre servere.

Når denne nye kjerneprogramvaren lanseres til alle dere kunder vil dere ikke umiddelbart merke en stor forskjell i forhold til ny funksjonalitet, vi ønsker å teste og verifisere alt basert på dagens funksjonalitet før vi gradvis ruller ut nye funksjoner til dere.

 

Utrullingen

Vi begynte utrulling av nytt system hos våre beta kunder i begynnelsen av desember. Vi kommer til å teste på beta i 1-2 måneder før vi begynner utrulling til utvalgte kunder. Dersom du skulle være interessert i å delta i testingen at dette fantastiske systemet sammen med oss setter vi selvfølgelig stor pris på det. Vi er nå på leting etter noen teknisk oppegående kunder som ønsker å bidra i testingen. For å kunne delta i testingen må følgende kriterier møtes:

 

  1. Du må være registrert på vårt community på  slack.futurehome.no
  2. Du må ha 10 eller fler Z-Wave enheter
  3. Du må ha flere Z-Wave sensorer
  4. Du må ha flere Z-Wave enheter slik som dimmere, av/på styringer etc.
  5. Tilbakemelding, feilsøking og support mellom testere og Futurehome utviklere gjøres på en dedikert lukket kanal på slack, på engelsk.

 

Det er mulig at noen enheter må slettes og legges inn på nytt for at testingen skal kunne gjennomføres.

 

For å søke om å bli beta tester må følgende skjema fylles ut, så tar vi kontakt med deg: