Online test

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
KungenAvPeking
3 stars
3 stars
Posts: 181
Joined: Tue 09 Nov 2010, 21:51

Online test

Post by KungenAvPeking » Wed 23 Mar 2011, 09:53

Sitter med en liten fundering, då jag har problem med att det mobila bredbandet i sommarstugan går ner ibland.

Tanken jag har, är att skapa en funktion för att testa om den är ansluten till internet och om inte, starta om routern, med hjälp av en switch.

Själva testet är enkelt, läs en datakälla på nätet, får jag värdet jag förväntar mig, är jag online.
Om jag inte får rätt värde, sätts felvärde=0

Nu kommer problemet, jag kan med hjälp av felvärdet konstatera att jag ska stänga av strömmen till routern för att få den att starta om, problemet är att jag inte kommer på något bra sätt att få SwitchKing att vänta med att kolla datakällan länge nog, för att routern ska hinna starta upp, koppla upp sig på nätet och datakällan åter blir tillgänglig...

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

Re: Online test

Post by Martin » Wed 23 Mar 2011, 10:56

Spontan tanke är att detta går att lösa med ett scenario:
  • Scenario "Ej ansluten"
  • Scenario "Starta upp"
Sätt att scenario "Ej ansluten" startar om värdet = "Felvärdet". Switchen "Router" sätts till "Off". Sätt längden till mellan 10-60 sekunder. Prioritet normal.
Sätt också att "Ej ansluten" skall efterföljas av "Starta upp". "Starta upp" ska ha prioritet "Hög", starta routern och kanske ska köras i 5-10 minuter beroende på hur ofta du tittar på datakällan.
Sätt att "Ej ansluten" ska efterföljas av "Alla enligt automatik".

Du kan behöva labba lite med förfallotiden på datakällan för att få till detta. Om förfallotiden sätts till för lång tid så tror jag att du riskerar att scenariot "Ej ansluten" startar för ofta...

(med reservation för att ovanstående är helt otestat - eventuellt kan du få lite strul med att trigga scenariot baserat på ett felvärde)
Martin | Switch King

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

Re: Online test

Post by KungenAvPeking » Wed 23 Mar 2011, 11:47

Intressant tankegång, det låter logiskt att det skulle kunna funka så, med andra senariot på högre prio...

Då ska ju senario "Starta upp" hindra "Ej ansluten" från att köra, även om datakällan säger att den ska...

Sitter annars och labbar lite med uppdateringstiden på själva datakällan och det verkar nästan som att om jag ställer uppdateringen till 1 minut, så körs "Ej ansluten" efter ca 1 minut och några sekunder, sätter jag uppdateringen till 2 minuter, så tar det 2 minuter och några sekunder...
Är det möjligen så att regelstyrningen bara körs så ofta som datakällan uppdateras (vilket vore logiskt, för att inte ligga och slösa systemresurser på att kolla om regeln uppfylls varje sekund, trots att källan kanske bara uppdateras var 5:e minut)

Sitter just nu och testar med 5 minuters intervall på uppdatering av datakällan, ska se vad resultatet blir av det... :)

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

Re: Online test

Post by Martin » Wed 23 Mar 2011, 11:56

Lite OT, men ändå:

Anledningen till att jag var inne på förfallotid och liknande är att varje insamlat värde som uppfyller regeln för start av scenario även är kandidat för att förlänga scenariot...

Exempel:
Insamlade värden: 10:00 (=1), 10:05 (=2), 10:10 (=2), 10:15 (=1) etc...

Om scenariot triggar på "2" och är satt att köras 10 minuter så kommer scenariot att dras igång kl 10:05. Tittar man 10:06 så kommer scenariot att köras fram till 10:15.
Vid 10:10 kommer dock ytterligare en inläsning med värdet "2", vilket gör att scenariot totalt kommer att köra i ca 15 minuter (10:05-10:20).

Vi har fått önskemål på att ytterligare triggande värden inte ska förlänga scenariots körtid, så att scenariot bara körs mellan 10:05 och 10:15 även om det kommer en 2:a vid 10:10.
Martin | Switch King

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

Re: Online test

Post by KungenAvPeking » Wed 23 Mar 2011, 12:46

Okej, efter lite mer testande har jag kommit fram till följande:

Enhet stängs av 06:00:00 Alla dagar
Enhet startas 06:00:10 Alla dagar
(Ger omstart en gång per dygn)

Datakälla: Läser en fil på nätet. (Textfil med tex siffran 1 och inget annat) felvärde = 0, tidsstämpel - När filen hämtades
Senario: Stäng av med regeln "om datakälla = 0", körs i 10 sekunder

Resultatet:
Om jag sätter uppdatering av datakällan till 1 minut och förfallotid till 1,5 minut
Senariot körs 10 sekunder med 1 minut och några sekunders mellanrum.

