Kör du med Asus router? Vill du bistå med lite test?

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

Jag har ju flera varianter av "CheckIfHome" script, som är avsedda för flera olika varianter av routers med ASUSWRT installerat i formen av RMerlins variant av firmware.

Jag tänker uppgradera detta script, och göra det lite mera generellt så att säga, så att man slipper så mycket ändringar och ja lättare att installera. Det har visat sig att det inte alltid är så lätt som jag önskat, så det är dags att ta tag i det hela.

Men jag behöver få tillgång till användare som kan köra lite testar åt mig, det är mycket enkla tester i första omgången, som man enbart kör en gång för att verifiera vad för typ av router man kör.

Jag letar således efter någon som har AC68 och AC87 router som kan bistå? Jag har själv AC3200 och AC88 - tillsammans så kan vi nog täcka in det mesta ;-) Evnt en AC56 eller N56 kan gärna vara med nu när jag tänker på de? Det kanske finns någon annan model också? AC66 eller N66 eller vad den heter?

Poängen är att jag behöver OLIKA routers så att scriptet kan anpassa sig själv och inte tvärt om...

Frivilliga?
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

Jag hjälper gärna till! AC68U kör jag. Kör ditt underbara script sedan tidigare :)

Skickat från min D6503 via Tapatalk
jolerius
Medlem
Posts: 115
Joined: 18 Apr 2013, 17:09
10

Jag e gärna med. Kör AC66U

Skickat från min SM-G928F via Tapatalk
johanw
Ny medlem
Posts: 12
Joined: 28 Dec 2014, 11:02
9

Jag är på! Kör en AC87U med senaste asuswrt.
iSnobben
Medlem
Posts: 105
Joined: 27 Dec 2013, 20:39
10

Hehehe jag är ju en av de där som du har fått hjälpa en himla massa så om du vill att jag ska hjälpa till så har jag ju som du kanske vet en AC87U :)

Kan tillägga att ditt script fungerar lysande hemma nu och det har verkligen möjliggjort en massa roliga scener.
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Den här får man testa på egen risk, supporten är lite bristfällig kan vi säga - det är en BETA trots allt ;-)

Jag kör den för närvarande live hemma, så den är nog rätt stabil.

Det sagt/skrivet: Detta är en helt ny variant på script och den kräver andra förutsättningar än mitt tidigare script. Dels så skall denna INTE startas varje minut (denna körs oändligt vart 5e sekund), och dels så måste den startas annorlunda.

Således, om vi antar att ni har den gamla versionen och ni lagt till en rad med "cru a ...." så måste ni ta bort den raden med "cru d ..." - om ni vill veta vad ni skapat tidigare så slå "cru l" så listas alla aktiva tidsstyrda aktiviteter upp - ta sedan bort den som startar den gamla CheckIfHome...

När ni gjort det så fungerar självklart inte någon övervakning när något kommer eller går, så skapa då denna fil i /jffs/scripts - döp den till något kul...

Code: Select all

#!/bin/sh
#
# HC2 info
HC2Password=<ett lösenord till er HC2 admin konto>
HC2IP=191.168.1.5
HC2VDDeviceID=14
#
# MacAdresser att hålla reda på....
Mac1=48:5A:3F:8C:BD:48
Mac2=48:5A:3F:6E:CB:A4
#
########################### Don't touch #################################
#
# Kolla om mappen finns i /tmp (RAM disken - måste återskapas varje omstart)
if [ ! -d /tmp/CheckUser ];
then
  mkdir /tmp/CheckUser
fi
#
# Oändlig loop - skall aldrig dö, förhoppningsvis...
while [ 1 = 1 ]
do
#
# Variabler för status
  User1=Borta
  User2=Borta
#
# Samla ihop alla trådlösa IP adresser...
  macadresser=`wl -i eth1 assoclist`
#
# AC87 har en Quantenna för 5GHz, kräver specialkod
  if uname -n | grep -q AC87; then
    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
  else
    macadresser=$macadresser";"`wl -i eth2 assoclist`
