I’m trying to get the signal strength using the leds
I have this - and it’s nice but I can’t know tell what are the steps
/system leds
add interface=wlan1 leds=led1,led2,led3,led4,led5 type=\
wireless-signal-strength
so I have try to write my own script
:global MySignal [/interface wireless registration-table get [find interface=wlan1] signal-strength];
:if ([:pick $MySignal 0 [:find $MySignal dBm]] >-50) do={/led led1=yes led2=yes led3=yes led4=yes led5=yes;/log warning "Wireless is - $MySignal";} else={:if ([:pick $MySignal 0 [:find $MySignal dBm]] >-60) do={/led led1=no led2=yes led3=yes led4=yes led5=yes;/log warning "Wireless is - $MySignal";}; else={:if ([:pick $MySignal 0 [:find $MySignal dBm]] >-70) do={/led led1=no led2=no led3=yes led4=yes led5=yes;/log warning "Wireless is - $MySignal";}; else={:if ([:pick $MySignal 0 [:find $MySignal dBm]] >-80) do={/led led1=no led2=no led3=no led4=yes led5=yes;/log warning "Wireless is - $MySignal";};else={:if ([:pick $MySignal 0 [:find $MySignal dBm]] >-90) do={/led led1=no led2=yes led3=no led4=no led5=yes;/log warning "Wireless is - $MySignal";};}}}}
but I get error
can you help me find my mistake ?
I guess I have a writing error or something like this
Thanks ,
First of all, do not write the script all on one line… Is unreadable.
:global MySignal [/interface wireless registration-table get [find interface=wlan1] signal-strength];
:if ([:pick $MySignal 0 [:find $MySignal dBm]] >-50) do={/led led1=yes led2=yes led3=yes led4=yes led5=yes;
/log warning "Wireless is - $MySignal";
} else={:if ([:pick $MySignal 0 [:find $MySignal dBm]] >-60) do={/led led1=no led2=yes led3=yes led4=yes led5=yes;
/log warning "Wireless is - $MySignal";
};
else={:if ([:pick $MySignal 0 [:find $MySignal dBm]] >-70) do={/led led1=no led2=no led3=yes led4=yes led5=yes;
/log warning "Wireless is - $MySignal";
};
else={:if ([:pick $MySignal 0 [:find $MySignal dBm]] >-80) do={/led led1=no led2=no led3=no led4=yes led5=yes;
/log warning "Wireless is - $MySignal";
};
else={:if ([:pick $MySignal 0 [:find $MySignal dBm]] >-90) do={/led led1=no led2=yes led3=no led4=no led5=yes;
/log warning "Wireless is - $MySignal";
};
}}}}
You must specify also MAC address if more than one item on registration-table are present.
If on script you need to do same thing more time, do only one time…
:global signalStrength value=[/interface wireless registration-table get [find where interface=wlan1 and mac-address=00:00:00:00:00:00] value-name=signal-strength];
:global absoluteSignal value=[:tonum [:pick $signalStrength ([:find $signalStrength "-" -1] + 1) [:find $signalStrength "dBm" -1]]];
/led led1=no led2=no led3=no led4=no led5=no;
/log warning message=("Wireless is ".$signalStrength);
:if ($absoluteSignal < 50) do={
/led led1=yes led3=yes led5=yes;
} else={
:if ($absoluteSignal < 60) do={
/led led1=yes led2=yes led3=yes led4=yes led5=yes;
} else={
:if ($absoluteSignal < 70) do={
/led led1=yes led2=yes led3=yes led4=yes;
} else={
:if ($absoluteSignal < 75) do={
/led led1=yes led2=yes led3=yes;
} else={
:if ($absoluteSignal < 80) do={
/led led1=yes led2=yes;
} else={
:if ($absoluteSignal < 90) do={
/led led1=yes;
};
};
};
};
};
};
o.k.
the problem now is - when nothing is connected the leds still working as they where the last time
so I have added this part but again I get en error
can you see why?
if ([/interface wireless get wlan1 running]=true) do={log error message="connected";
:global signalStrength value=[/interface wireless registration-table get [find where interface=wlan1] value-name=signal-strength];
:global absoluteSignal value=[:tonum [:pick $signalStrength ([:find $signalStrength "-" -1] + 1) [:find $signalStrength "dBm" -1]]];
/log warning message=("Wireless is ".$signalStrength);
:if ($absoluteSignal < 50) do={
/led led1=yes led3=yes led5=yes;
} else={
:if ($absoluteSignal < 60) do={
/led led1=yes led2=yes led3=yes led4=yes led5=yes;
} else={
:if ($absoluteSignal < 70) do={
/led led1=yes led2=yes led3=yes led4=yes;
} else={
:if ($absoluteSignal < 75) do={
/led led1=yes led2=yes led3=yes;
} else={
:if ($absoluteSignal < 80) do={
/led led1=yes led2=yes;
} else={
:if ($absoluteSignal < 90) do={
/led led1=yes;
};
};
};
};
};
};
};
else={log warning "nothing conneted";/led led1=no led2=no led3=no led4=no led5=no;};
Thanks ,
This?
I have also added other things… 
/led led1=no led2=no led3=no led4=no led5=no;
:if ([:len [/interface wireless registration-table find]] > 0) do={
:global signalStrength value=[/interface wireless registration-table get [find where interface=wlan1] value-name=signal-strength];
:global absoluteSignal value=[:tonum [:pick $signalStrength ([:find $signalStrength "-" -1] + 1) [:find $signalStrength "dBm" -1]]];
/log warning message=("Wireless is ".$signalStrength);
:if ($absoluteSignal < 50) do={ /led led1=yes led3=yes led5=yes;
/log error message=("ERROR: TOO STRONG SIGNAL");
} else={
:if ($absoluteSignal < 60) do={ /led led1=yes led2=yes led3=yes led4=yes led5=yes;
} else={
:if ($absoluteSignal < 70) do={ /led led1=yes led2=yes led3=yes led4=yes;
} else={
:if ($absoluteSignal < 75) do={ /led led1=yes led2=yes led3=yes;
} else={
:if ($absoluteSignal < 80) do={ /led led1=yes led2=yes;
} else={
:if ($absoluteSignal < 86) do={ /led led1=yes;
} else={ /led led5=yes;
/log error message=("ERROR: TOO WEAK SIGNAL");
};
};
};
};
};
};
} else={
/log error message=("Wireless is unregistered");
};
Thanks,
I have made some change according to what I need ,
but thanks for your help
Hello Everyone,
Is possible to know how on version 6.27 get command in right way to print signal-strength
[volga629@testap] > /interface wireless registration-table get [find interface=wlan1] signal-strength
invalid internal item number