Asuswrt - Check if mobile is home

User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Hallå,

På begäran av en av våra medlemmar så skall jag nu försöka förklara hur man kan skapa en kontroll om någon är hemma. Det hela bygger på grundidén att när man kommer hem så kopplar mobilen upp sig automagiskt på WiFi nätet - när så sker, med en minuts intervall, så körs ett script som kollar vem som är hemma på Asus routern och när en person kommer / går så körs en http request till HC2 för att trycka på lämplig knapp som talar om "Lars har kommit" eller "Lars har gått" och lite sådant.

Det skall redan nu erkännas att detta är inte direkt den mest precisa och snabbaste varianten av hur man kollar om någon är hemma. Om man använder t.ex. GPS och någon lokal programvara i sin mobile som Locale som känner av vart man är och sedan via t.ex. en VPN tunnel trycker motsvarande knappar, så kommer man troligen få bättre hantering av just vart man är relativt sin bostad - men GPS drar rätt mycket kräm. Minst sagt, och jag har valt annan lösning - men ni skall veta att det finns lösningar med högre precision, och snabbhet - till priset av högre batteriförbrukning.

Åter till denna lösning.

Först måste du installera RMerlin's Asuswrt firmware i din router, och för att göra det så rekommenderar jag:
http://asuswrt.lostrealm.ca/
http://www.snbforums.com/forums/asuswrt-merlin.42/

När det är gjort, så måste du också aktivera jffs custom sciprts och klara av att logga in på routern med t.ex. putty för att köra custom scripts. För vi kommer att skapa ett script och en startsekvens för att scriptet skall köras varje minut.

När du då gjort ovanstående, så logga på med t.ex. putty och gå till /jffs/scripts och lägg in motsvarande nedanstående script, med de ändringar som krävs (MAC adresser som skall bevakas, antal personer och så vidare - det kan bli en del saker du må ändra på - men det är i princip bara copy&paste och döpa om variabler). Du behöver ändra följande:
- Namn på de som skall övervakas (Lars resp Marianne)
- Deras respektive MAC adresser (xx:xx:xx:xx:xx:xx resp yy:yy:yy:yy:yy:yy)
- Ditt admin lösenord (xxxxxx)
- Din HC2's IP adress (yyy.yyy.yyy.yyy)
- Din VDs id (zz)
- Dina respektiva knappars värde: (qqq - observera att du har olika qqq för varje knapp och användare!)

Jag har döpt detta script till CheckIfHome (OBS! Detta script är skrivet för AC87 routern, och innehåller kommandon för Quantenna radion) :

Code: Select all

#!/bin/sh

Lars=Borta
Marianne=Borta

macadresser=`wl -i eth1 assoclist`

antal=`qcsapi_sockrpc get_count_assoc wifi0`

while [ $antal -gt 0 ]
do
  antal=`expr $antal - 1`
  macadresser="`qcsapi_sockrpc get_station_mac_addr wifi0 $antal`;$macadresser"
done

case "$macadresser" in
  *xx:xx:xx:xx:xx:xx*)
    Lars=Hemma
  ;;
esac

case "$macadresser" in
  *yy:yy:yy:yy:yy:yy*)
    Marianne=Hemma
  ;;
esac

if [ "$Lars" = Hemma ]
then
  if [ ! -f /jffs/scripts/CheckUser/Hemma_Lars ]
  then
    touch /jffs/scripts/CheckUser/Hemma_Lars
    wget -qO- "http://admin:xxxxxx@yyy.yyy.yyy.yyy/api/callAction?deviceID=zz&name=pressButton&arg1=qqq" >/dev/null 2>&1
  fi
else
  if [ -f /jffs/scripts/CheckUser/Hemma_Lars ]
  then
    rm -f /jffs/scripts/CheckUser/Hemma_Lars
    wget -qO- "http://admin:xxxxxx@yyy.yyy.yyy.yyy/api/callAction?deviceID=zz&name=pressButton&arg1=qqq" >/dev/null 2>&1
  fi
fi

if [ "$Marianne" = Hemma ]
then
  if [ ! -f /jffs/scripts/CheckUser/Hemma_Marianne ]
  then
    touch /jffs/scripts/CheckUser/Hemma_Marianne
    wget -qO- "http://admin:xxxxxx@yyy.yyy.yyy.yyy/api/callAction?deviceID=zz&name=pressButton&arg1=qqq" >/dev/null 2>&1
  fi
