Page 1 of 1

Lågnivå-access till Tellstick Duo

Posted: Thu Jan 18, 2018 11:08 am
by nethome
Jag kommunicerar med Tellstick DUO från ett Javaprogram som är tillgängligt på flera plattformar. Jag använder mig av ”lågnivå”-accessen där man själv kodar och avkodar protokollen.

Hittills har jag använt mig av FTDI:s virtuella com-port drivers (VCP) för Windows, som gör att Tellstick presenteras som en serieport. Detta har varit möjligt genom att modifiera FTDI:s installationspaket så att Tellstick:s VID & PID registreras som en vanlig serieport.

Från och med Windows 8 x64 så går det inte längre att installera osignerade drivrutiner, så den dörren har liksom stängts nu. Finns det något annat sätt att komma åt det gränssnittet i Windows, utan att själv behöva skriva någon form av konverterare i C++ eller liknande? Jag vill verkligen undvika att behöva använda JNI…

Det trevligaste vore ju förstås om Telldus kunde leverera med signerade VCP-drivers för FTDI, så det fanns ett officiellt sätt att enkelt komma åt gränssnittet.

Tacksam för tips...

Mvh
/Stefan

Re: Lågnivå-access till Tellstick Duo

Posted: Thu Jan 18, 2018 11:08 am
by krambriw
Hej Stefan,
Kul att du är här! Hoppas du snart får din egen sektion lite längre ner på sidan...Vad jag förstår så innebär det att du inte är beroende av Telldus Center?

Efter att sedan en tid ha kört hela NetHome i en Raspberry Pi så kan jag bara säga att det måste vara den absolut bästa lösningen. Skippa Windows...Den som vill kan ju alltid nå NetHome via en browser och det antar jag kommer att funka även med w8 !?

Ett förslag för en RPi lösning:

- ta fram en *beginner image* för RPi:n som innehåller *allt* som behövs (även om det inte är direkt svårt att installera i Linux så är det trots allt en liten tröskel, åtminstone för rena Windows användare)

- en enkel uppdateringsrutin (som tex hämtar senaste nightly build och uppdaterar till densamma) som skall kunna startas manuellt eller av cron

- lägg till stöd för MQTT för att både ta emot kommandon och distribuera event (faktiskt ganska enkelt att göra) så har du en framtidssäker lösning för "Internet of things". Kolla in Mosquitto


mvh Walter

Re: Lågnivå-access till Tellstick Duo

