Homeautomation 1.0

How are you using your Bubba? Got ideas for a cool modification? Share!
Locked
MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson » 25 Feb 2010, 11:15

DanielM wrote:
Hur har det gått med detta egentligen? Kommit någonvart?
:cry:
Nej, det har gått lite i baklås är jag rädd. Jag har postat på Telldus forum, men dessvärre har jag inte fått något svar än.

En kollega (som har sin enhet fungerande) tyckte att jag skulle ge ett försök att dra ner koden och kompilera den igen enligt denna bruksanvisning.

Visst, sagt och gjort så körde jag igång igen.
Enligt anvisningen skulle bla. följande kommandon köras

Code: Select all

modprobe ftdi_sio vendor=0x1781 product=0x0c30
update-modules
modprobe ftdi_sio
svn co http://svn.telldus.se/telldus/trunk/telldus-core
cd telldus-core
och det gick ju fint så jag var glad.

Nästa steg var

Code: Select all

cmake -DBUILD_LIBTELLDUS-CORE=0 -DBUILD_TDTOOL=0 -DBUILD_RFCMD_WITH_LIBFTDI=1 .
men se, det gick inte lika bra:

Code: Select all

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
FTDI_LIBRARY
    linked by target "find_telldus" in directory /usr/src/telldus-core/rfcmd
    linked by target "rfcmd" in directory /usr/src/telldus-core/rfcmd
Nå, jag tänkte att jag hoppas att det fungerar att köra make i alla fall, vilket det naturligtvis inte gjorde.
Ge inte upp var mitt mantra, så jag prövade att inte använda mig av biblioteket FTDI, dvs jag skrev:

Code: Select all

bubba:/usr/src/telldus-core# cmake -DBUILD_LIBTELLDUS-CORE=0 -DBUILD_TDTOOL=0 -DBUILD_RFCMD_WITH_LIBFTDI=0 .
och det fungerade lysande. Nu är det bara att köra hojtade jag glatt och skrev make, men ack så besviken jag blev:

Code: Select all