else
  if [ -f /jffs/scripts/CheckUser/Hemma_Marianne ]
  then
    rm -f /jffs/scripts/CheckUser/Hemma_Marianne
    wget -qO- "http://admin:xxxxxx@yyy.yyy.yyy.yyy/api/callAction?deviceID=zz&name=pressButton&arg1=qqq" >/dev/null 2>&1
  fi
fi
När du skapat det glöm inte att sätta execute på scriptet, t.ex. med slövaraianten: chmod 777 CheckIfHome

Sedan vill vi att detta script körs varje minute för att kolla om något skett, det gör vi genom att lägga till en rad i filen services-start (om den redan finns, annars får vi skapa den):

Code: Select all

#!/bin/sh

cru a CheckIfHome "* * * * * /jffs/scripts/CheckIfHome"
OBS! första raden krävs bara om du skapar filen, har du redan filen så räcker det med cru raden.

När detta är gjort, så måste vi också skapa en mapp där statusfilen mellanlagras mellan varje körning: mkdir /jffs/scripts/CheckUser - Om du byter plats för denna mapp, så måste du ändra i scriptet (antar att jag borde lagt det i en variabel istf hårdkodat - men så var inte detta script tänkt att läggas ut här på forumet utan knackat för mig själv....). I princip så bör man vara försiktig med att skriva mycket till det interna flash minnet, vilket vi gör i ovanstående script - så om du har ett USB minne så rekommenderar jag skarpt att du flyttar ovanstående mapp till USB minnet - om du är lat kan du alltid göra en soft link (ln -s) från ovanstående plats direkt till ditt USB minne, så slipper du knacka om scriptet...

Med scriptet, cur kommandot i services-start och mappen skapad så har du allt som krävs för att du skall få din Asus router att fungerar som "övervakare" till när mobiler kopplar upp/ned sig.

MEN du behöver också en VD (VIrtual Device) som innehåller de knappar som du försöker få Asus scriptet att trycka på. Jag inkluderar min VD nedan, men du måste antagligen gå in och ändra på namn med mera. Du behöver också skapa ett antal globala variabler:
- Hemma_Lars
- Hemma_Marianne
Och global predefined variable:
- Hemma med värdena "Hemma" respektive "Borta"

I grund och botten blir det lite "meckande" för att få ihop allt, men det fungerar bra, och jag gillar min lösning - även om den inte är så ren och snygg som jag skulle önska. Begränsningarna med vad man kan göra i HC2 stoppar den variant av lösning jag helst skulle vilja åstadkomma.
Attachments
Styrning_Hemma.zip
Kom ihåg att packa upp filen innan du importerar den!!
(1016 Bytes) Downloaded 491 times
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Clabbe
Medlem
Posts: 357
Joined: 25 May 2015, 21:53
8
Location: Torslanda

Hej jag vill bara flika in att det finns andra sätt med =)
Då alla inte har ASUS brandvägg.

Så räcker det med att ni i brandväggen kan tilldela telefonen ett visst fast IP.
Därefter kan man "pinga/telneta" det IPt ifrån LUA och på det viset få reda på ifall någon är hemma eller ej.
Jag har tex sett till att min iPhone får IP 192.168.1.70 på mitt nätverk, och kan då således köra följande.

Code: Select all

tcpSocket = Net.FTcpSocket("192.168.1.70", 62078) 
local bytes, errorCode = tcpSocket:write("test") 
if errorCode == 0 then 
  fibaro:setGlobal("PhoneClabbe","1")
  --fibaro:debug("ok")
else 
  --fibaro:debug("ej kontakt")
  fibaro:setGlobal("PhoneClabbe","0")
end
Denna kod körs varje minut, men OBSERVERA dock..
Att en telefon kan ibland koppla ner sig för att sedan koppla upp sig igen, vilket då gör att man kan ibland få en felaktig rapport.
På min telefon så missar den faktiskt nästan 1 gång var 7e till var 10e minut.
Vilket då sätter variabeln till 0, för att sedan minuten senare bli 1 igen.
Har man då script som gör olika saker på grund utav den variabeln så kan det bli lite "knasigt", tex.. Skicka push när någon kommer hem, att då behöva få den var 7minut är inte så roligt.