# AC3200 har två 5GHz band, kräver specialkod
    if uname -n | grep -q AC3200; then
      macadresser=$macadresser";"`wl -i eth3 assoclist`
    fi
  fi
#
# User 1
  case "$macadresser" in
    *$Mac1*)
      User1=Hemma
    ;;
  esac
#
  if [ "$User1" = Hemma ]
  then
    if [ ! -f /tmp/CheckUser/Hemma_User1 ]
    then
      touch /tmp/CheckUser/Hemma_User1
      wget -qO- "http://admin:${HC2Password}@${HC2IP}/api/callAction?deviceID=${HC2VDDeviceID}&name=pressButton&arg1=3" >/dev/null 2>&1
    fi
  else
    if [ -f /tmp/CheckUser/Hemma_User1 ]
    then
      rm -f /tmp/CheckUser/Hemma_User1
      wget -qO- "http://admin:${HC2Password}@${HC2IP}/api/callAction?deviceID=${HC2VDDeviceID}&name=pressButton&arg1=5" >/dev/null 2>&1
    fi
  fi
#
# User 2
  case "$macadresser" in
    *$Mac2*)
      User2=Hemma
    ;;
  esac
#
  if [ "$User2" = Hemma ]
  then
    if [ ! -f /tmp/CheckUser/Hemma_User2 ]
    then
      touch /tmp/CheckUser/Hemma_User2
      wget -qO- "http://admin:${HC2Password}@${HC2IP}/api/callAction?deviceID=${HC2VDDeviceID}&name=pressButton&arg1=4" >/dev/null 2>&1
    fi
  else
    if [ -f /tmp/CheckUser/Hemma_User2 ]
    then
      rm -f /tmp/CheckUser/Hemma_User2
      wget -qO- "http://admin:${HC2Password}@${HC2IP}/api/callAction?deviceID=${HC2VDDeviceID}&name=pressButton&arg1=6" >/dev/null 2>&1
    fi
  fi
#
# Avvakta några sekunder innan nästa koll
  sleep 5
#
done
Ni behöver antagligen ändra lite i början på de variabler som sätter upp det hela - OBS ni behöver bara ändra i början, ni slipper hacka koden på alla ställen... Observera att denna version skapar en map på RAM disken som finns i alla Asus routers med RMerlin firmware - så ni slipper alltså slitaget på USB minnet osv.

När ni skapat filen ovan så behöver ni också ändra i /jffs/scripts/services-start genom att lägga till start av ovanstående script. Om ni döpte scriptet ovan till CheckIfHome2 så blir det:

Code: Select all

source  /jffs/scripts/CheckIfHome2
Sedan MÅSTE ni starta om routern - scriptet blir inte aktivt utan att ni gör det....

Testa på egen risk - glöm inte ändra IP / Password / VD-ID och MAC adresserna ovan.

Just det, för närvarande är VDn samma som senaste versionen med 2 labels och 4 knappar.
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

Wow! Fick lite tid över idag och testade ditt uppdaterade script. Så snyggt och bra uppdaterat! Kan meddela att scriptet fungerade utan problem!

Dock försökte du lura mig med denna rad.

Code: Select all

source  /jffs/scripts/update-hosts.sh
Har man döpt filen till CheckIfHome2 så ska den självklart vara länkad till den och inte update-hosts.sh :)
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Aaaaaaahhhhh *garv* ja det är Beta.....

Tackar, skall ändra min beskrivning ovan....
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

Just nu känns det stabilt :)

Om du får lite tid över och/eller har möjlighet så får du gärna titta på något lösning för repeaters. Kollade runt lite men hittar inget vlan där mina enheter ligger(På repeatern). Försökte med vlan3 men fanns inget som hette så. Har även Googlat runt lite på iptables men det känns som steget där är för lång för mig :)
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

För att svarar på repeater frågan behöver jag lite skärmbilder/information:

Om du har en mobil uppkopplad enbart på WiFi repeatern, hur ser det då ut i listan över anslutna devices som du kan klicka på i översiktsbilden i GUIt på routern? Och sortera gärna på vilken typ (dvs så att man ser vilka enheter som sitter på kabel, wifi 2.4GHz och wifi 5.0GHz osv)?