bubba:/usr/src/telldus-core# make
[  7%] Generating moc_Pipe.cxx
[ 14%] Generating moc_TelldusCore.cxx
[ 21%] Generating moc_Manager.cxx
[ 28%] Generating moc_MessageReceiver.cxx
Scanning dependencies of target TelldusService
[ 35%] Building CXX object telldus-service/service/CMakeFiles/TelldusService.dir/TelldusCore.cpp.o
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:5:24: error: QLocalServer: No such file or directory
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:6:24: error: QLocalSocket: No such file or directory
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:17: error: ‘QLocalServer’ does not name a type
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:19: error: ‘QLocalSocket’ was not declared in this scope
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:19: error: template argument 1 is invalid
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp: In constructor ‘TelldusCore::TelldusCore()’:
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:43: error: ‘class TelldusCorePrivate’ has no member named ‘eventServer’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:47: error: ‘class TelldusCorePrivate’ has no member named ‘eventServer’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:48: error: ‘class TelldusCorePrivate’ has no member named ‘eventServer’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp: In member function ‘void TelldusCore::newEventConnection()’:
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:83: error: ‘QLocalSocket’ was not declared in this scope
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:83: error: ‘s’ was not declared in this scope
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:83: error: ‘class TelldusCorePrivate’ has no member named ‘eventServer’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:85: error: request for member ‘append’ in ‘((TelldusCorePrivate*)((TelldusCore*)this)->TelldusCore::d)->TelldusCorePrivate::eventSockets’, which is of non-class type ‘int’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp: In member function ‘void TelldusCore::disconnected()’:
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:90: error: ‘QLocalSocket’ was not declared in this scope
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:90: error: ‘s’ was not declared in this scope
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:90: error: ‘QLocalSocket’ cannot appear in a constant-expression
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:90: error: parse error in template argument list
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:90: error: no matching function for call to ‘qobject_cast(QObject*)’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:92: error: request for member ‘removeOne’ in ‘((TelldusCorePrivate*)((TelldusCore*)this)->TelldusCore::d)->TelldusCorePrivate::eventSockets’, which is of non-class type ‘int’
/usr/include/qt4/QtCore/qglobal.h: At global scope:
/usr/include/qt4/QtCore/qglobal.h: In instantiation of ‘QForeachContainer<int>’:
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:126:   instantiated from here
/usr/include/qt4/QtCore/qglobal.h:1692: error: ‘int’ is not a class, struct, or union type
/usr/include/qt4/QtCore/qglobal.h:1692: error: ‘int’ is not a class, struct, or union type
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp: In member function ‘void TelldusCore::deviceEventSlot(int, int, const char*)’:
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:126: error: ‘class QForeachContainer<int>’ has no member named ‘i’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:126: error: ‘class QForeachContainer<int>’ has no member named ‘e’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:126: error: ‘class QForeachContainer<int>’ has no member named ‘i’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:126: error: ‘QLocalSocket’ was not declared in this scope
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:126: error: ‘s’ was not declared in this scope
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:126: error: ‘class QForeachContainer<int>’ has no member named ‘i’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp: In member function ‘void TelldusCore::deviceChangeEventSlot(int, int, int)’:
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:137: error: ‘class QForeachContainer<int>’ has no member named ‘i’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:137: error: ‘class QForeachContainer<int>’ has no member named ‘e’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:137: error: ‘class QForeachContainer<int>’ has no member named ‘i’
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:137: error: ‘QLocalSocket’ was not declared in this scope
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:137: error: ‘s’ was not declared in this scope
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:137: error: ‘class QForeachContainer<int>’ has no member named ‘i’
/usr/include/qt4/QtCore/qglobal.h: In constructor ‘QForeachContainer<T>::QForeachContainer(const T&) [with T = int]’:
/usr/src/telldus-core/telldus-service/service/TelldusCore.cpp:126:   instantiated from here
/usr/include/qt4/QtCore/qglobal.h:1689: error: using invalid field ‘QForeachContainer<T>::i’
/usr/include/qt4/QtCore/qglobal.h:1689: error: request for member ‘begin’ in ‘((QForeachContainer<int>*)this)->QForeachContainer<int>::c’, which is of non-class type ‘const int’
/usr/include/qt4/QtCore/qglobal.h:1689: error: using invalid field ‘QForeachContainer<T>::e’
/usr/include/qt4/QtCore/qglobal.h:1689: error: request for member ‘end’ in ‘((QForeachContainer<int>*)this)->QForeachContainer<int>::c’, which is of non-class type ‘const int’
make[2]: *** [telldus-service/service/CMakeFiles/TelldusService.dir/TelldusCore.cpp.o] Error 1
make[1]: *** [telldus-service/service/CMakeFiles/TelldusService.dir/all] Error 2
make: *** [all] Error 2

bubba:/usr/src/telldus-core#