Därför har jag löst det med ytterligare en GlobalVariabel "ClabbeHemma", den läser av PhoneClabbe variabeln.
Sätts PhoneClabbe till 1 så sätts ClabbeHemma till 1 och har PhoneClabbe varit 0 i fem minuter då sätter den ClabbeHemma till 0.

Det var mitt sätt att lösa samma bekymmer utan ASUS =)
-----------------------------------------------------------------
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Det finns minst 4 olika sätt till att göra det hela, beroende på hur man vill att det hela skall uppföra sig. Denna gång fick jag en direkt fråga om hur jag löst det i Asuswrt - därav mitt inlägg.
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Clabbe
Medlem
Posts: 357
Joined: 25 May 2015, 21:53
8
Location: Torslanda

Gott då har vi täckt 2 av de möjligtvis 4 sätten. ;)

Soliga hälsningar ifrån beachen :)
-----------------------------------------------------------------
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Näe det finns minst 4 utöver de vi nu täckt in.

Btw din lösning fungerar nog bara om man har iPhone - Android tillåter inte den typen av kommunikation som du försöker göra, i alla fall inte på den porten, såvida man inte rootar sin telefon då...
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

Tack Bamsefar för din utomordentliga guide! Ska sätta mig in i allt så fort solen lagt sig.

Gällande ditt sätt Clabbe så funkar inte det på Android då jag behöver ha en port öppen. Detta löste jag tidigare med att dra igång Sonos app som öppnade port 3500. Nu tappar den dock den porten titt som tätt och jag frågade därför Bamsefar snällt om han kunde skriva en guide om detta, vilket han gjorde :)

Jag har även tänkt prova en liknande lösning med Tasker för Android då jag använder det väldigt mycket. Jag använder t.ex Tasker nu för att säga att jag är hemma direkt när jag blivit uppkopplad på nätverket. Så fort jag kopplas upp hemma så sätts variabeln till hemma. Då slipper jag vänta på första pingen :)



Skickat från min D6503 via Tapatalk
Clabbe
Medlem
Posts: 357
Joined: 25 May 2015, 21:53
8
Location: Torslanda

Ja bamsefars guide är som vanligt grym.
Och ja "ämnet" gäller asus wrt.

Men ville iaf flika in med ett alternativ, ja jag använder port 3500 till Androidtelefoner, verkar fungera jätte bra, med min extra koll på ifall den varit offline över 5min.

Tasker har jag inte kollat på men det låter som att jag borde.. Gissar på att jag inte hittar någon ersättare för tasker till iPhone?

Samt så skall jag kolla om jag kan köra något av bamsefars ovanstående på en Halon. (Openbsd) router.

Fast känner mig lite osäker på hc2 överlag. Äntligen fått nästan allt att fungera, men då jag inte lyckas med TTS till sonos så får jag kanske till slut överväga annat.. Men men det är ett annat kapitel...
-----------------------------------------------------------------
HC2
Aeon Labs, Fibaro, Danfoss enheter (30++st)
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

(OBS! Detta script är skrivet för AC87 routern, och innehåller kommandon för Quantenna radion) :
Denna rad blir jag lite rädd för. Förstår att det sitter ett annat chip i din router men hindrar det mig på något sätt att köra scriptet på min AC68U (BCM4708A)?
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

I princip så bör man vara försiktig med att skriva mycket till det interna flash minnet, vilket vi gör i ovanstående script - så om du har ett USB minne så rekommenderar jag skarpt att du flyttar ovanstående mapp till USB minnet
Skaffat mig ett USB-minne. Hur hittar jag rätt path till minnet i Putty?
Bilden nedan är från routerns interface.
sandisk.png
sandisk.png (7.36 KiB) Viewed 21269 times
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

