Fibaro HC2 & MySensors – Proof of Concept

En av våra användare, mathias, har forskat i hur man kan använda MySensors med Fibaro Home Center 2! Här följer en liten beskrivning och ett ”Proof of Concept” 🙂
Gästbloggare

Efter att ha läst Guide: Arduino sensorer till Veran med MySensors och sett vilka möjligheter det fanns att bygga egna sensorer till Vera till en bråkdel av kostnaderna av Z-wave-produkterna som fungerar till HC2, ångrade jag att jag köpt en HC2 istället för en Vera eftersom den verkade vara mer nedlåst och för begränsad för att skriva egna plugins för t.ex. Arduino-sensorer.
HC2+MySensors
Men jag upptäckte snart ett alternativ som kunde fungera: att använda Virtuella Enheter i HC2 för att skapa en TCP-session till externa ethernet-enheter, och där verkade projektet MySensors vara extra intressant.

Eftersom jag inte hade någon erfarenhet av Arduino började jag med att skapa en enkel simulering av en MySensor Ethernet Gateway i C# för att se hur HC2 hanterade en TCP-session för att läsa och skriva information över en socket.
Detta gav bra resultat och det visade sig att det var möjligt att hålla en session öppen för att läsa data som skickades och skriva tillbaka data i samma session, så jag beställde komponenter för att bygga en gateway och bygga ett litet testsystem.

Under tiden jag väntade på mina nya leksaker passade jag på att gå igenom hur MySensors-API‘et fungerade och fick väldigt mycket hjälp av hek på Mysensors.org med mina funderingar och hur man hade gjort Vera-pluginen. Jag använde mig av LUA-koden i denna men fick skriva om en del eftersom Veran och HC2 inte hanterar saker på samma sätt.

När mina beställningar började dyka upp var mycket av Gateway-koden redan skriven och testad så långt det gick med min emulator och krävde bara lite finjusteringar i syntaxen för MySensors-protokollet.

MySensorsGateway

 

LUA-koden som läser och skriver till Gatewayen över TCP är ganska enkel men jag har inte hittat något bra sätt att få reda på om kopplingen försvunnit utan man får för tillfälligt göra en disconnect/connect.

Den första sensorn jag valde att göra var en dörrsensor som känner av om dörren är öppen eller stängd. Jag ville att sensorer automatiskt skulle bli upplagda med tilldelade sensorid:n av min virtuella gateway. Här stötte jag på lite begränsningar med vilka möjligheter det fanns att lägga till ikoner, så man får helt enkelt anpassa vilka ikoner som ska användas till de olika sensorerna i varje HC2 som man väljer att köra gatewayen.

Resultatet av den första sensorn blev så här där ikonen, status och last update ändras och uppdateras beroende på vad sensorn skickar till gatewayen:

DoorSensor

Nästa test blev en sensor som man kan styra ifrån HC2, närmare bestämt en vanlig relästyrning för en lampa. När jag testade detta upptäckte jag att MySensors-gatewayen kunde hantera flera TCP-sessioner så möjligheten att låta varje Virtuell Enhet-sensor skicka styrkoder finns, men jag valde att låta gateway-enheten även skicka data för att samla all kod på ett ställe och hålla det så likt Verans plugin som möjligt för att underlätta jobbet.

Resultat av reläbygget slutade så här. Klickar man på On/Off så skickar den ett på- eller av-meddelande via gatewayen beroende på nuvarande status, sensorn skickar sedan tillbaka ett meddelande till gatewayen som uppdaterar ikon, status och Last Update.

LightSensor

Utan att sedan göra några större ändringar så lade jag till en Arduino-temperatursensor som använde sig av samma Virtuella Enhetsmall som dörrsensorn och som sedan fungerade utan några större problem vilket innebär att man kan lägga till vilken sensor som helst som bara skickar upp ett statusfält utan att göra några nya förändringar mer än byta ikoner.

2015-06-22_10-13-36

2015-06-22_10-13-36B

Det finns säkert en hel del man kan förbättra och fler typer av sensorer som ska läggas till för att HC2 ska bli en fullvärdig kontroller till MySensors men i det stora hela ser det bra ut och funktionaliteten som krävs finns tillgänglig. Framför allt, DET FUNGERAR 😀

Ett stort tack till hek på MySensors.org för all hjälp kring MySensors API och Vera-pluginen. Mer information och kod kommer framöver! 🙂

//Mathias

5 svar till Fibaro HC2 & MySensors – Proof of Concept

  • Jag sitter och väntar på en mängd komponenter som ska komma med posten, du har inte möjlighet att dela den MySensor Ethernet Gateway i C# som du gjort så jag också kan labba lite innan sakerna kommer?

  • Kommentera