En massa filer som saknas ? :? Hur märkligt är inte det?
Så nu vet jag inte riktigt vad jag ska göra... :(

DanielM
Posts: 637
Joined: 28 Mar 2008, 06:37
Location: Sweden

Re: Homeautomation 1.0

Post by DanielM » 25 Feb 2010, 13:22

MagnusJonsson wrote:

Code: Select all

modprobe ftdi_sio vendor=0x1781 product=0x0c30
update-modules
modprobe ftdi_sio
svn co http://svn.telldus.se/telldus/trunk/telldus-core
cd telldus-core
Nä, den där vägen tror inte jag på. Ladda hem svn-versioner brukar vara att be om problem. http://developer.telldus.se/wiki/TellSt ... tionSource känns som den bästa vägen att gå...

/Daniel

MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson » 27 Feb 2010, 08:21

DanielM wrote:
Nä, den där vägen tror inte jag på. Ladda hem svn-versioner brukar vara att be om problem. http://developer.telldus.se/wiki/TellSt ... tionSource känns som den bästa vägen att gå...
Jag tog bort alla gamla Telldus bibliotek på disk och laddade ner version 2.0.2 och följde bruksanvisningen.

Code: Select all

bubba:/usr/src/telldus-core# su -c "make install"
[ 90%] Built target telldus-core
[ 95%] Built target tdtool
[100%] Built target rfcmd
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/lib/libtelldus-core.so.2.0.2
-- Installing: /usr/local/lib/libtelldus-core.so.2
-- Up-to-date: /usr/local/lib/libtelldus-core.so
-- Installing: /usr/local/include/telldus-core.h
-- Installing: /etc/tellstick.conf
-- Installing: /var/state/telldus-core.conf
-- Up-to-date: /etc/udev/rules.d/99-tellstick.rules
-- Installing: /usr/local/bin/tdtool
-- Removed runtime path from "/usr/local/bin/tdtool"
-- Installing: /usr/local/bin/rfcmd
Inga problem tillstötte (eureka) men när jag skulle köra tdtool så fick jag följande

Code: Select all

bubba:/usr/src/telldus-core# tdtool --on 1
/var/state/telldus-core.conf:1: no such option 'deviceNode'
Märkligt, men efter en stund kom jag på att om jag helt sonika döpte om filen /var/state/telldus-core.conf så försvann problemet.
Men, dessvärre så kvarstår problematiken

Code: Select all

bubba:/usr/src/telldus-core# tdtool --on 1
Turning on device 1, Arbetsrum - An error occurred when communication with TellStick
och nu tänds inte lampan heller trots att jag försökt med det mesta jag kan komma på.... :(

DanielM
Posts: 637
Joined: 28 Mar 2008, 06:37
Location: Sweden

Re: Homeautomation 1.0

Post by DanielM » 28 Feb 2010, 09:27

MagnusJonsson wrote:

Code: Select all

bubba:/usr/src/telldus-core# tdtool --on 1
Turning on device 1, Arbetsrum - An error occurred when communication with TellStick
och nu tänds inte lampan heller trots att jag försökt med det mesta jag kan komma på.... :(
Tja du... Vad säger en "modinfo ftdi_sio"? Och vad säger en "ls -l /dev/tellstick".

/Daniel

MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson » 28 Feb 2010, 09:34

En liten tröst i besvikelsen är i alla fall att Micke Prag på Telldus i alla fall nu svarar på mina posts. Förhoppningsvis så har han någon het ledtråd.....


Något som jag inte har tänkt på förrän nu är varför man använder tdtool överhuvudtaget? Det verkar ju vara behäftat med mindre bra egenskaper... :wink:
Varför inte rfcmd ? Finns det någon uppenbar nackdel med det? Det verkar ju i alla fall fungera, även om jag inte har listat ut hur man kör absolutdimning via det.

EDIT:
Ah.. Jag har fått lära mig att rfcmd endast skickar codeswitch-signaler. Förklaring? Antagligen.... :oops:


En undran om funktionaliteten (eller kanske det är en feature request) till HomeAutomation:
Jag var på Mediamarkt häromdagen och såg att Philips tar 1300 spänn för en Wakeuplight. Borde inte detta vara en utmärkt feature för HomeAutomation? Man sätter tiden då ljusstyrkan ska vara 100% och sedan hur lång tid "uppdimningen" ska ta ?
Bara en tanke... Jag hade i alla fall tyckt att det vore coolt... 8)
Last edited by MagnusJonsson on 28 Feb 2010, 10:14, edited 1 time in total.

MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson » 28 Feb 2010, 10:11

DanielM wrote:
Tja du... Vad säger en "modinfo ftdi_sio"? Och vad säger en "ls -l /dev/tellstick".

Code: Select all

bubba:/home/magnus# ls -l /dev/tellstick
crw-rw---- 1 root plugdev 188, 0 2010-02-28 16:00 /dev/tellstick
och

Code: Select all

modinfo ftdi_sio
ger följande jätteutskrift :

Code: Select all

filename:       /lib/modules/2.6.26.5/kernel/drivers/usb/serial/ftdi_sio.ko
license:        GPL
description:    USB FTDI Serial Converters Driver
author:         Greg Kroah-Hartman <greg@kroah.com>, Bill Ryder <bryder@sgi.com>, Kuba Ober <kuba@mareimbrium.org>
alias:          usb:v0403pED22d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0584pB020d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pBCD9d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pBCD8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pBAF8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1457p5118d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v15BAp0003d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD738d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE700d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B91p0064d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEE18d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1781p0C30d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C7Dp0005d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pCC4Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pCC49d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pCC48d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD678d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v128Dp0001d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFAF0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE050d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pDD20d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v5050p0400d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C26p0004d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pC991d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pC7D0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFA88d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pDC01d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pDC00d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEA90d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFF20d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0D3Ap0300d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0D46p2021d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0D46p2020d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pDF35d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pDF33d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pDF31d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pDF32d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pDF30d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pDF28d*dc*dsc*dp*ic*isc*ip*
alias:          usb:vDEEEp0303d*dc*dsc*dp*ic*isc*ip*
alias:          usb:vDEEEp0302d*dc*dsc*dp*ic*isc*ip*
alias:          usb:vDEEEp0300d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEC89d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEC88d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEEEFd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEEEEd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEEEDd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEEECd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEEEBd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEEEAd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEEE9d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEEE8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE548d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1342p0202d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD38Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD38Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD38Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD38Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD38Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD38Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD389d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD388d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF3C1d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF3C0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE520d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0856pAC03d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0856pAC02d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0856pAC01d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFD60d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v103Ep03E8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF680d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0F94p0005d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0F94p0001d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v093Cp0701d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v093Cp0601d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFAD0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF9D2d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF9D1d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF9D0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF44Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF44Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF44Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF449d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF448d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE0EAd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE0E9d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE0EFd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE0E8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE0F6d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE0F4d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE0F3d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE0F2d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE0F1d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE0F0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF06Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF06Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF06Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF06Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF069d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF068d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFB5Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFB5Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFB5Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFB5Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFB59d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFF3Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFF3Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFF3Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFF3Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFF3Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFF3Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFF39d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFF38d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF06Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE6C8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF06Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFB58d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFB5Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFB5Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE88Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE88Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE88Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE88Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE88Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE88Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE889d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE888d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE80Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE80Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE80Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE80Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE80Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE80Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE809d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pE808d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC73d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC72d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC71d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC70d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF850d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFA78d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0B39p0421d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0ACDp0300d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2883d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2873d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2863d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2853d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2843d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2833d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2823d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2813d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2882d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2872d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2862d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2852d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2842d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2832d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2822d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2812d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2881d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2871d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2861d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2851d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2841d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2831d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2821d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2811d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2443d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2433d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2423d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2413d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2442d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2432d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2422d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2412d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2441d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2431d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2421d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2411d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2223d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2213d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2222d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2212d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2221d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2211d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p9020d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2104d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2103d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2102d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0C52p2101d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF857d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pEBE0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF208d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF0C0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01FFd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01FEd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01FDd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01FCd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01FBd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01FAd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01F9d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01F8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01F7d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01F6d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01F5d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01F4d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01F3d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01F2d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01F1d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01F0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01EFd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01EEd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01EDd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01ECd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01EBd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01EAd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01E9d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01E8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01E7d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01E6d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01E5d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01E4d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01E3d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01E2d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01E1d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01E0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01DFd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01DEd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01DDd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01DCd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01DBd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01DAd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01D9d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01D8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01D7d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01D6d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01D5d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01D4d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01D3d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01D2d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01D1d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01D0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01CFd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01CEd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01CDd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01CCd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01CBd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01CAd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01C9d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01C8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01C7d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01C6d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01C5d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01C4d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01C3d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01C2d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01C1d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01C0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01BFd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01BEd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01BDd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01BCd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01BBd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01BAd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01B9d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01B8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01B7d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01B6d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01B5d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01B4d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01B3d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01B2d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01B1d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01B0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01AFd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01AEd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01ADd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01ACd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01ABd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01AAd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01A9d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01A8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01A7d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01A6d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01A5d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01A4d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01A3d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01A2d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01A1d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp01A0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp019Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp019Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp019Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp019Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp019Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp019Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0199d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0198d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0197d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0196d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0195d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0194d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0193d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0192d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0191d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0190d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp018Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp018Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp018Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp018Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp018Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp018Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0189d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0188d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0187d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0186d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0185d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0184d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0183d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0182d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0181d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0180d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp017Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp017Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp017Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp017Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp017Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp017Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0179d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0178d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0177d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0176d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0175d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0174d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0173d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0172d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0171d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0170d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp016Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp016Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp016Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp016Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp016Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp016Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0169d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0168d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0167d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0166d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0165d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0164d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0163d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0162d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0161d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0160d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp015Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp015Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp015Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp015Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp015Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp015Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0159d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0158d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0157d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0156d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0155d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0154d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0153d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0152d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0151d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0150d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp014Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp014Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp014Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp014Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp014Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp014Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0149d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0148d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0147d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0146d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0145d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0144d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0143d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0142d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0141d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0140d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp013Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp013Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp013Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp013Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp013Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp013Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0139d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0138d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0137d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0136d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0135d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0134d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0133d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0132d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0131d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0130d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp012Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp012Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp012Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp012Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp012Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp012Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0129d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0128d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0127d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0126d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0125d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0124d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0123d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0122d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0121d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0120d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp011Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp011Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp011Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp011Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp011Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp011Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0119d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0118d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0117d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0116d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0115d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0114d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0113d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0112d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0111d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0110d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp010Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp010Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp010Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp010Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp010Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp010Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0109d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0108d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0107d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0106d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0105d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0104d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0103d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0102d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0101d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1B3Dp0100d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFA06d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFA05d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFA04d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFA03d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFA02d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFA01d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFA00d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFE38d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0DCDp0001d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC82d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC0Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC0Ed*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC0Dd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC0Cd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC0Bd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC0Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC09d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC08d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1209p1006d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1209p1002d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pBFD8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFA10d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pCAA0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403p6010d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFBFAd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403p6006d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403p6001d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403p8372d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pC850d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD071d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD070d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFC60d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pF2D0d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD017d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD016d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD015d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD014d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD013d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD012d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD011d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pD010d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFFA8d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0403pFF00d*dc*dsc*dp*ic*isc*ip*
depends:        usbserial
vermagic:       2.6.26.5 mod_unload 
parm:           debug:Debug enabled or not (bool)
parm:           product:ushort
parm:           vendor:User specified vendor ID (default=0x0403) (ushort)


MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson » 28 Feb 2010, 10:19

Fick tips att ändra lite conf filen....
Micke Prag wrote:
Hur fungerar detta?

Code: Select all

deviceNode = "/dev/tellstick"
device {
  id = 1
  name = "Arbetsrum"
  protocol = "arctech"
  model = "codeswitch"
  parameters {
    house = "L"
    unit = "5"
  }
}
Och nu kan jag återigen tända lampan med tdtool --on 1 (dock precis som tidigare med timeout).
Dock är det väl knappast någon lösning eftersom jag antar att model = "codeswitch" gör det omöjligt att dimma överhuvudtaget....

Spännande fortsättning följer garanterat.... ;-)

MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson » 03 Mar 2010, 15:07

Micke Prag (Mjukvaruutvecklare Telldus Technologies) wrote:
Jag gissar att det är liknande problem som de som hade problem med Ubuntu under en tid.
Jag gjorde vid tillfället försök på ubuntu för att lista ut var det var utan någon framgång tyvärr. De som kör via Bubba som inte har problem, vilken version på kärnan kör dom? Det kan ju vara något där som spökar. För Ubuntu-folket löste det av sig själv ett par uppdateringar senare.

En workaround skulle kunna vara att i tellstick.conf konfigurera att den ska ignorera svaret från TellStick. Då kommer tdtool fungera på samma sätt som rfcmd.
Ja, själv kör jag

Code: Select all

uname -r
2.6.26.5
Vad kör ni andra som har en fungerande tdtool?
Last edited by MagnusJonsson on 03 Mar 2010, 15:27, edited 1 time in total.

DanielM
Posts: 637
Joined: 28 Mar 2008, 06:37
Location: Sweden

Re: Homeautomation 1.0

Post by DanielM » 03 Mar 2010, 15:17

MagnusJonsson wrote:Ja, själv kör jag

Code: Select all

uname -r
2.6.26.5
Vad kör ni andra som har en fungerande tdtool?

Code: Select all

root@bubba:/home/web/homeautomation# uname -r
2.6.16.16
Har alltid funkat klockrent här på min B1...

/Daniel

MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson » 03 Mar 2010, 15:28

Suck... Jag är väl antagligen dömd att aldrig få detta att fungera.... :cry:

MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson » 03 Mar 2010, 15:59

....eller istället för att tycka synd om mig själv så kan jag alltid kompilera om koden till tdtool själv.
Micke Prag (Mjukvaruutvecklare Telldus Technologies) wrote:

Dock så kompilerar du ju ändå från källkod så du skulle kunna ta bort läsningen manuellt så länge.

Kolla i denna filen:
http://developer.telldus.se/browser/tru ... pp?rev=341

Tar du bort rad 37 till 53 och kompilerar om så kommer den inte bry sig om svaret.

Jistanes, nu har jag något att bita i.... 8)

MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson » 07 Mar 2010, 07:06

Ännu en gång så drog jag ner källkoden till version 2.0.2. Denna gång så editerade jag filen

/usr/src/telldus-core/driver/libtelldus-core/linux/Device.cpp

och tog bort raderna

Code: Select all

37	        ssize_t bytes = 0;
38	        int c = 5000;
39	        while(--c) {
40	                bytes = read(fd, &in, 1);
41	                if (bytes > 0) {
42	                        if (in == '\n') {
43	                                break;
44	                        }
45	                }
46	                usleep(1000); //Don't eat 100% cpu
47	        }
48	
49	        close(fd);
50	       
51	        if (c == 0) {
52	                return TELLSTICK_ERROR_COMMUNICATION;
53	        }
samt kompilerade och installerade allt igen (cmake . och make samt su -c "make install")

Och det är klart, hoppar man över att försöka läsa ett svar från sin hårdvara (i 5 sekunder) så verkar ju allt fungera.

Code: Select all

tdtool --on 1
Turning on device 1, Arbetsrum - Success
Det hade ju förvisso känts bättre om leverantören hade en mindre oortodox lösning på problemet, men man får väl vara glad att det "fungerar".... :)

MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson » 07 Mar 2010, 08:04

Det visade sig snabbt att när jag tagit bort koden som läste svaret från TellSticken så skickades nästa kommando för fort, dvs

