Page 1 of 1

tdRemoveDevice(int) ger bara 'false' tillbaka?

Posted: Fri Mar 17, 2023 9:45 am
by jeinor
Hej,

Jag försöker ta bort en device genom att använda Telldus API:et, mer specifikt tdRemoveDevice(). Jag skickar in ett ID som jag ser finns i /etc/tellstick.conf, men metoden returnerar bara 'false' och ingenting händer i /etc/tellstick.conf.

Behöver jag göra något speciellt för att använda funktionen? Övriga funktioner för att hantera devices funkar klockrent, ex tdAddDevice(), tdSetProtocol(), tdSetModel(), tdSetDeviceParameter(), det är bara just tdRemoveDevice() som inte fungerar. Många API-anrop ger dessutom en felkod i form av en int som kan översättas till en sträng; vad är anledningen till att detta inte finns för tdRemoveDevice() (och några till)?

Tack på förhand! / Jonas

Re: tdRemoveDevice(int) ger bara 'false' tillbaka?

Posted: Fri Mar 17, 2023 9:45 am
by micke.prag
Har du möjlighet att testa med TelldusCenter om det fungerar att redigera enheter?
Annars får du gärna rapportera det som en bugg här tillsammans med ett sätt vi kan återskapa problemet.

Re: tdRemoveDevice(int) ger bara 'false' tillbaka?

Posted: Fri Mar 17, 2023 9:45 am
by jeinor
Hmm, finns TelldusCenter till Linux? Hittar ingen .deb för det. Jag kör Ubuntu 11.10 x64.

Kan se om jag kan isolera problemet, men tycker inte att jag gör något special, och, som sagt, övriga funktioner fungerar (lägga till genom tdAddDevice() etc). För att reproducera borde det bara vara att skapa ett enkelt C++-program som försöker göra tdRemoveDevice() på en existerande device, men det gissar jag att ni har gjort :)

Re: tdRemoveDevice(int) ger bara 'false' tillbaka?

Posted: Fri Mar 17, 2023 9:45 am
by micke.prag
jeinor wrote:Hmm, finns TelldusCenter till Linux?
Jadå, både i386 och x86_64.
jeinor wrote:För att reproducera borde det bara vara att skapa ett enkelt C++-program som försöker göra tdRemoveDevice() på en existerande device, men det gissar jag att ni har gjort
Det är precis vad TelldusCenter gör...

Re: tdRemoveDevice(int) ger bara 'false' tillbaka?

Posted: Fri Mar 17, 2023 9:45 am
by jeinor
Det är jag som får be om ursäkt! Felet var hos mig...

Visade sig att jag tydligen kopierat undan min /etc/tellstick.conf vid en uppgradering via apt (väljer man "No" på frågan om man vill ersätta med ny /etc/tellstick.conf från .deb libtelldus-core blev det massa konstiga fel, så jag ville undvika det) och sedan kopierat tillbaka den över default /etc/tellstick.conf. Det ersatte rättigheterna, vilket innebar att det inte längre var root:plugdev som ägde filen. Jag tror sedan felet uppkom eftersom användaren som kör tjänsten telldusd inte hade rättighet att skriva till filen.

Anledningen att tdAddDevice() funkade var nog att jag provat tdAddDevice() vid ett tillfälle, sedan gjort filkopieringen och sedan, vid ett annat tillfälle, provat tdRemoveDevice().

Tack för svar och hjälp.

Re: tdRemoveDevice(int) ger bara 'false' tillbaka?

Posted: Fri Mar 17, 2023 9:45 am
by stefan.persson
Bra att det har löst sig!