Page 1 of 1
tdtool from php på Mac OS
Posted: Fri Mar 17, 2023 9:45 am
by sebastian
Försöker använda tdtool från PHP i Mac OS.
Vilket fungerar men jag får till svar att det inte finns några enheter om jag gör anropet via PHP.
Gör jag däremot exakt i terminalen så får jag till svar att det finns 8 enheter?
Letade lite på forumet och hittade att i windows kunde man ställa om någon register-nyckel. Men det kan man ju inte göra i mac os?
Någon som vet hur man gör?
Posted: Fri Mar 17, 2023 9:45 am
by skorpion
Problemet som jag förstår det ligger i att om du kör det i terminalen så kör du det med din lokala användare, medans php/apache kör med användaren _www
När du installerar TelldusCenter/tdtool så installerar den bara en .plist-fil för den aktuella användaren. tdtool läser inte heller från den en global .plist om man nu kopierar/symlänkar en.
Kör du således tdtool med sudo så fungerar det inte heller:
Code: Select all
sudo tdtool --list
Open: 2 - 0
Number of devices: 0
medans min användare niclas har enheter.
Code: Select all
tdtool --list
Open: 2 - 0
Number of devices: 3
3 Sofflampa NEXA OFF
4 Lavalampa OFF
5 Sofflampa Kjell OFF
Jag har mailat Telldus angående detta problem, då det är flera som har problem med detta.
/Niclas
Posted: Fri Mar 17, 2023 9:45 am
by sebastian
ja det var ju helt rätt, och dumt att man inte kan länka till den heller.
Då får vi helt enkelt vänta och hoppas att det kommer en lösning på det inom kort.
I windows fungerar det ju bevisligen att döma av vad jag hittat på forumet.
Någon som vet hur det är i Linux?
Posted: Fri Mar 17, 2023 9:45 am
by sebastian
provade att installera en webbserver som jag själv startar. I det här fallet valde jag MAMP.
Startar jag den så körs den med mig själv som användare inte _www vilket borde betyda att jag skulle få tillgång till enhetslistan via tdtool.
Problemet nu är bara att med den får jag inte tillgång till tdtool alls.
Försöker jag däremot köra andra kommandon via php ("ls" etc.) fungerar det utmärkt vilket är lite lustigt? - se lösning nedan
Posted: Fri Mar 17, 2023 9:45 am
by sebastian
efter lite googlande hittade jag följande:
vad det gör har jag ingen aning om
Men lägger jag till det i mitt script:
Code: Select all
echo shell_exec('export DYLD_LIBRARY_PATH=""; tdtool -l');
och kör det via webbläsaren så fungerar det alldeles utmärkt och jag får ut en lista på mina enheter, kan tända och släcka lampor osv.
Sen hade det ju varit skönt om man kunde använda den inbyggda webbservern för att köra scripten iofs. Men det här fungerar ju bra så länge.
possible solution
Posted: Fri Mar 17, 2023 9:45 am
by planb
I faced the same problem but i couldn't make your fix to work.
After some investigation i noticed that as apache runs as www -user td tool doesn't have any devices installed.
What I did was I created new user (apache) in OSX, created device in telldus center and changed apache.conf to run apache as newly created apache user.
Might not be the safest option, but it works. I'll later try to limit apache users permissions not to allow login and such.
Hope this helps.