Page 1 of 1

tdtool till php sida

Posted: Fri Mar 17, 2023 9:45 am
by compfreak
Hej! Har precis fått hem min tellstick och måste säga att det uppfyllde alla förväntningar! Väldigt nöjd över eran produkt =)

Jag köpte tellsticken för att styra lampor, tv och dylikt från en webbapp till iPod, tdtool funkar utmärkt på servern så länge jag skriver själv i kommandofönstret, men när ett php script ska hantera det verkar det som om den inte kommer åt databasen eller vad det är som enheterna ligger i. Får till svar "Turning off device: 2 - failed" och listar man det genom php så säger den: "Number of devices: -1" Men med kommandotolken, på samma sökväg och samma program så funkar det utmärkt :shock:

Lite bilder som kanske förklarar bättre!
Image
Image

Koden jag använder för att köra programmet i PHP:

Code: Select all

<?PHP

// Hantering för att starta tv
If ($action == "TV_On"){
	system("tdtool.exe --on 2");
}

// Hantering för att stänga av tv
If ($action == "TV_Off"){
	system("tdtool.exe --off 2");
}

?>
Tacksam för hjälp! :)

Posted: Fri Mar 17, 2023 9:45 am
by compfreak
fredrik.jacobsson wrote:En uppdatering i v1.2.2 av mjukvaran gör att man genom att sätta HKLM\Software\Telldus\Devices - SharedDevices till 1, läser/sparar enheter i HKLM istället för HKCU.
http://trac.telldus.se/ticket/1
Titta inte tillräckligt noga i forumet! Var visst framför näsan på mig bara jag som inte orka läsa alla sidor :oops: Funkar nu! Kalas =) mod, gör som du behagar med ämnet!

TIPS!

Posted: Fri Mar 17, 2023 9:45 am
by z3eed
Okay, lite tips då... säkert redan folk som vet, men ifall.. finns väl alltid någon nybörjare som gläds åt detta.

FYI:
Jag kör VISTA x64, IIS7, PHP5.3

Enligt exempel ovan så kommer scriptet "system()" att skriva ut tdtools svar direkt på din php-sida.

Vill du typ buffra, editera svaret, eller göra några tillägg osv till det som tdtools svarar så kan man istället för att använda "system()" köra gamla klassiska "exec()"

Det blir alltså:
exec("cmd /c tdtool.exe --list", $svar);

echo $svar[0]; // <-- kommer säga typ "Number of devices: 3"
echo $svar[1]; // <-- kommer säga typ "1 TVrum, Fönster OFF"
echo $svar[2]; // <-- kommer säga typ "2 Kök, Fönster ON"
osv...

Anledningen till [x] är för att det blir en array().
Så tex. om du kör:
exec("cmd /c tdtool.exe --1 ON", $svar);

Så för att visa det svaret måste du använda $svar[0] för den ger bara ett resultat, finns inget [1] osv.

Hoppas det var till hjälp för någon.

(Kanske inte borde lagt detta svaret under windows... men men här jag såg system() och kom o tänka på att ge andra lite ideer.)