RemoteStick - RESTful interface to Tellstick

Moderator: Telldus

gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

RemoteStick - RESTful interface to Tellstick

Post by gein »

What is it?
remotestick-server exposes the Tellstick interface through RESTful services. It uses the native library libtelldus-core to communicate with the Tellstick and is written in Python to support different kinds of platforms.

What is it not?
It is not meaningful to simply run remotestick-server on its own. The purpose is for others to create (remote) clients that interacts with remotestick-server to communicate with the Tellstick.

Why?
There are all sorts of different proprietary tellstick server applications out there. With remotestick-server I aim to develop a simple, unified way of remotely dealing with the Tellstick. Consuming RESTful services in clients is a very very easy job. It's simply HTTP requests to different URIs.

Read more about how to use the API here: http://wiki.github.com/pakerfeldt/remotestick/rest-api
Download remotestick-server here: http://github.com/pakerfeldt/remotestick/downloads
Changelog: http://github.com/pakerfeldt/remotestic ... er/CHANGES.

Getting started
Python > 2.5 is needed. If you don't have it already installed, grab it here.
You obviously also need telldus-core. The easiest way of getting it is to install TelldusCenter 2.0.2, but you could also compile the driver yourself but that is out of scope for this thread.
Read the Troubleshooting section if you get stuck.

Keep posted on the github site for new releases.

I would love to hear your comments and feedback about this!
Last edited by gein on Tue Aug 03, 2010 8:39 am, edited 5 times in total.
MDDSD
Posts: 25
Joined: Fri Mar 17, 2023 9:45 am

Post by MDDSD »

This is very interesting.

I read through your documentation but I could not find any information how to setup the web service. The download only contains the python skript.
Do I need any python software to run this on a Windows box?

Thanks

/Mattias
gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

Post by gein »

Yes, you need Python >= 2.5.
If you don't have Python installed already, it's easiest to download it from ActiveState: http://www.activestate.com/activepython/downloads
The Windows Installer will give you what you need.
MDDSD
Posts: 25
Joined: Fri Mar 17, 2023 9:45 am

Post by MDDSD »

I've now installed Python on my Windows 7 64-bit but I get an error when I try to start the python script. I should perhaps mention that I've added the path to the Telldus folder to the PATH variable.

Traceback (most recent call last):
File "C:\Downloads\remotestick-server-v0.3.1\remotestick-server\remotestick-server.py", line 460, in <module>
main()
File "C:\Downloads\Downloads\remotestick-server-v0.3.1\remotestick-server\remotestick-server.py", line 439, in main
lib, libname = loadlibrary(library)
File "C:\Downloads\Downloads\remotestick-server-v0.3.1\remotestick-server\remotestick-server.py", line 99, in loadlibrary
libtelldus = cdll.LoadLibrary(ret)
File "C:\Python26\lib\ctypes\__init__.py", line 431, in LoadLibrary
return self._dlltype(name)
File "C:\Python26\lib\ctypes\__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 193] %1 õr inte ett giltigt Win32-program

Thanks

/Mattias
gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

Post by gein »

Okej, jag är inte helt bekant med hur det fungerar i Windows men det verkar som att programmet i ditt fall försöker ladda TelldusCore.lib och inte TelldusCore.dll. Men det är bara en teori. Gör så här (temporär fix):
Gå till http://www.akerfeldt.se/~gein/remotesti ... 0.3.1-fix/ och ladda ner remotestick-server.py. Du kan skriva över den befintliga du har.

Sedan provar du köra igen fast med --library flaggan satt. Såhär:
python remotestick-server.py --library="C:\Program\Telldus\TelldusCore.dll"
Kom ihåg att sätta PATH=C:\Program\Telldus\

Om inte det här heller fungerar. Prova då istället att låta "working directory" vara C:\Program\Telldus\. Dvs, om du kör från en kommandoprompt, ställ dig i den katalog och kör sedan python C:\downloads\remotestick-server-v0.3.1\remotestick-server\remotestick-server.py --library="C:\Program\Telldus\TelldusCore.dll

