Kommandon för android-appen
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
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
-
- 2 stars
- Posts: 21
- Joined: Tue 01 Feb 2011, 15:44
Kommandon för android-appen
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 =)
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 =)
-
- 4 stars
- Posts: 278
- Joined: Tue 09 Nov 2010, 21:51
Re: Kommandon för android-appen
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 SKKoktGrus 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 =)
-
- 2 stars
- Posts: 21
- Joined: Tue 01 Feb 2011, 15:44
Sv: Kommandon för android-appen
Hur gör jag för att komma igång med det?
Skickat från min GT-I9300 via Tapatalk 2
Skickat från min GT-I9300 via Tapatalk 2
-
- 3 stars
- Posts: 130
- Joined: Thu 23 Dec 2010, 11:26
Re: Kommandon för android-appen
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: 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¶m1=¶m2=&;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:
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.
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: 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¶m1=¶m2=&;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>
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.
-
- Administrator
- Posts: 419
- Joined: Tue 09 Nov 2010, 20:41
Re: Kommandon för android-appen
Bra guide!
http://bugnet.switchking.se/Issues/Issu ... spx?id=447
Lägger med det på listan av saker att fixa i klientenbunker 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:

http://bugnet.switchking.se/Issues/Issu ... spx?id=447
Tomas | Switch King
-
- 3 stars
- Posts: 130
- Joined: Thu 23 Dec 2010, 11:26
Re: Kommandon för android-appen
Tack och bra att du la in det i bugghanteringen!tomas wrote:Bra guide!
Lägger med det på listan av saker att fixa i klientenbunker 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:![]()
http://bugnet.switchking.se/Issues/Issu ... spx?id=447
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}
Code: Select all
http://servernamn:8800/scenarios/{id}/activate
-
- Administrator
- Posts: 2655
- Joined: Tue 09 Nov 2010, 20:25
Re: Kommandon för android-appen
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
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
-
- 2 stars
- Posts: 21
- Joined: Wed 23 Feb 2011, 10:26
Re: Kommandon för android-appen
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.
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.
-
- 3 stars
- Posts: 130
- Joined: Thu 23 Dec 2010, 11:26
Re: Kommandon för android-appen
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.xepT wrote:Har du SK-serven på windows eller linux?
Jättebra

Who is online
Users browsing this forum: No registered users and 3 guests