Om du gör en "iptables -Lv" - vilken output får du då?
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Robert
Medlem
Posts: 346
Joined: 17 Oct 2013, 22:40
10

Repeatern är en RP-AC52 från Asus.

Som du ser nedan på bilden så ser man ansluta enheter till repeatern genom att det skapas en siffra upptill på ikonen. Min mobil är på bilden uppkopplad på repeatern och såldes inte "hemma". Karins mobil ligger dock kvar på routern och är då hemma eftersom den ligger på vlan1. Mobilerna ansluter till repeaterns 2.4 band. Repeatern ligger med i listan på vlan1.
natverkskarta.jpg
iptables -Lv ger mig endast
iptables: No chain/target/match by that name.
Dock ger iptables -L mig en lista. Vill du ha en printscreen av den?
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Nja jag letr efter hur drn routar, måste kolla hemma.....
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
jolerius
Medlem
Posts: 115
Joined: 18 Apr 2013, 17:09
10

Jag har inte den gamla versionen. Känns som jag missar nåt?

Vad exakt behöver jag skapa och var? Hur?

Skickat från min SM-G928F via Tapatalk
jolerius
Medlem
Posts: 115
Joined: 18 Apr 2013, 17:09
10

jag får inte detta att funka.. har lagt scriptet i rätt katalog på routern och det heter
checkifhome.sh

men när jag försöker köra det får jag bara felkod

Code: Select all

-sh: /jffs/scripts/checkifhome.sh: line 33: syntax error: unexpected word (expecting "in")
här är scriptet:

Code: Select all

#!/bin/sh
#
# HC2 info
HC2Password=xxxxxx
HC2IP=191.168.1.47
HC2VDDeviceID=14
#
# MacAdresser att hålla reda på....
Mac1=EC:1F:72:xxxxxx
Mac2=40:B8:37:xxxxxx
#
########################### Don't touch #################################
#
# Kolla om mappen finns i /tmp (RAM disken - måste återskapas varje omstart)
if [ ! -d /tmp/CheckUser ];
then
  mkdir /tmp/CheckUser
fi
#
# Oändlig loop - skall aldrig dö, förhoppningsvis...
while [ 1 = 1 ]
do
#
# Variabler för status
  User1=Borta
  User2=Borta
#
# Samla ihop alla trådlösa IP adresser...
  macadresser=`wl -i eth1 assoclist`

#
# User 1
  case "$macadresser" in
    *$Mac1*)
      User1=Hemma
    ;;
  esac
#
  if [ "$User1" = Hemma ]
  then
    if [ ! -f /tmp/CheckUser/Hemma_User1 ]
    then
      touch /tmp/CheckUser/Hemma_User1
      wget -qO- "http://admin:${HC2Password}@${HC2IP}/api/callAction?deviceID=${HC2VDDeviceID}&name=pressButton&arg1=3" >/dev/null 2>&1
    fi
  else
    if [ -f /tmp/CheckUser/Hemma_User1 ]
    then
      rm -f /tmp/CheckUser/Hemma_User1
      wget -qO- "http://admin:${HC2Password}@${HC2IP}/api/callAction?deviceID=${HC2VDDeviceID}&name=pressButton&arg1=5" >/dev/null 2>&1
    fi
  fi
#
# User 2
  case "$macadresser" in
    *$Mac2*)
      User2=Hemma
    ;;
  esac
#
  if [ "$User2" = Hemma ]
  then
    if [ ! -f /tmp/CheckUser/Hemma_User2 ]
    then
      touch /tmp/CheckUser/Hemma_User2
      wget -qO- "http://admin:${HC2Password}@${HC2IP}/api/callAction?deviceID=${HC2VDDeviceID}&name=pressButton&arg1=4" >/dev/null 2>&1
    fi
  else
    if [ -f /tmp/CheckUser/Hemma_User2 ]
    then
      rm -f /tmp/CheckUser/Hemma_User2
      wget -qO- "http://admin:${HC2Password}@${HC2IP}/api/callAction?deviceID=${HC2VDDeviceID}&name=pressButton&arg1=6" >/dev/null 2>&1
    fi
  fi
