Kommandon för android-appen

Supportfrågor för Android och iOS
Forum rules
För att kunna hjälpa dig med supportfrågor behöver vi så mycket information som möjligt.
Innan du skapar en ny tråd, läs gärna:
viewtopic.php?f=10&t=20
Post Reply
KoktGrus
2 stars
2 stars
Posts: 21
Joined: Tue 01 Feb 2011, 15:44

Kommandon för android-appen

Post by KoktGrus » Sun 03 Jun 2012, 00:18

Hej,

Jag undrar om det går att styra switchking-appen genom att skicka kommandon till appen.
Anledningen jag undrar är att man kan använda ett program som Setting Profiles eller NFC task launcher för att automatiskt välja ett scenario för switchking när jag exempelvis pluggar in laddaren vid sängen..

I SettingProfiles kan jag t ex välja Switch King (.widget.activities.ScenarioCommand), jag vill alltså skriva något liknande där man går ett steg till och triggar ett scenario. I NFC Task Launcher kan man skriva helt egna kommandon. Med den mjukvaran borde man alltså kunna scanna en NFC-tagg som sitter vid sängen och på så sätt trigga ett "Natt-scenario" som släcker ljuset =)

Rhodin
4 stars
4 stars
Posts: 278
Joined: Tue 09 Nov 2010, 21:51

Re: Kommandon för android-appen

Post by Rhodin » Sun 03 Jun 2012, 07:37

KoktGrus wrote:Hej,

Jag undrar om det går att styra switchking-appen genom att skicka kommandon till appen.
Anledningen jag undrar är att man kan använda ett program som Setting Profiles eller NFC task launcher för att automatiskt välja ett scenario för switchking när jag exempelvis pluggar in laddaren vid sängen..

I SettingProfiles kan jag t ex välja Switch King (.widget.activities.ScenarioCommand), jag vill alltså skriva något liknande där man går ett steg till och triggar ett scenario. I NFC Task Launcher kan man skriva helt egna kommandon. Med den mjukvaran borde man alltså kunna scanna en NFC-tagg som sitter vid sängen och på så sätt trigga ett "Natt-scenario" som släcker ljuset =)
Enklast är nog om du använder sk REST kommandon. Där kan du via en http sträng skicka (och mottaga) kommandon till/från SK

KoktGrus
2 stars
2 stars
Posts: 21
Joined: Tue 01 Feb 2011, 15:44

Sv: Kommandon för android-appen

Post by KoktGrus » Fri 08 Jun 2012, 20:59

Hur gör jag för att komma igång med det?

Skickat från min GT-I9300 via Tapatalk 2

bunker
3 stars
3 stars
Posts: 130
Joined: Thu 23 Dec 2010, 11:26

Re: Kommandon för android-appen

Post by bunker » Tue 26 Jun 2012, 16:00

Jag använder NFC Task Launcher tillsammans med en app som heter Tasker. Tasker är en betal app som i dagsläget kostar 40 kr.

Först skapar man sina "task"s i Tasker.
För att styra en enhet använder jag ett "action" av typen Net som heter HTTP Get. I Tasker går man till fliken Tasks och klickar på + knappen. I HTTP Get action:et fyllde jag i en URL för att anropa din Switch King server (via REST).
Det kan se ut så här:
screenshot_2012-06-26_1605-2.png
user byter du ut mot det användarnamn för REST du konfigurerat i Switch King, titta i PC-klienten via meny Verktyg -> Inställningar och fliken Server. pass byter du ut mot lösenordet. Serveradressen vet du väl bäst själv. Portnumret får du också dubbelkolla i Switch King.
I fältet path ska siffran 8 ersättas med det id som enheten har i Switch King. Du hittar det genom att klicka på enheten i PC-klienten och gå till fliken Identifiering. Switch King id: står långt ner till vänster i dialogen. Detta tillkom det senaste halvåret tror jag så du kan behöva uppgradera Switch King om du inte ser det där. Det finns andra sätt att hitta det men det blir överkomplicerat just nu.
Om du inte har dimmer på dina enheter så ersätter du dim/70 från mitt exempel med turnon.
För mer hjälp om vilka kommandon du kan ge via REST se
http://www.switchking.se/en/component/c ... rest-anrop

