mf60 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +47 -4
- data/lib/mf60.rb +1 -1
- data/lib/mf60/version.rb +1 -1
- metadata +9 -9
data/README.md
CHANGED
@@ -2,21 +2,56 @@
|
|
2
2
|
|
3
3
|
The MF60 is a portable, personal WIFI hotspot that is sold worldwide in countries like Australia and Switzerland (where I live). Apparently, over a million of these devices were sold in Australia alone last year.
|
4
4
|
|
5
|
+

|
6
|
+
|
7
|
+
# Installation #
|
8
|
+
|
9
|
+
|
10
|
+
$ gem install mf60
|
11
|
+
$ mf60 --help
|
12
|
+
|
5
13
|
Like most hotspots, it comes with a pretty pitiful web interface and not much in the way of an API. I commute on the train frequently, and I sometimes find I need to reset the box. I was curious to see if I could somehow automate that a little bit. For instance, I wanted to be able to quickly disconnect/reconnect from the command-line, or maybe gather statistics. So I wrote this library.
|
6
14
|
|
7
|
-
|
15
|
+
_Note: When you are logged into the admin interface from a browser, you will be logged out as soon as you connect with this library. That's just the way it goes._
|
16
|
+
|
17
|
+
The Swisscom MF60 from ZTE is known to work with this, but other carriers and devices may be compatible. Let me know.
|
18
|
+
|
19
|
+
## Library ##
|
20
|
+
|
21
|
+
By default, the library attempts to connect to the device's web admin interface at http://192.168.0.1/. You can change the address with an environment variable,`MF60URL`:
|
22
|
+
|
23
|
+
$ export MF60URL="http://swisscom-mf60.home"
|
24
|
+
|
25
|
+
or, in an app:
|
26
|
+
|
27
|
+
# ENV['MF60URL'] = "http://192.168.1.1"
|
28
|
+
|
29
|
+
There's just one class to use, `MF60::Client`:
|
8
30
|
|
9
31
|
> require 'MF60'
|
10
32
|
> mf60 = MF60::Client.new('admin', 'secret')
|
11
33
|
> mf60.reset
|
12
34
|
=> true
|
13
35
|
|
14
|
-
|
36
|
+
Statistics and status are returned as a hash:
|
15
37
|
|
16
38
|
> mf60.stats
|
17
39
|
=> {:current_trans=>1133211, :current_recv=>2884959, :connect_time=>"29:33", :total_recv=>222000830}
|
40
|
+
|
41
|
+
See the [command-line utility source](https://github.com/somebox/MF60/blob/master/bin/mf60) for descriptions of the keys.
|
42
|
+
|
43
|
+
|
44
|
+
## Command-line Utility ##
|
45
|
+
|
46
|
+
A command-line utility gets installed with the gem, called `mf60`. Before using it, set the admin interface password via an environment variable:
|
47
|
+
|
48
|
+
$ export MF60PW="secret"
|
49
|
+
|
50
|
+
or
|
18
51
|
|
19
|
-
|
52
|
+
$ MF60PW="secret" mf60 status
|
53
|
+
|
54
|
+
There are just a few tasks supported for now:
|
20
55
|
|
21
56
|
$ mf60
|
22
57
|
Tasks:
|
@@ -38,5 +73,13 @@ Tracking signal strength can be interesting as well:
|
|
38
73
|
rscp/ecio : 176/16
|
39
74
|
rssi : 11
|
40
75
|
signal : ▁ ▂ ▃......
|
76
|
+
|
77
|
+
The signal meter is probably not that accurate (needs tweaking) and doesn't work at all when on GPRS (2G).
|
78
|
+
|
79
|
+
## Code
|
41
80
|
|
42
|
-
|
81
|
+
There's no official published protocol for this device that I know of. Firebug and Firefox were used to inspect and reverse engineer the web admin interface of the device.
|
82
|
+
|
83
|
+
I hope to soon write a stats-gathering script so I can graph signal strength along different train lines.
|
84
|
+
|
85
|
+
The project is built with [HTTParty](https://github.com/jnunemaker/httparty) and [Thor](https://github.com/wycats/thor). Both libraries were fun and awesome to use.
|
data/lib/mf60.rb
CHANGED
data/lib/mf60/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mf60
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-01-05 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|
16
|
-
requirement: &
|
16
|
+
requirement: &70125287490240 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70125287490240
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: thor
|
27
|
-
requirement: &
|
27
|
+
requirement: &70125287489820 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70125287489820
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: guard
|
38
|
-
requirement: &
|
38
|
+
requirement: &70125277687140 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70125277687140
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: guard-test
|
49
|
-
requirement: &
|
49
|
+
requirement: &70125277686720 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70125277686720
|
58
58
|
description: A library and command-line tool that talk to the MF60 via the admin web
|
59
59
|
interface. This little battery-powered box is available from Swisscom in Switzerland
|
60
60
|
(as well as mobile operators in other countries). With this gem you can get statistics,
|