Vart lagras enhetskonf i Windows?
Moderator: Telldus
Vart lagras enhetskonf i Windows?
Vart lagras motsvarigheten till telldus.conf (linux) i Windows? (som tdtool och Telldus Center använder)
/ Martin
/ Martin
Re: Vart lagras enhetskonf i Windows?
Registret:phromo wrote:Vart lagras motsvarigheten till telldus.conf (linux) i Windows? (som tdtool och Telldus Center använder)
/ Martin
HKEY_CURRENT_USER\SOFTWARE\Telldus
Går att få det att lägga sig i LOCAL_MACHINE om man vill ha en webserver som styr.
Kolla sidan 3 (min post) i forumet "Webserver IIS för Tellstick"
Hur lagras informationen om enheterna i Registret ?
Hej
Det är ju allt gott och väl att man kan hitta sker och ting i Registryt, men hur är det kodat?
Jag behöver kunna läsa ut koden för enheten inte bara namn & typ.
Jag jobbar på att integrera Sqeezebox plug-in PowerCenter med Telldus-core.
Det som fattas mig är att skriva en ersättare för "bottlerocket" som anropar Telldus-core i stället. PowerCenter anropar br med bla enhetskod som parameter - men Telldus-core vill ha enhetsindex... Jag har inte hittat något sätt att få ut enhetskoden ur registryt.
Alternativet är att ändra i PowerCenters Perl-script. Ingen höjdare för mig
tcmsklas
Det är ju allt gott och väl att man kan hitta sker och ting i Registryt, men hur är det kodat?
Jag behöver kunna läsa ut koden för enheten inte bara namn & typ.
Jag jobbar på att integrera Sqeezebox plug-in PowerCenter med Telldus-core.
Det som fattas mig är att skriva en ersättare för "bottlerocket" som anropar Telldus-core i stället. PowerCenter anropar br med bla enhetskod som parameter - men Telldus-core vill ha enhetsindex... Jag har inte hittat något sätt att få ut enhetskoden ur registryt.
Alternativet är att ändra i PowerCenters Perl-script. Ingen höjdare för mig
tcmsklas
Det vore kul om du fick till en sådan plugin. Skulle vara praktiskt att kunna styra ström till omkrinenheter med hjälp av boom-en
Så här är det kodat, om jag fattar det rätt:
Under HKEY_CURRENT_USER\SOFTWARE\Telldus\Devices\[Devicenummer]\
finns ett antal nycklar.
En nyckel heter "0" och innehåller enhetskod minus ett. Om enheten alltså har enhetskod "6" så finns det en femma i nyckel "0".
En nyckel heter "1" och innehåller huskod. Huskod "A" visas i nycklen som "0" och så vidare.
Så här är det kodat, om jag fattar det rätt:
Under HKEY_CURRENT_USER\SOFTWARE\Telldus\Devices\[Devicenummer]\
finns ett antal nycklar.
En nyckel heter "0" och innehåller enhetskod minus ett. Om enheten alltså har enhetskod "6" så finns det en femma i nyckel "0".
En nyckel heter "1" och innehåller huskod. Huskod "A" visas i nycklen som "0" och så vidare.
Fler funktioner i Telldus-core
Hej,
Under tiden har jag kommit till samma resultat som riksvag. Det allra snyggaste vore ju förstås om telldus-core kunde utökas med "tdGetDeviceCode(str tdDeviceName)" och "tdGetDeviceId(str tdDeviceName) så är man helt oberoende av registryt (och därmed OS - man måste ju tänka på våra Linuxhackande kamrater också ! ).
/Klas
Under tiden har jag kommit till samma resultat som riksvag. Det allra snyggaste vore ju förstås om telldus-core kunde utökas med "tdGetDeviceCode(str tdDeviceName)" och "tdGetDeviceId(str tdDeviceName) så är man helt oberoende av registryt (och därmed OS - man måste ju tänka på våra Linuxhackande kamrater också ! ).
/Klas
Last edited by tcmsklas on Sun Jan 03, 2010 7:21 pm, edited 1 time in total.
Vet inte om det har något med saken att göra att jag har min Tellstick installerad på en box som kör WHS - mina tdDevices ligger under HKEY_CURRENT_MACHINE\Software\Telldus. Under HKEY_CURRENT_USER ligger bara "Example Device". Eftersom jag är en VB hackare måste jag också hitta på ett sätt att kopiera från HKEY_LOCAL_MACHINE till HKEY_CURRENT_USER\Software\VB and VBA Program Settings\.....
Klas
Klas
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Jag hänger inte riktigt med i era banor här. Känns inte som ni använder APIt helt rätt. Ni behöver inte ansluta till registret för att få ut informationen. Allting går att få ut från telldus-core.
Vad ska dessa funktioner göra som du inte kan få ut av biblioteket idag?
telldus-core ska inte ha ett enhetsindex utan alltid ett id. Det finns bara en funktion som använder index och den får bara kallas på i en loop. Det är tdGetDeviceId()PowerCenter anropar br med bla enhetskod som parameter - men Telldus-core vill ha enhetsindex... Jag har inte hittat något sätt att få ut enhetskoden ur registryt.
Du är helt oberoende av registryt. telldus-core är helt plattformsoberoende.Det allra snyggaste vore ju förstås om telldus-core kunde utökas med "tdGetDeviceCode(str tdDeviceName)" och "tdGetDeviceId(str tdDeviceName) så är man helt oberoende av registryt (och därmed OS - man måste ju tänka på våra Linuxhackande kamrater också ! ).
Vad ska dessa funktioner göra som du inte kan få ut av biblioteket idag?
Varför behöver du kopiera över detta? Behöver ni överhuvud-taget ansluta till registret använder ni inte vårt API rätt. Ni riskerar även att programmet inte fungerar som det ska då vi inte garanterar på något vis hur enheterna sparas och kan mycket väl ändras mellan versionerna. Vi garanterar bara funktionaliteten då ni går genom våra funktioner.Vet inte om det har något med saken att göra att jag har min Tellstick installerad på en box som kör WHS - mina tdDevices ligger under HKEY_CURRENT_MACHINE\Software\Telldus. Under HKEY_CURRENT_USER ligger bara "Example Device". Eftersom jag är en VB hackare måste jag också hitta på ett sätt att kopiera från HKEY_LOCAL_MACHINE till HKEY_CURRENT_USER\Software\VB and VBA Program Settings\.....
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies
Micke,
Vi har ett antal mixups och missförstånd oss emellan.
det här med ID respektive index är inte riktigt solklart och ger lätt upphov till frustration. Jag tror att jag har greppat vad som är vad, i alla fall fungerar min VB6 kod!
Jag håller inte med dig här: Jag har tyvärr inte hittat någon funktion som returnerar enhetens "address" (huskod+nummer). Du får gärna korrigera mig om jag har fel!
En annan lustighet är att dokumentationen för Telldus-core anger att funktionerna börjar med "td", det VB exempel som följer med Telldus installation visar att funktionerna ska anropas med prefixet "dev".
Anledning till ev kopiering av registry-keys är att VB6 endast tillhandahåller funktioner för att hantera hiven HKEY_CURRENT_USER. Med lite VB power usage kan emellertid även andra hives hanteras, men är krånligare.
Det kanske är på sin plats att förklara hela installationen:
Jag har en Squeezeserver som körs på samma maskin som Telldus. Squeezeservern manövreras av en WiFi remote controller. Till dessa enheter finns plugins (skrivna i Perl och körs på servern) och applets (skrivna i lua och körs på fjärren). Jag har hittat en Plugin/applet som heter PowerCenter. Problemet med den är att den den är att den utnyttjar en liten applikation som heter BottleRocket (br) för att kontrollera ett X10 interface (via "hardware handshake" på en RS232 seriekanal) som heter Firecracker.
"br" vill bl.a ha huskod och enhet som parameter. Nu har jag två alternativ: antingen skirva om plugin/applet så att TelldusCore kan anropas direkt, eller skriva en "br-emulator". Eftersom varken Perl eller lua ingår i min kunskapsbas föll jag för det senare alternativet. Mindre snyggt eftersom jag måste "bypassa" TelldusCore och gå direkt till registryt för att hitta enhetsaddresser att matcha mot anropet till br för att sedan kunna anropa devTurnOn/Off med ID som parameter. Självklart skulle jag vilja använda mig av enbart Tellduscore!
Klas
Vi har ett antal mixups och missförstånd oss emellan.
det här med ID respektive index är inte riktigt solklart och ger lätt upphov till frustration. Jag tror att jag har greppat vad som är vad, i alla fall fungerar min VB6 kod!
Jag håller inte med dig här: Jag har tyvärr inte hittat någon funktion som returnerar enhetens "address" (huskod+nummer). Du får gärna korrigera mig om jag har fel!
En annan lustighet är att dokumentationen för Telldus-core anger att funktionerna börjar med "td", det VB exempel som följer med Telldus installation visar att funktionerna ska anropas med prefixet "dev".
Anledning till ev kopiering av registry-keys är att VB6 endast tillhandahåller funktioner för att hantera hiven HKEY_CURRENT_USER. Med lite VB power usage kan emellertid även andra hives hanteras, men är krånligare.
Det kanske är på sin plats att förklara hela installationen:
Jag har en Squeezeserver som körs på samma maskin som Telldus. Squeezeservern manövreras av en WiFi remote controller. Till dessa enheter finns plugins (skrivna i Perl och körs på servern) och applets (skrivna i lua och körs på fjärren). Jag har hittat en Plugin/applet som heter PowerCenter. Problemet med den är att den den är att den utnyttjar en liten applikation som heter BottleRocket (br) för att kontrollera ett X10 interface (via "hardware handshake" på en RS232 seriekanal) som heter Firecracker.
"br" vill bl.a ha huskod och enhet som parameter. Nu har jag två alternativ: antingen skirva om plugin/applet så att TelldusCore kan anropas direkt, eller skriva en "br-emulator". Eftersom varken Perl eller lua ingår i min kunskapsbas föll jag för det senare alternativet. Mindre snyggt eftersom jag måste "bypassa" TelldusCore och gå direkt till registryt för att hitta enhetsaddresser att matcha mot anropet till br för att sedan kunna anropa devTurnOn/Off med ID som parameter. Självklart skulle jag vilja använda mig av enbart Tellduscore!
Klas
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Du kan använda funktionen tdGetDeviceParameter() för detta. Det är något som jag starkt avrekommenderar att göra. Mer om det nedan.tcmsklas wrote:Jag håller inte med dig här: Jag har tyvärr inte hittat någon funktion som returnerar enhetens "address" (huskod+nummer). Du får gärna korrigera mig om jag har fel!
Detta för att du antagligen skriver mot TellUsbD101.dll som är vårt 1.x bibliotek. telldus-core är för 2.x och där har alla funktionerna prefixet tdtcmsklas wrote:En annan lustighet är att dokumentationen för Telldus-core anger att funktionerna börjar med "td", det VB exempel som följer med Telldus installation visar att funktionerna ska anropas med prefixet "dev".
Åter igen, Telldus inställningar i registret ska inte läsas av tredjeparts-program. Detta gör endast att programmet kan sluta fungera mot en senare version av vår programvara.tcmsklas wrote:Anledning till ev kopiering av registry-keys är att VB6 endast tillhandahåller funktioner för att hantera hiven HKEY_CURRENT_USER. Med lite VB power usage kan emellertid även andra hives hanteras, men är krånligare.8
Att skriva pluginet enligt alternativ ett är vad som bör göras. Att lita på enheters inställning är inget bra alternativ av en mycket enkel anledning. Det finns inget sätt garantera att en enhet har en viss inställning. Alla enhets-inställningar är protokoll-beroende. T.ex. protokollet "sartano" har endast en inställning; "code". Hur skulle den passa in mot br?tcmsklas wrote: "br" vill bl.a ha huskod och enhet som parameter. Nu har jag två alternativ: antingen skirva om plugin/applet så att TelldusCore kan anropas direkt, eller skriva en "br-emulator". Eftersom varken Perl eller lua ingår i min kunskapsbas föll jag för det senare alternativet. Mindre snyggt eftersom jag måste "bypassa" TelldusCore och gå direkt till registryt för att hitta enhetsaddresser att matcha mot anropet till br för att sedan kunna anropa devTurnOn/Off med ID som parameter. Självklart skulle jag vilja använda mig av enbart Tellduscore!
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Kom på en annan sak. Någonstans måste enheterna listas för att visa namnet på displayen? Kan inte då enhetens id vara "enhetskoden"?
Vill br då styra A1 så kan enhet 1 i telldus-core användas.
Detta gör att man skippar huskoden helt och t.ex. B3 fortfarande blir enhet 3 i telldus-core.
Vill br då styra A1 så kan enhet 1 i telldus-core användas.
Detta gör att man skippar huskoden helt och t.ex. B3 fortfarande blir enhet 3 i telldus-core.
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies
Hej Micke,
Vi avslutar debatten här. Jag gillar inte ditt sätt att slå in öppna dörrar. Det enda jag vill är att kunna använda standardmetoder, se mina tidigare inlägg. Med funktionen du nämner kan det göras utan att jag behöver lära mig Perl och lua.
Eftersom jag kör SwitchKing håller jag mig till 1.x biblioteket sålänge. Jag kommer att byta/uppgradera när SwithKing kan köras med 2.x. Liksom jag kommer att uppgradera "br_replacer" då.
Funktionen du nämer "tdGetDeviceParamenter" finns inte dokumenterad på er wiki - därför visste jag inte om den.
Vore vidare bra om VB exemplet som kommer med installationen uppgraderas till 2.x bibilioteket.
PUNKT
Klas
Vi avslutar debatten här. Jag gillar inte ditt sätt att slå in öppna dörrar. Det enda jag vill är att kunna använda standardmetoder, se mina tidigare inlägg. Med funktionen du nämner kan det göras utan att jag behöver lära mig Perl och lua.
Eftersom jag kör SwitchKing håller jag mig till 1.x biblioteket sålänge. Jag kommer att byta/uppgradera när SwithKing kan köras med 2.x. Liksom jag kommer att uppgradera "br_replacer" då.
Funktionen du nämer "tdGetDeviceParamenter" finns inte dokumenterad på er wiki - därför visste jag inte om den.
Vore vidare bra om VB exemplet som kommer med installationen uppgraderas till 2.x bibilioteket.
PUNKT
Klas
-
- Site Admin
- Posts: 2243
- Joined: Fri Mar 17, 2023 9:45 am
- Location: Lund
- Contact:
Jag vill inte se detta som någon debatt utan snarare ett sätt att slussa er rätt i APIt.
Vilka öppna dörrar jag även stänger förstår jag inte heller. Det är uppenbarligen ett missförstånd här.
Tillgängliga funktioner, dokumenterade eller ej finnes här:
http://developer.telldus.se/doxygen/tel ... ource.html
Vilka öppna dörrar jag även stänger förstår jag inte heller. Det är uppenbarligen ett missförstånd här.
Tillgängliga funktioner, dokumenterade eller ej finnes här:
http://developer.telldus.se/doxygen/tel ... ource.html
Micke Prag
Software
Telldus Technologies
Software
Telldus Technologies