#
# Avvakta några sekunder innan nästa koll
  sleep 5
#
done
vad gör jag för fel?
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Hej jolerius,

Om du låter bli att ändra i min kod så kommer det antagligen att fungera - du har tagit bort kod under "Don't touch" - då kan det bli exakt det du nu råkar ut för, saker slutar att fungera.
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
jolerius
Medlem
Posts: 115
Joined: 18 Apr 2013, 17:09
10

Bamsefar wrote:Hej jolerius,

Om du låter bli att ändra i min kod så kommer det antagligen att fungera - du har tagit bort kod under "Don't touch" - då kan det bli exakt det du nu råkar ut för, saker slutar att fungera.
Jag trodde jag bara tagit bort det som hade specifikt med de mer speciella routrarna och göra?? Eller kan den koden ligga kvar trots att man inte har någon av de routrarna?

Skickat från min SM-G928F via Tapatalk
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Syftet med koden är att ALLA skall använde HELA och SAMMA kod, och är det någon modell som kommer till med speciella radio delar (som AC87 resp AC3200, och troligen AC5300 men den har jag inte tillgång till) så kommer jag uppdatera koden så att den täcker även den modellen. Många, de flesta, av Asus routers använder liknande kommandon till att extrahera ut MAC adresserna osv. Så i det längre perspektivet så kommer det antagligen att underlätta det hela.

Jag är inte säker på vad som händer när man klipper ut koden såsom du gjort, jag har aldrig och kommer aldrig supporta ändrad kod. Men troligen är det så att dina mobiler använder 5GHz nätet, och du tittar enbart på 2.4GHz nätet med den koden du har. Och det troliga felet är att alltså ingen mobil är uppkopplad mot 2.4GHz nätet, och då är strängen för MAC adresser tom, och då snubblar koden - av en händelse ;-) så fixar original koden detta läget utan att bugga ut ;-) :mrgreen: :mrgreen: :mrgreen: :mrgreen:
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
jolerius
Medlem
Posts: 115
Joined: 18 Apr 2013, 17:09
10

tyvärr hjälpte det inte att klistra in scriptet i sin helhet.
Får samma fel, men på en annan rad nu. Dock är det samma rad, bara att den har flyttats ner pga att det är flerrader ovanför i scriptet.

Code: Select all

-sh: checkifhome: line 48: syntax error: unexpected word (expecting "in")
Så jag förstår verkligen inte vad jag gör för fel? Använder notepad++ för att göra själva scriptet och spara det som "unix script file (*.bash; *.sh; *.bsh; *.csh). Kan det ha något med formateringen att göra? Använder windows 10 om det spelar någon roll?

Kan jag skapa scriptet direkt i routern på nåt sätt???
jolerius
Medlem
Posts: 115
Joined: 18 Apr 2013, 17:09
10

Ändrade programmeringsspråk till unix i notepad++ och blev av med felet.

Men hur vet jag att det har hänt något innan jag startar om routern?
När jag skriver

Code: Select all

 source /jffs/scripts/chekcifhome
så verkar det som att det inte händer något. När jag trycker på enter så kommer det bara upp en ny tom rad, där jag kan skriva, men den uppfattar det inte som kommandon.

Kan inte heller hitta services-start i /jffs/scripts/ hur skapar jag den lr vad har jag missat??

Skickat från min SM-G928F via Tapatalk
User avatar
Bamsefar
Z-Wave Kung
Posts: 1230
Joined: 25 Nov 2013, 15:06
10
Location: Stockholm

Aha du försökte dig på att göra så. Jag gör allt direkt i routern med t.ex. vi editorn. Men så är jag gammal UNIX sysadm också...

Skapa den filen som heter services-start. Det är välkommenterat i asuswrt forumet under RMerlin, och i hans readme fil resp wiki sidor.
Testar Home Assistant på Raspberry Pi4B - nice :mrgreen:
Post Reply