MEN du behöver också en VD (VIrtual Device) som innehåller de knappar som du försöker få Asus scriptet att trycka på.
Fått till din VD, den fungerar som den ska. Dock får jag värdena 1438721616 och 1438709933 istället för 1 när någon är hemma. Varför blir det så?
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Clabbe wrote:Men ville iaf flika in med ett alternativ, ja jag använder port 3500 till Androidtelefoner, verkar fungera jätte bra, med min extra koll på ifall den varit offline över 5min.
Jag har just testat, din kod fungerar inte i en scen i alla fall, får nil error. Stoppade in den i en VD knapp istället, och nej det fungerar INTE mot Android 5.1.1, i mitt fall en Sony Z3. Jag är borta oberoende av vilket port jag testar mot - så dessvärre är denna rutin inte optimal helt enkelt.
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Robert wrote:
(OBS! Detta script är skrivet för AC87 routern, och innehåller kommandon för Quantenna radion) :
Denna rad blir jag lite rädd för. Förstår att det sitter ett annat chip i din router men hindrar det mig på något sätt att köra scriptet på min AC68U (BCM4708A)?
Mja det har att göra med att AC87 har ett speciellt chip för 5GHz delen, och troligen räcker det med att du tar bort följande bit av koden i scriptet i routern:

Code: Select all

antal=`qcsapi_sockrpc get_count_assoc wifi0`

while [ $antal -gt 0 ]
do
  antal=`expr $antal - 1`
  macadresser="`qcsapi_sockrpc get_station_mac_addr wifi0 $antal`;$macadresser"
done
För det som denna snurra gör är att samla ihop alla MAC adresser och lägga till dom i strängen som skall utsökas för att se om någon av de telefoner man har, har kopplat upp sig mot WiFi. Men det är just det att jag inte testat på AC68 - därav min reservation. Du får dessvärre testa lite :-)
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Robert wrote:
I princip så bör man vara försiktig med att skriva mycket till det interna flash minnet, vilket vi gör i ovanstående script - så om du har ett USB minne så rekommenderar jag skarpt att du flyttar ovanstående mapp till USB minnet
Skaffat mig ett USB-minne. Hur hittar jag rätt path till minnet i Putty?
Bilden nedan är från routerns interface.
sandisk.png
Utan att veta exakt, men troligen heter din disk:
/tmp/mnt/<usbstickans namn>

Om du slår kommandot: mount när du kör putty, så kommer en lista på alla monterade diskar - det är några stycken... Men i slutet bör du hitta någon rad som börjar med "/dev/sda1 on" efter "on" så står det vad disken heter och det är troligen något i stil med just "/tmp/mnt/........"

Om vi antar att din USB sticka heter "ROUTERUSB" (det råkar jag ha döpt min till), så kan du t.ex. skapa en mapp på denna. Gör såhär då (anpassa vid behov för detta är vad jag gör), obs förutsätter att du inte redan skapat CheckUser i /jffs/scripts (ta bort evnt filer i mappen (rm), och radera mappen (rmdir)):

cd /tmp/mnt/ROUTERUSB
mkdir CheckUsers
cd /jffs/scripts
ln -s /tmp/mnt/ROUTERUSB/CheckUsers/ CheckUser

Så nu skriver du hela tiden på USB minnet, utan att behöva ändra i scriptet.
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Robert wrote:
MEN du behöver också en VD (VIrtual Device) som innehåller de knappar som du försöker få Asus scriptet att trycka på.
Fått till din VD, den fungerar som den ska. Dock får jag värdena 1438721616 och 1438709933 istället för 1 när någon är hemma. Varför blir det så?
Det är korrekt, jag använder inte just värdet "1" utan EPOCH - dvs antal sekunder sedan 1 jan 1970, datumet då UNIX föddes. Det värdet talar om när man kom hem alltså, du kan t.ex. ta reda på tidpunkten via:
http://www.epochconverter.com/
eller om du hellre vill via debug då:

Code: Select all

fibaro:debug("Tidpunkt EPOCH: "..os.date("%Y-%m-%d %H:%M:%S",<variabel med EPOCH värdet i>))
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

Tack för svaren! Nu tror jag allt ska vara på sin plats. Hur ser jag om scriptet i ASUS routern fungerar?

Eftersom jag har dålig koll på Puttys alla kommandon så använde jag mig utav WinSCP istället. https://winscp.net/eng/download.php


Har skapat filerna CheckIfHome och services-start i mappen scripts.
Både CheckIfHome och services-start har fått chmod 777.
Sökväg /jffs/scripts/


