Kan ej trigga scenarion från datakällor

Supportfrågor för server och klient (Windows, iPhone, Android, Linux).
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
fabz
3 stars
3 stars
Posts: 140
Joined: Fri 19 Aug 2011, 10:23

Kan ej trigga scenarion från datakällor

Post by fabz » Sat 27 Aug 2011, 09:11

Hej!

Undrar nästan om jag stött på en bugg här. Har i flera timmar nu försökt få scenarion att triggas av en datakälla. Jag har lagt tilldatakällan som är ett asp-script som körs på den lokala webservern. Pekar mot datakällan med ip-adress. Läses in som teckenseparerad fil varje minut. Datakällan verkar läsas in korrekt och kan styra scheman i SWK. Jag har satt upp en regel i scenariot som ska starta scenariot (datakälla = 0 ska starta ett scanario och datakälla = 1 startar ett annat). När värdet ändras triggas ändå inte scenariot. Inget händer alls faktiskt. Har prövat höja prioriteten till "hög" under rutan med regler också.

Jag som gjort allt rätt tycker jag, men ändå funkar det inte...

Tacksam för hjälp!

mvh
Fabian
Last edited by fabz on Tue 13 Sep 2011, 17:30, edited 1 time in total.

KungenAvPeking
3 stars
3 stars
Posts: 181
Joined: Tue 09 Nov 2010, 21:51

Re: Kan ej trigga scenarion från datakäller

Post by KungenAvPeking » Sat 27 Aug 2011, 10:16

Funderar lite på om det kan vara förfallotiden som ställer till det lite, tillsammans med att du har olika senario för samma datakälla, beroende på vilket värde källan ger...

Om källan ger 0, med förfallotid 5 minuter, så gäller det senariot i fem minuter från att källan gav det värdet SENAST.
Kommer det en 1:a i källan, som ska starta det andra senariot, så gäller fortfarande 0:an tills förfallotiden gått ut, vilket gör att senario 0 och 1 krockar med varandra...

Vad händer om du sätter ner förfallotiden till 1 minut och 10 sekunder och ger senario 0 och 1 olika prioritet?

(Som sagt, jag vet inte om det är detta som ställer till det, men det är vad jag skulle testa... ;) )

KungenAvPeking
3 stars
3 stars
Posts: 181
Joined: Tue 09 Nov 2010, 21:51

Re: Kan ej trigga scenarion från datakäller

Post by KungenAvPeking » Sat 27 Aug 2011, 10:18

Värt att testa också:

Funkar det med bara ETT senario?
(Då vet du i så fall att det är en krock mellan senario 0 och 1 som ställer till det och kan kolla vidare utifrån det)

fabz
3 stars
3 stars
Posts: 140
Joined: Fri 19 Aug 2011, 10:23

Re: Kan ej trigga scenarion från datakäller

Post by fabz » Sat 27 Aug 2011, 10:46

Tjena! Tack för bra svar! Har satt förfallotiden till 3 minuter, så det borde inte vara ett problem? Det funkar bra med endast ett scenario kopplat till datakällan. Om jag låter hemmaläge (1) ha hög prioritet och bortaläge normal, funkar det alltså att aktivera hemmaläget när datakällan blir 1. Det fungerar inte heller om de båda scenariorna har samma prioritet.

Den byter då dock ej tillbaka till bortaläge när datakällan inte uppfyller 1 längre. När man lägger scheman med regler brukar ju SWK byta tillbaka till det tidigare läget när regeln inte längre är uppfylld. Detta verkar således inte gälla scenarion som mer verkar "triggas" av att regeln är uppfylld och inget mer.

Problemet tyx alltså vara prioritetsbaserat. Jag kan få antingen hemmaläget att aktiveras eller bortaläget, men inte båda två... Idéer på workarounds?

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

Re: Kan ej trigga scenarion från datakäller

Post by Martin » Sun 28 Aug 2011, 09:33

Att ha olika prioritet på scenario "bortaläge" och "hemmaläge" är vitalt. De måste ha olika prioritet för att ett scenario ska kunna "slå ut" det andra...
Du bör också ange att båda scenariona avslutas efter viss tid - annars finns det inget som gör att enheterna går tillbaka till att köra enligt schemat.

Eftersom båda scenariona går mot samma källa måste du först bestämma vilket scenario som ska aktiveras så fort din datakälla ändras. I exemplet med hemma-/bortaläge så kan jag tycka att det är hemmaläge som ska ha högst prioritet.
Om du exempelvis har en rörelsedetektor hemma så skulle då detektorn kunna slå över till hemmaläge så fort en rörelse känns av. Om hemmaläge har lägre prioritet än bortaläge krävs det att förfallotiden för det insamlade värdet passeras.

Ett exempel som kräver lite tankeverksamhet men förhoppningsvis bidrar :)
-----
Om man tittar på total 30 minuter, där man samlar in värdet var 5:e minut enligt nedan:

Code: Select all

00:00 00:05 00:10 00:15 00:20 00:25 00:30
Om du skulle ha en datakälla som är en rörelsedetektor som skulle ge "R" vid rörelse och "S" vid stilla:

Code: Select all

00:00 00:05 00:10 00:15 00:20 00:25 00:30
  S     S     R     R     R     S     S
Sätter du en förfallotid på 9 minuter (alltså fyra minuter utöver insamlingsfrekvens) så klassar Switch King värdena som giltiga enligt följande:

Code: Select all