Code: Select all

/usr/src/telldus-core/tdtool/tdtool --on 1 --on 2
fungerade inte.

Ytterligare en kodförändring i filen /usr/src/telldus-core/driver/libtelldus-core/linux/Device.cpp

Code: Select all

int c = 1000;
while(--c)
{
  usleep(1000); //Don't eat 100% cpu
}

close(fd); 
gjorde att jag nu i SSH fönstret kan skriva

Code: Select all

telldus-core# /usr/src/telldus-core/tdtool/tdtool --on 1 --on 2
Turning on device 1, Arbetsrum - Success
Turning on device 2, Sovrum - Success

telldus-core# /usr/src/telldus-core/tdtool/tdtool --off 1 --off 2
Turning off device 1, Arbetsrum - Success
Turning off device 2, Sovrum - Success

för att tända och släcka mina lampor. Dessvärre verkar inte php scriptet tycka att allt är frid och fröjd, för är jag kör det från websidan så tänds bara den ena lampan trots att loggen ser nästa perfekt ut (Frågan är som svarsarrayen ska innehålla båda svaren från TellSticken)

Code: Select all

Array
(
    [id] => -1
    [status] => true
    [x] => 26
    [y] => 13
)
Array
(
    [display] => houseplan
    [action] => toggle
)
Array
(
    [user] => magnus
    [userid] => 4
    [userlevel] => 3
    [firstname] => Magnus
    [lastname] => Sydoff
    [settings] => Array
        (
            [title] => HomeAutomation v1.0
            [alwaysuselastknownstatus] => 1
            [hoursstatusactive] => 1
            [houseplanwidth] => 600
            [houseplaniconheight] => 30
            [useonewiredata] => 0
            [useexternaltemperature] => 1
            [externaltempurl] => http://www.temperatur.nu/lund.html
            [externaltemplocation] => Ideon Science Park
            [longitude] => 13.18785
            [latitude] => 55.69207
            [timezone] => 1
            [debug] => 1
            [phpbinpath] => /usr/bin/
            [tellduspath] => /usr/src/telldus-core/tdtool/
            [dimlevelstep] => 5
        )

)
Array
(
)