Jag har även skapat en mapp på USB-minnet och lagt till mappen CheckUser. Sökväg /mnt/ROUTER/ där ROUTER är mitt namn på USB-minnet.
Har ändrat sökvägarna i både CheckIfHome och services-start så att dessa går till /mnt/ROUTER istället.


Något som dock förvirrar mig är.. om jag loggar in via Putty så är sökvägen till USB-minnet /tmp/mnt/ROUTER
Så vilken sökväg ska jag använda i CheckIfHome och services-start för att det ska bli rätt?

CheckIfHome - Utdrag från filen

Code: Select all

if [ "$Robert" = Hemma ]
then
  if [ ! -f /tmp/mnt/ROUTER/CheckUser/Hemma_Robert ]
  then
    touch /tmp/mnt/ROUTER/CheckUser/Hemma_Robert
    wget -qO- "http://admin:***@*.*.*.*/api/callAction?deviceID=319&name=pressButton&arg1=Button21" >/dev/null 2>&1
  fi
else
  if [ -f /tmp/mnt/ROUTER/CheckUser/Hemma_Robert ]
  then
    rm -f /tmp/mnt/ROUTER/CheckUser/Hemma_Robert
    wget -qO- "http://admin:***@*.*.*.*/api/callAction?deviceID=319&name=pressButton&arg1=Button22" >/dev/null 2>&1
  fi
fi
services-start - Utdrag från filen

Code: Select all

#!/bin/sh

cru a CheckIfHome "* * * * * /tmp/mnt/ROUTER/CheckIfHome"
vd.png
vd.png (77.14 KiB) Viewed 21218 times
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Oj, flera frågor på en och samma gång - försöker ta dom jag hittar, säg till om jag missat någon:

/mnt vs /tmp/mnt:

Om du, när du är i putty, skriver cd / så kommer du till root mappen i routern, och du då gör ll så kommer en lista med mappar fram. I denna lista kommer du att se att /mnt är en soft link till /tmp/mnt. Alltså spelar det ingen roll hur du skriver. Men jag min lustiga filur låter alltid bli softlinkar.....

Att se vad som sker:

Nja det är svårt. Jag har lagt till kommandon just för att det inte skall synas *garv*. Om du tar bort -qO- respektive >/dev/null 2>&1 så kommer du se lite text när varje wget anropas. Jag tycker det är jobbigt att läsa. Då är det isåfall bättre du lägger till några "echo" rader, t.ex. echo start osv.

Annars kommer du ju se att dina variabler ändras när du slår på/av wifi i din mobil?!

Men sedan har jag en fråga, och här skall jag erkänna att jag faktiskt aldrig testat: När du ändrat knapp i wget anropen så står det t.ex. "Button21" - men jag skulle tro att det skall stå siffran 3 där, och "Button22" är antagligen knapp 4, så där kanske det skall stå siffran 4 istället? Eller kan man trycka på knappar med ID värdet? som sagt, jag har aldrig testat....
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

Fick svar på mina frågor. Tack :)

Du har självklart rätt ang ID på knapparna. Det ska vara 3, 4 osv :)

Du hade även rätt gällande denna kod. Den fungerar inte på min router och scriptet vill inte gå igenom. Plockar jag bort den delen så får jag inga felmeddelande.

Code: Select all

antal=`qcsapi_sockrpc get_count_assoc wifi0`

while [ $antal -gt 0 ]
do
  antal=`expr $antal - 1`
  macadresser="`qcsapi_sockrpc get_station_mac_addr wifi0 $antal`;$macadresser"
done
Dock sitter jag fast nu. Börjar smått tröttna :)
Jag får inte shell-scriptet att klicka på knapparna eller att fungera över huvud taget som det ska. Jag fick en fil i CheckUser, dock endast en gång och den hette Hemma_Karin.

Såhär ser det ut i routern

Code: Select all