Berätta gärna hur det går. Jag är mån om att få det att fungera på Windows också givetvis!
MDDSD
Posts: 25
Joined: Fri Mar 17, 2023 9:45 am

Post by MDDSD »

Nu har jag testat båda förslagen men det resulterade i samma felmeddelande dvs. WindowsError: [Error 126] Det går inte att hitta den angivna modulen

jag har även tesat att lägga på backslash \ i PATH och --library men det gjorde ingen skillnad.
gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

Post by gein »

MDDSD wrote:Nu har jag testat båda förslagen men det resulterade i samma felmeddelande dvs. WindowsError: [Error 126] Det går inte att hitta den angivna modulen

jag har även tesat att lägga på backslash \ i PATH och --library men det gjorde ingen skillnad.
Error 126 är faktiskt ett lite annorlunda fel. Det felet får även jag om jag anger fel sökväg till DLL:en på Windows. Jag kör följande på en Windows XP och det fungerar:
C:\Program Files\Telldus> c:\Python26\python.exe c:\downloads\remotestick-server-v0.3.1\remotestick-server\remotestick-server.py --library="C:\Program Files\Telldus\TelldusCore.dll"
Observera att det i mitt fall rör sig om en engelsk Windows, därav "Program Files" och inte "Program".
Har du provat starta det på samma sätt som jag gör ovan (med rätt sökvägar för just din maskin förstås)?

(i ovanstående fall, eftersom du står i katalogen där Telldus är installerad, så behöver du inte sätta upp en korrekt PATH)
MDDSD
Posts: 25
Joined: Fri Mar 17, 2023 9:45 am

Post by MDDSD »

Jag testade ditt exempel fast med mina sökvägar och det gav följande fel.
WindowsError: [Error 193] %1 är inte ett giltigt Win32-program

Jag kör på en 64-bitars Windows 7 så Telldus ligger installerad under följande sökväg.

C:\Program Files (x86)\Telldus\TelldusCore.dll

Behöver man köra skriptet som administratör med tanke på att Windows 7 har UAC?
gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

Post by gein »

Min nya gissning är att din TelldusCore.dll är 32-bitars men Python-versionen du kör är 64-bitars. Kan det stämma?

Kör "python -v" och kolla vad som står precis i slutet. Hos mig står det såhär:
Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Om det istället står 64-bit för dig så har vi ett problem. Då måste du antingen kompilera en 64-bitars TelldusCore.dll (vilket förmodligen inte är en helt lätt uppgift) eller så måste du installera en 32-bitars Python och köra med den istället (tämligen enkelt).
MDDSD
Posts: 25
Joined: Fri Mar 17, 2023 9:45 am

Post by MDDSD »

Det stämmde jag körde 64-bitars versionen av Python.
När jag avinstallerade den och installerade 32-bitars versionen så fungerade det.

Tack för all hjälp.
Rusam
Posts: 1
Joined: Fri Mar 17, 2023 9:45 am

Re: RemoteStick - RESTful interface to Tellstick

Post by Rusam »

Hej!

Tack för en riktigt bra applikaton. Kör den med Ubuntu och den fungerar perfekt!

Glad sommar!
gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

Re: RemoteStick - RESTful interface to Tellstick

Post by gein »

I've just released an official Android client using this interface. For those of you running Android in your phone, checkout "RemoteStick" in Market.
MDDSD
Posts: 25
Joined: Fri Mar 17, 2023 9:45 am

Re: RemoteStick - RESTful interface to Tellstick

Post by MDDSD »

gein wrote:I've just released an official Android client using this interface. For those of you running Android in your phone, checkout "RemoteStick" in Market.
Nice, I've just installed the app from Market.
Once I get home I will try it out.
MDDSD
Posts: 25
Joined: Fri Mar 17, 2023 9:45 am

Re: RemoteStick - RESTful interface to Tellstick