/usr/src/telldus-core/tdtool/tdtool --on 1 --on 2

Array
(
    [0] => Turning on device 1, Arbetsrum
)

DanielM
Posts: 637
Joined: 28 Mar 2008, 06:37
Location: Sweden

Re: Homeautomation 1.0

Post by DanielM » 07 Mar 2010, 10:49

Hmmm... Men det där känns ju som att du låter den vänta 1000 sekunder, eller tänker jag fel nu?

När jag kör tdtool här med två tändningar i samma anrop så tar det typ en sekund, sedan kommer båda success-svaren typ samtidigt. Är det så hos dig nu, eller tar det en sekund till så att säga mellan svaren?

Är ganska säker på att det där inte kommer att göra någon skillnad sedan när vi har släppt 1.1. Där väntar inte homeautomation över huvud taget på något svar från tdtool utan kör den i bakgrunden. Går ju så mycket snabbare så :D

Hur gör du förresten när du säger åt homeautomation att tända två lampor på en gång. Är det en schemalagd aktivitet vi talar om alltså? Jag menar, du kan ju inte gärna klicka på två lampor på en gång...

/Daniel

MagnusJonsson
Posts: 88
Joined: 26 Sep 2008, 04:18

Re: Homeautomation 1.0

Post by MagnusJonsson » 07 Mar 2010, 16:54