Aug  5 18:14:01 crond[483]: crond: USER *** pid 1701 cmd /tmp/mnt/ROUTER/CheckIfHome
Aug  5 18:15:01 crond[483]: crond: USER *** pid 1707 cmd /tmp/mnt/ROUTER/CheckIfHome
Aug  5 18:16:01 crond[483]: crond: USER *** pid 1713 cmd /tmp/mnt/ROUTER/CheckIfHome
Aug  5 18:17:01 crond[483]: crond: USER *** pid 1719 cmd /tmp/mnt/ROUTER/CheckIfHome
Har en bra datorvana men tyvärr finns det ingen kodning i mig :) Tack för att du orkar stå ut med allt!
Last edited by Robert on 05 Aug 2015, 18:53, edited 1 time in total.
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Du kan börja med att testa respektive wget kommando som vanliga kommandon inne i putty - så vet du att den koden, och kopplingen fungerar oberoende av själva scriptet.

Jag noterar också att du lagt scriptet på /tmp/mount/ROUTER/ och inte i /jffs/scripts - men då du anpassat cru raden så verkar det spela mindre roll. Den output du ser i loggen i routern är korrekt således - det kommer inte mer än så i loggen.

Eftersom jag inte ser hela ditt script, Hemma_Karin delen syntes inte i dina tidigare utskrifter, så vet jag såklart inte vad/hur det är. Men börja med att testa varje wget för sig och verifiera att dom fungerar korrekt.
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Kollade lite snabbt och det verkar som om AC68 hanterar 5GHz delen lite annrolunda än jag minns, så ändra denna rad

Code: Select all

    macadresser=`wl -i eth1 assoclist`
till:

Code: Select all

    macadresser="`wl -i eth1 assoclist`;`wl -i eth2 assoclist`"
Nu jag har, som vanligt, inte testat ovanstående men det bör fungera....

Problemet är alltså att 5GHz radion har sina MAC adresser på en annan del av systemet - höll inte det i huvudet (å andra sidan äger jag ingen AC68 router....).
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

Självklart hade jag tabbat mig lite igen :) Dock inte så allvarligt att det inte skulle fungera.
Sökvägen i services-start är ändrad till rätt och den visar även rätt i loggen för routern :)

Code: Select all

Aug  5 19:35:01 crond[483]: crond: USER *** pid 2594 cmd /jffs/scripts/CheckIfHome
Alla wget fungerar fint genom Putty och den registrerar även "hemkomsten" i Fibaro.

Mitt script ser ut såhär just nu. Dock vill den fortfarande inte lira.

Code: Select all

#!/bin/sh

Robert=Borta
Karin=Borta

macadresser="`wl -i eth1 assoclist`;`wl -i eth2 assoclist`"

case "$macadresser" in
  *xx:xx:xx:xx:F3:66*)
    Robert=Hemma
  ;;
esac

case "$macadresser" in
  *yy:yy:yy:yy:D0:68*)
    Karin=Hemma
  ;;
esac

if [ "$Robert" = Hemma ]
then
  if [ ! -f /tmp/mnt/ROUTER/CheckUser/Hemma_Robert ]
  then
    touch /tmp/mnt/ROUTER/CheckUser/Hemma_Robert
    wget -qO- "http://admin:***@*.*.*.*/api/callAction?deviceID=319&name=pressButton&arg1=3" >/dev/null 2>&1
  fi
else
  if [ -f /tmp/mnt/ROUTER/CheckUser/Hemma_Robert ]
  then
    rm -f /tmp/mnt/ROUTER/CheckUser/Hemma_Robert
    wget -qO- "http://admin:***@*.*.*.*/api/callAction?deviceID=319&name=pressButton&arg1=4" >/dev/null 2>&1
  fi
fi

if [ "$Karin" = Hemma ]
then
  if [ ! -f /tmp/mnt/ROUTER/CheckUser/Hemma_Karin ]
  then
    touch /tmp/mnt/ROUTER/CheckUser/Hemma_Karin
    wget -qO- "http://admin:***@*.*.*.*/api/callAction?deviceID=319&name=pressButton&arg1=5" >/dev/null 2>&1
  fi
else
  if [ -f /tmp/mnt/ROUTER/CheckUser/Hemma_Karin ]
  then
    rm -f /tmp/mnt/ROUTER/CheckUser/Hemma_Karin
    wget -qO- "http://admin:***@*.*.*.*/api/callAction?deviceID=319&name=pressButton&arg1=6" >/dev/null 2>&1
  fi
fi
Post Reply