Post by MDDSD »

Jag har lite problem när jag försöker att ansluta min Android telefon till webbtjänsten.
I loggen för tjänsten får jag följande information när jag försöker att ansluta ifrån Android telefonen:

"Unhandled Exception: ValueError('Procedure called with not enough arguments (4 b
ytes missing) or wrong calling convention',)
192.168.0.199 - - [25/Jul/2010 09:11:40] "GET /devices.xml HTTP/1.1" 500 465"

En sak som jag reagerade över är att IP adressen är inte 192.168.0.199 utan 192.168.0.166 vilket känns konstigt.
Jag har ingen aning varifrån den fått 199... :)

Och ifrån telefonen får jag felmeddelande:

"(1) Error: At line 2, column 49: Syntax error"

Jag kör webbtjänsten på en Windows 7 Ultimate 64-bit och telefonen är HTC Desire (Eclair, Android 2.1).
Version av Remote-StickServer är 0.3.2 och jag kör senaste versionen av RemoteStick för Android (uppdaterade idag till 1.1.0).

Jag kan se ifrån loggen i webbtjänsten att den kan ta emot kommunikation och brandväggen på datorn är helt avstängd.
gein
Posts: 437
Joined: Fri Mar 17, 2023 9:45 am

Re: RemoteStick - RESTful interface to Tellstick

Post by gein »

MDDSD wrote:Jag har lite problem när jag försöker att ansluta min Android telefon till webbtjänsten.
I loggen för tjänsten får jag följande information när jag försöker att ansluta ifrån Android telefonen:

"Unhandled Exception: ValueError('Procedure called with not enough arguments (4 b
ytes missing) or wrong calling convention',)
192.168.0.199 - - [25/Jul/2010 09:11:40] "GET /devices.xml HTTP/1.1" 500 465"

En sak som jag reagerade över är att IP adressen är inte 192.168.0.199 utan 192.168.0.166 vilket känns konstigt.
Jag har ingen aning varifrån den fått 199... :)

Och ifrån telefonen får jag felmeddelande:

"(1) Error: At line 2, column 49: Syntax error"

Jag kör webbtjänsten på en Windows 7 Ultimate 64-bit och telefonen är HTC Desire (Eclair, Android 2.1).
Version av Remote-StickServer är 0.3.2 och jag kör senaste versionen av RemoteStick för Android (uppdaterade idag till 1.1.0).

Jag kan se ifrån loggen i webbtjänsten att den kan ta emot kommunikation och brandväggen på datorn är helt avstängd.
Vad gäller ditt exception du får: Jag förmodar att du inte är samma användare som beddav på Swedroid (http://www.swedroid.se/forum/showpost.p ... stcount=25) eftersom ni har olika IP-adresser lokalt? Hur som helst så har ni exakt samma fel och jag är väldigt mån om att hitta problemet. Själv har jag ingen Windows 7-maskin hemma så jag har lite problem att testa på en Windows-dator. Emellertid så finns det faktiskt en Windows 7 Home där jag befinner mig för tillfället så jag ska försöka passa på att testa remotestick-server här när jag ändå har chansen.
Det jag kan tänka på, så här på rak arm, är att du inte satt upp PATH ordentligt kanske? Öppna en kommandoprompt och kör

Code: Select all

set PATH=%PATH%;"C:\Program files\Telldus"
(eller vart du nu har Telldus installerat) för att sedan köra remotestick-server från samma prompt.

Vad gäller din IP-adress: Du har förmodligen flera IP-adresser på din dator. Kanske har din dator både ett fysiskt och ett trådlöst nätverkskort där båda är anslutna till ett nät? Eller så har du någon typ av tjänst installerad som sätter upp ett nätverks-interface kanske? Jag tror du kan skriva "ipconfig /all" i en kommandoprompt för att lista alla nätverksinterface. Du kan även starta med remotestick-server med parametern --host= för att tvinga den att använda ett visst nätverksinterface.
Post Reply