För att lägga till ett task för att aktivera ett scenario är det nästan likadant, fältet Path lämnar jag tomt och lägger in allt i fältet Server:Port i stället:
user:pass@servername.homeserver.com:8800/commandqueue?operation=changescenario&target=12&param1=&param2=&;param3=
(Det här REST-kommandot är i mina ögon onödigt komplicerat.)
Här ska siffran 12 efter target= byttas ut mot det id som scenariot har i Switch King. Dessvärre finns inte detta ID i Switch Kings PC-klient i dagsläget (Martin och Tomas???) utan man måste leta på ett krångligare sätt:
Gå till user:pass@servername.homeserver.com:8800/scenarios
(Ersätt givetvis med dina värden som du gjorde tidigare.)
Du får nu upp en sida med XML-kod som beskriver de Scenarion som finns i Switch King. Så här kan ett Scenario se ut:

Code: Select all

<RESTScenario>
<Abbreviation>Alla enh av</Abbreviation>
<Active>false</Active>
<Enabled>true</Enabled>
<ID>8</ID>
<Name>Alla enh av</Name>
</RESTScenario>
Som du säkert förstår är vi intresserade av siffran för ID och det är den som ska byta ut siffran 12 i mitt exempel.

I det här lägget är det en bra idé att provköra ditt Tasker "task" genom att klicka på den blå "Play"-knappen (en inringad blå triangel) för att provköra det. Aktiveras ditt scenario eller enhet så har du gjort allt rätt så långt.

I NFC Task Launcher har jag sedan lagt till ett action som kopplar mot ett "task" i Tasker. Välj task genom att klicka på förstoringsglaset i dialogen där NFC Task Launcher vill ha namnet på det Tasker "task" som ska aktiveras. I bland kan kopplingen mellan NFC Task Launcher och Tasker fungera mindre bra. Jag har för mig att det räckte med att avinstallera och sen installera NFC Task Launcher då även om det står att man behöver avinstallera båda applikationerna i NFC Task Launcher.

Ett tips till: För varje Task som triggas av NFC Task Launcher har jag lagt till ett till "action" i Tasker under samma Task. Det är av typen Alert och heter Flash. I det lägger jag in en text som förklarar vad som händer, t.ex. "Scenario God Natt". Detta visas då tillfälligt i displayen när Tasker anropas från NFC Task Launcher så att du vet vad som faktiskt ska ske. Bra både för felsökning och som generell info till vardags.

Det här är ju ganska omständigt men belöningen är trevlig, allt jag gör nu är att låsa upp min telefon och scanna en NFC-tagg för att aktivera ett scenario eller en enhet som jag har en NFC-tagg för.

Det finns säkert andra sätt att göra detta men det här fungerade för mig. Kom gärna med alternativ om ni har löst det på annat sätt.
You do not have the required permissions to view the files attached to this post.

tomas
Administrator
Administrator
Posts: 419
Joined: Tue 09 Nov 2010, 20:41

Re: Kommandon för android-appen

Post by tomas » Tue 26 Jun 2012, 17:12

Bra guide!
bunker wrote:Här ska siffran 12 efter target= byttas ut mot det id som scenariot har i Switch King. Dessvärre finns inte detta ID i Switch Kings PC-klient i dagsläget (Martin och Tomas???) utan man måste leta på ett krångligare sätt:
Lägger med det på listan av saker att fixa i klienten :oops:

http://bugnet.switchking.se/Issues/Issu ... spx?id=447
Tomas | Switch King

bunker
3 stars
3 stars
Posts: 130
Joined: Thu 23 Dec 2010, 11:26

Re: Kommandon för android-appen

Post by bunker » Wed 27 Jun 2012, 15:42