S: 00:00-00:09, S: 00:05-00:14 R: 00:10-00:19, R: 00:15-00:24, R: 00:20-00:29, S: 00:25-00:34, S: 00:30-00:43
(Det första värdet är alltså giltigt "minut 0 till minut 9", det andra "minut 5 till minut 14" etc.

Scenariot "bortaläge" startar vid 00:00 (när datakällan blir "S" - Stilla). Om "bortaläge" har högre prioritet än "hemmaläge", körs scenariot fram till 00:14.
Detta sker alltså trots att det 00:10 kom in ett värde som skulle kunna dra igång "hemmaläge" (Rörelse, "R").
Först 00:14, då det värde som samlades in 00:05 förfaller, dras scenariot "hemmaläge" igång.
Om du vill ha denna växling snabbt, måste du dra upp prioriteten på "hemmaläge" så att det är högre än "bortaläge".
Om prioriteten är högre för "hemmaläge" än "bortaläge" så kommer scenariot att växlas till hemmaläge så fort Switch King lyckas samla in ett "R" - vilket nog är vad du vill uppnå.

Dessutom bör du ange att scenariorna ska köras en viss tid. Om du anger att de ska köras i all evighet så kommer scenariot med den högre prioriteten aldrig att tillåta att scenariot med den lägre prioriteten startar - här styr prioriteten helt.

I exemplet ovan så kan du exempelvis sätta att scenariorna ska köras i 6 minuter. Om du gör på detta sätt kommer Switch King att dra igång ditt "bortaläge" 6 minuter efter det att den senast märkte av en rörelse ("R").
Om du alltså har "bortaläge, prio låg, körs 6 minuter" och "hemmaläge, prio hög, körs 6 minuter" så bör resultatet bli:

Code: Select all

00:00-00:10; bortaläge
00:10-00:26; hemmaläge
00:26-??:??; bortaläge
-----

Som en parentes kan nämnas att i v1.10 och tidigare så finns det ett problem med att använda scenarior på detta sätt. Eftersom man inte kan ange att en enhet ska vara opåverkad av ett scenario så kommer alla enheter man tänt eller släckt manuellt att återgå till att köras enligt schema vid start av ett scenario, vilket i princip gör det omöjligt att styra enheter "manuellt" på ett bra sätt om man hela tiden har igång scenarior som körs.

Visionen är att det i v2.0 ska gå att ange att enheter ska kunna vara opåverkade av scenarior, vilket då gör att just detta problem försvinner.
Martin | Switch King

fabz
3 stars
3 stars
Posts: 140
Joined: Fri 19 Aug 2011, 10:23

Re: Kan ej trigga scenarion från datakäller

Post by fabz » Thu 08 Sep 2011, 16:45

Såhär ligger det till: Jag har gjort ett asp-skript som jag tänkte publicera här på forumet när det är klart. Skriptet pingar våra mobiltelefoner löpande för att kontrollera om vi är hemma. Denna lösning är smidigare än bluetooth-lösningen btProx eftersom det täcker hela lägenheten bättre, samt att skriptet kan kolla efter flera enheter, och det räcker att EN av dessa är närvarande för att skriptet ska tala om för SWK att någon är hemma. Skriptet kastar ur sig en 1:a om någon är hemma och en 0:a om ingen är hemma.

SCENARION
Jag har satt Hemma-scenariots prioritet till "Normal" och därtill en regel som aktiverar hemmascenariot när datakällan är större än 0. Bortalägets prioritet är satt till "låg". Andra specialscenarion (tex "Partyläge" mm) är satta till "hög" prioritet. Inga regler är satta på bortaläget.

Hemma-scenariots avslutar efter 20 minuter och aktiverar då bortaläget.

DATAKÄLLAN
Hämtningsintervall: 6 sekunder.
Förfallotiden är 3 minuter.
Felvärdet är 0.

SWK-INSTÄLLNINGAR
Omkopplingsfördröjning: 50 minuter.


Om SWK står i Bortaläge funkar det nu fint att aktivera det genom denna lösning, dvs när datakällan blir 1. Med ett hemmascenario som avslutas efter 20 minuter går också SWK mycket riktigt in i Bortaläge om någon 1:a ej förekommit i datakällan på drygt 20 minuter. Tyvärr går SWK då och då (kan inte hitta någon konsekvens i när) in i bortaläge trots att datakällan är ett - och enligt datavärdesloggen varit ett hela tiden! SWK går då in i bortaläge, för att därefter snabbt "ändra sig" och aktivera hemmaläget igen. Resultatet blir att allt då och då släcks ned för att direkt därefter gå igång igen. Mycket irriterande! :-) Har som synes försökt att stävja detta genom att sätta en lång omkopplingsfördröjning på 50 minuter, utan något resultat.

Om man plockar bort att Hemmaläget skall avslutas, försvinner problemet men då går å andra sidan SWK aldrig över i Bortaläge. :-(

Tacksam för hjälp!

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

Re: Kan ej trigga scenarion från datakäller

Post by Martin » Thu 08 Sep 2011, 18:49

Om jag förstår det rätt så är huvudproblemet efter ditt skruvande just att bortaläget drar igång när det inte verkar finnas någon rimlig anledning till att det skulle göra det...

Svårt att säga utan att titta direkt på uppsättningen vad som skulle kunna orsaka det, men något måste det ju vara som triggar själva scenariot. Hur ofta är "då och då" = finns det stor chans att du skulle upptäcka detta och kunna titta på klockan och notera tiden? Tänker på om vi kan slå på debug-läget i servern för att se hur landet ligger? Eftersom det skrivs en hel del till loggen i debugläge så måste man nästan ha en tidpunkt att gå på.
Martin | Switch King

Post Reply

Who is online

Users browsing this forum: No registered users and 8 guests