RemoteStick - RESTful interface to Tellstick
Moderator: Telldus
RemoteStick - RESTful interface to Tellstick
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!
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.
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.
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.
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
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
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!
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!
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: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.
Observera att det i mitt fall rör sig om en engelsk Windows, därav "Program Files" och inte "Program".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"
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)
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?
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?
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:
Kör "python -v" och kolla vad som står precis i slutet. Hos mig står det såhär:
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).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.
>>>
Re: RemoteStick - RESTful interface to Tellstick
Hej!
Tack för en riktigt bra applikaton. Kör den med Ubuntu och den fungerar perfekt!
Glad sommar!
Tack för en riktigt bra applikaton. Kör den med Ubuntu och den fungerar perfekt!
Glad sommar!
Re: RemoteStick - RESTful interface to Tellstick
I've just released an official Android client using this interface. For those of you running Android in your phone, checkout "RemoteStick" in Market.
Re: RemoteStick - RESTful interface to Tellstick
Nice, I've just installed the app from Market.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.
Once I get home I will try it out.
Re: RemoteStick - RESTful interface to Tellstick
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.
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.
Re: RemoteStick - RESTful interface to Tellstick
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.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.
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"
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.