tomas wrote:Bra guide!
bunker wrote:Här ska siffran 12 efter target= byttas ut mot det id som scenariot har i Switch King. Dessvärre finns inte detta ID i Switch Kings PC-klient i dagsläget (Martin och Tomas???) utan man måste leta på ett krångligare sätt:
Lägger med det på listan av saker att fixa i klienten :oops:

http://bugnet.switchking.se/Issues/Issu ... spx?id=447
Tack och bra att du la in det i bugghanteringen!

Om det inte är nåt större problem att införa skulle jag gärna se en förenkling/abstraktion av kommandot för scenarioväxling via REST också. Även om ni har en commandqueue i implementationen behöver den väl inte vara exponerad i URL:ens om i det nuvarande kommandot för att aktivera ett scenario? Som jag föstått det är dessutom ingen av param1 till param3 nåt som anväds heller?

Det borde väl kunna räcka med

Code: Select all

http://servernamn:8800/scenario/{id}
Eller mer likt devices kommandot

Code: Select all

http://servernamn:8800/scenarios/{id}/activate
?

Martin
Administrator
Administrator
Posts: 2655
Joined: Tue 09 Nov 2010, 20:25

Re: Kommandon för android-appen

Post by Martin » Thu 28 Jun 2012, 20:55

Det fanns tidigare en direkt orsak till varför just den adressen inte var möjlig att använda via REST. I tidigare versioner av Mono för Linux var det problem med vissa URL-mappningar och därför krävdes en mer generell metod för just scenarior.
Det är troligt att Mono-implementationen har hunnit i kapp nu, så vi kikar på möjligheten att få in ett förenklat anrop.

http://bugnet.switchking.se/Issues/Issu ... spx?id=448
Martin | Switch King

xepT
2 stars
2 stars
Posts: 21
Joined: Wed 23 Feb 2011, 10:26

Re: Kommandon för android-appen

Post by xepT » Fri 17 Aug 2012, 12:42

Har du SK-serven på windows eller linux?

Jag hade problem med auth mot SK under mono/ubuntu och fick aldrig korrekt svar tillbaka via RESTanropen.
Löste det genom att Tasker får skicka strängen till min webbserver som sedan via CURL tar hand om RESTanropen.
I Tasker fyller jag ist in:
Server:Port: domän.se/index.php?curl=
Path: devices/4/turnoff

index.php ser ut som följande:
$path = 'http://username:password@domän.se:PORT'; //adressen kan även vara localhost om webbserver ligger på samma dator som SK, adress och port är den adress som SW lyssnar på via RESTanrop.
$url = $_GET['curl']; //hämtar all information efter index.php?curl=, dvs devices/4/turnoff
$command = $path.$url; //slår ihop adressen $path med det som finns efter curl?=
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $command);
curl_exec($ch);
curl_close($ch);

Om man vill kan man lägga till ett ID, användarnamn / lösenord i anropen för att göra det lite säkrare. Just nu skulle vem som helst kunna anropa via denna URL utan att behöva identifiera sig.

Sen kopplade jag ihop NFC Task Launcher och Tasker på samma sätt som dig.
Det kanske inte är världens snyggaste lösning, men så länge jag kommer ihåg anropen (index.php?curl=) så skulle jag kunna sköta SK via en webbläsare om telefonen skulle dö eller så..


*För att detta ska fungera behöver ni ha apache2, php5, php5-curl installerat på er linux server, samt öppna port 80 i er brandvägg.
Last edited by xepT on Mon 20 Aug 2012, 07:40, edited 2 times in total.

bunker
3 stars
3 stars
Posts: 130
Joined: Thu 23 Dec 2010, 11:26

Re: Kommandon för android-appen

Post by bunker » Fri 17 Aug 2012, 13:09

xepT wrote:Har du SK-serven på windows eller linux?
Antar att frågan var till mig? Jag har min Switch King Server på Windows Home Server. Ursprungligen på WHS v. 1 men sedan en månad eller två på WHS 2011.

Jättebra :!: att du kompletterade med vad som behövs för Linux-server också!

Post Reply

Who is online

Users browsing this forum: No registered users and 5 guests