DanielM wrote:
Hmmm... Men det där känns ju som att du låter den vänta 1000 sekunder, eller tänker jag fel nu?
Mmmm..... Kanske lite... :wink:
1000us = 1 ms som jag sedan gör 1000 ggr = 1 sek
DanielM wrote:
När jag kör tdtool här med två tändningar i samma anrop så tar det typ en sekund, sedan kommer båda success-svaren typ samtidigt. Är det så hos dig nu, eller tar det en sekund till så att säga mellan svaren?
Jepp, det tar en sekund mellan success-svaren. Om läsningen efter radslut (som Tellduskoden var skriven) hade fungerat så hade nästa kommando skickats "direkt" efter det första. Nu tar det alltid 1 sekund per kommando för mig. Telldus själva verkar inte ha någon annan lösning än denna dessutom. :(

Jag ser verkligen fram emot version 1.1, även om det i dagsläget "bara" ger möjligheten att slå på flera lampor samtidigt.

DanielM wrote:
Hur gör du förresten när du säger åt homeautomation att tända två lampor på en gång.
Jag trycker på "Slå på alla" i Planlösningspanelen. Det ser ut som om alla lampor som tdtool känner till då borde tända sig. (I alla fall om man tittar på debug utskriften)
Jag har inte testat att schemalägga flera tändingar samtidigt.


Annars är jag nöjd med att jag äntligen har begripit hur man ska kunna dimma sina lampor. Antingen beror det på att det finns få tips på Telldus forum (många verkar en smula förvirrade) eller så beror det på att jag är mindre begåvad... Heaven knows... :D

Kommer "WakeupLight" att finnas med i version 1.1?
Det hade ju varit riktigt snajdigt om man (vi som har dimmers) hade gått från ljuslevel 0 till 255 på säg 5 minuter (naturligtvis konfigurerbart)
8)

Locked