Om jag sätter uppdatering till 5 minuter, förfallotid 5,5 minuter
Senariot körs 10 sekunder med 5 minuter och några sekunders mellanrum

Det senare borde räcka för att router med modem ska hinna starta om, men för säkerhets skull kommer jag troligen att ställa upp tiden lite till (huvudsaken är att systemet inte ligger nere flera timmar i sträck. Om det går ner och kommer tillbaka efter 5 eller 10 minuter spelar mindre roll)

Enda kruxet nu är att när jag testat, så funkar det bra att läsa filen, senariot hoppar inte igång förren jag döper om filen (simulerar att "nätet dör"), nästa uppdatering triggar senariot.
Jag återställer filen ("nätet funkar") så nästa gång datakällan uppdateras säger SwitchKing att datakällan är okej, men senariot triggas ändå en gång till...?

Vad jag menar är att första gången filen läses "rätt" triggar den ändå, men andra gången funkar det.
Så för att inte trigga senariot, måste datakällan läsas rätt 2 gånger.

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

Re: Online test

Post by Martin » Wed 23 Mar 2011, 13:38

Om scenariot triggas två gånger så kan det bero på att du får flera värden som startar scenariot.

Det är svårt att förklara på ett begripligt sätt, men ändå - utan att ha koden framför mig så har jag för mig att det blir så här:

Det här exemplet...
10:00 (=1), 10:05 (=2), 10:10 (=2), 10:15 (=1)

Om du har en förfallotid på exempelvis 6 minuter på dina värden, så gör det att värdena förfaller:
  • Insamlat 10:00->Förfaller 10:06
  • Insamlat 10:05->Förfaller 10:11
  • Insamlat 10:10->Förfaller 10:16
  • etc
Om du har ett scenario ("Ej ansluten") som startar 10:05 på grund av att värdet är = 2, och detta körs i två minuter för att därefter följas av "Starta upp" som körs i fem minuter, får du resultatet nedan:
  • 10:05: Start scenario "Ej ansluten"
  • 10:07: Start scenario "Starta upp"
  • 10:12: "Starta upp" lämnar över till "Alla enligt automatik"
Problem uppstår, då det 10:10 kom in ett värde - "2" som ska göra att scenariot "Ej ansluten" ska aktiveras. Detta värde har 1) en förfallotid som inte har gått ut, och 2) inte tidigare använts av servern för att starta ett scenario.
Eftersom det nu finns en "2:a" som är giltig och ska göra att ett scenario startar drar därför scenario "Ej ansluten" igång igen.
Martin | Switch King

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

Re: Online test

Post by KungenAvPeking » Wed 23 Mar 2011, 14:06

Så...

Om jag förstod dig rätt, skulle jag kunna lösa problemet med att senariot triggas en extra gång, genom att minska ner giltigheten på datakällan till 5 minuter och 9 sekunder, eftersom jag har senariot igång i 10 sekunder?
(Rent principiellt då, kanske ska ha lite mer marginal...)

(Testar, för skojs skull, om det funkar)

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

Re: Online test

Post by KungenAvPeking » Wed 23 Mar 2011, 14:43

Nä, klart det inte gör...

För källan förfaller ju fortfarande 9 sekunder efter nästa uppdatering och därmed test av värdet.
Då har föregående triggervärde fortfarande tid kvar...
(Hjärnan behöver KAFFE!!!)

Nu börjar de små lamporna där inne i huvudet jobba lite...
Om triggervärdet ska vara uppfyllt i, säg 20 sekunder borde det ju funka?

Varför jag inte bara löser det med att låta Senariot lämna över till ett "Starta upp" senario?
Av den enkla orsaken att det kan ligga andra senarion igång när jag får triggern att starta om Router/bredband, som jag vill kunna komma tillbaka till, genom att välja "Nästa senario: senario som kördes innan detta..."

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

Re: Online test

Post by Martin » Wed 23 Mar 2011, 15:15

KungenAvPeking wrote:Av den enkla orsaken att det kan ligga andra senarion igång när jag får triggern att starta om Router/bredband, som jag vill kunna komma tillbaka till, genom att välja "Nästa senario: senario som kördes innan detta..."
Du har precis stött på en jobbig begränsning med scenarion - att flera inte går att köra samtidigt... :banghead:
Martin | Switch King

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

Re: Online test

Post by Martin » Wed 23 Mar 2011, 15:17

Mer exakt - hur tittar du på om nätet är uppe? Jag funderar på om det är vettigt att göra ett plugin för detta istället... Det bör vara relativt enkelt att skriva (för mig)...
Martin | Switch King

Post Reply

Who is online

Users browsing this forum: No registered users and 37 guests