Posted: Thu Jan 18, 2018 11:08 am
by nethome
Tack för tipsen Walter! Det stämmer att det verkar som de flesta som börjar använda NetHomeServer (http://www.nethome.nu) nu kör på RapberryPi. Men många vill säkert prova den först på Windows, och då är det ju lite fånigt om den inte fungerar på Windows 8. Jag hade tänkt släppa en lite mer officiell release snart och jag vill liksom lösa detta först.

Det stämmer att jag inte är beroende av Telldus Center, NetHome använder samma protokolldrivrutiner oavsett om man använder ljudutgången, CUL eller Tellstick. Fördelen är ju att NetHome kan stödja andra protokoll än Telldus Center gör (Nexas brandvarnare till exempel) och att man kan lägga till stöd för egna. Nackdelen är ju förstås att NetHome inte i dagsläget stödjer alla protokoll som Telldus Center gör, men man kan ju som sagt lägga till stöd i form av en plugin om det är något protokoll man saknar...

En beginner-image för RPi ligger på (den ganska långa) att-göra-listan, och MQTT måste jag läsa på lite om - det verkar intressant.

...men först vill jag försöka lösa det här med access till Tellstick på Windows 8...

MVH
/Stefan

Re: Lågnivå-access till Tellstick Duo

Posted: Thu Jan 18, 2018 11:08 am
by nethome
Sådär, då var problemet löst! Jag har fått suverän hjälp av Telldus att lösa problemen, och tillsammans har vi tagit fram signerade VCP-drivrutiner som fungerar med Tellstick Duo och som jag har fått tillåtelse att distribuera. Jag tror aldrig jag har stött på så kunnig och hjälpsam support tidigare - stort tack!

Drivrutiner och instruktioner finns på: http://opennethome.org/hardware/install-tellstick. I och med detta har jag nu kunnat släppa NetHomeServer 2.0 på http://opennethome.org.

MVH
/Stefan

Re: Lågnivå-access till Tellstick Duo

Posted: Thu Jan 18, 2018 11:08 am
by krambriw
Låter ju bra!

Bara en fråga, istället för att prova och konstatera att det inte gick, kan man ha både en Duo och en audio enhet (sändare & mottagare) anslutna och i drift parallelt?

Har nu kört NetHome i en RPi ett bra tag och den är ju superstabil, det bara kör. Gjorde ett python script i RPi:n som fångar händelser från receivern, publicerar detta till message brokern MQTT (som också kör lokalt i RPi:n). Samtliga MQTT klienter som abonnerar på dessa händelser får dom automatiskt, funkar också klockrent. Lösningen stöder också sändning, dvs en MQTT klient kan skriva ett kommando till MQTT som sedan tas emot av NetHome för vidare sändning.

Jag har fördelat mitt hemautomations system på ett antal RPi:er där varje kör en egen MQTT broker. På det sättet blir det enkelt att underhålla samt att serva flera klienter. Varje RPi får en dedicerad uppgift. Förnärvarande har jag en RPi för var och en av

- NetHomeServer
- Z-Way (z-wave)
- OneWire
- MobilePhonePresence Detect

Jag har monterat dom i ett stackbart rack som man kan bygga ut med fler om man behöver.
http://www.kjell.com/sortiment/dator-kr ... mageWindow

Självklart kan man knuffa ihop flera funktioner i samma RPi men jag tycker det är bättre att hålla isär det på detta sätt, det blir lättare att underhålla. En RPi är ju inte så hemskt kostsam heller.

Som klient använder jag EventGhost, men självklart kan vilken MQTT klient som helst användas, och då kan det se ut så här i loggen när händelser ramlar in från de olika RPi:erna:

Code: Select all

08:22:42   Main./nethomeserver "{'UPM.HouseCode': '1', 'UPM.SequenceNumber': '0', 'Temp': '15.75', 'Hum': '14', 'UPM.DeviceCode': '4', 'Batt': '0'}, 0"
08:22:43   Main./nethomeserver "{'UPM.HouseCode': '1', 'UPM.SequenceNumber': '1', 'Temp': '15.75', 'Hum': '14', 'UPM.DeviceCode': '4', 'Batt': '0'}, 0"
08:22:44   Main./nethomeserver "{'UPM.HouseCode': '1', 'UPM.SequenceNumber': '2', 'Temp': '15.75', 'Hum': '14', 'UPM.DeviceCode': '4', 'Batt': '0'}, 0"

08:22:46   Main./phones 'Phone is Offline: Amanda, 0'
08:22:47   Main./phones 'Phone is Offline: Walter, 0'
08:22:48   Main./phones 'All_phones_offline, 0'

08:22:56   Main./onewire '[6.5, 0.755949, 3.18263, 0.755949, 3.18263, 1395472982.018938]'

08:23:25   Main./eventghost/zwave 'Device_5_Instance_3_temperature, 18.43000030517578'
.
.
.
08:32:45   Main./phones 'Phone is Offline: Amanda, 0'
08:32:46   Main./phones 'Suspect that Phone is going offline: Walter : 61.538036108, 0'
08:32:47   Main./phones 'At_least_one_phone_online, 0'

Nu funderar jag på vad min 5:e RPi skall få pyssla med. Tillsvidare får den fungera som en Tor accesspunkt i mitt trådlösa nätverk.

mvh Walter

Re: Lågnivå-access till Tellstick Duo

Posted: Thu Jan 18, 2018 11:08 am
by nethome
Javisst, som vanligt kan man blanda alla tekniker fritt. Jag kör tex just nu Audioenhet för mottagning och en CUL-sticka för sändning plus en FHZ1000-enhet för 868MHz bandet på min NetHome. Du får se upp bara så de inte stör varandra, båda enheterna kommer ju att sända ut signalerna i princip samtidigt och med en liten tidsskillnad kan de störa varandra och på samma sätt kommer båda mottagarna att skicka in signaler till NetHome så det kommer dubbelt. Om antennerna för de olika enheterna däremot är monterade på avstånd från varandra så kan de ju tillsammans täcka in ett större område. Man kan dessutom i Tellstick-Itemet välja om man vill att den bara skall sända eller bara ta emot om man vill dela upp uppgifterna mellan enheterna.

Det var en riktigt intressant setup som du har där med ett helt distribuerat system. Jag har funderat en del på att göra någon form av distribuerad version av NetHomeServer just för att koppla ihop flera enheter på olika ställen, då med ett proprietärt protokoll mellan dem, men jag kanske skall titta på MQTT i stället som protokoll för en sådan lösning.

Vad är det för lösning du använder för att hålla koll på att telefonerna kommer online/offline?

Re: Lågnivå-access till Tellstick Duo

Posted: Thu Jan 18, 2018 11:08 am
by krambriw
För telefonerna, det är ett pythonscript som körs som cronjobb en gång i minuten, simpelt men funkar fint. Vet ännu inte bara vad jag skall styra baserat på om någon eller ingen är hemma. Det mesta sköts om automatsikt på annat sätt ändå...

Jag kan mejla scriptet till dig (på den vanliga mejl adressen?) och beskriva hur man lägger in det

Vad gäller distribution av system så skulle det faktiskt fungera förträffligt med en NetHomeServer + MQTT broker i en eller flera RPi:er. Varje RP:i får ju en egen ip och genom att dom har en egen MQTT broker, så blir dom också helt oberoende av varandra.

mvh Walter