Read the statement by Michael Teeuw here.
Internet Monitor
-
According to the documentation, it pulls down a list of servers and their associated ping times. The default is to pick the server with the smallest ping. This is quite curious.
It does look like you can pass in a serverID and have it use that server. You can get the ID of a specific server here. I think with a little editing of the
node_helper.js
file, you can pass in an object that specifies a particular server.For bonus points, make the server ID and/or server URL a parameter that you can specify in the
config.js
entry for the module. Test it and then submit a pull request to the module developer.Huh. I just tried this and it’s picking servers in Norway, which is very much not nearby.
ETA: Looking at it, it doesn’t seem to be terribly hard. The Start() function sends the socket notification that gets it all going, passing in the config argument. The only option passed in is maxTime. If you can figure out the format that speedtest wants, you could pretty easily pass in whatever you wanted to extract from the config object (payload in the node_helper.js).
I may play with this later myself, just to learn some things.
-
Well. That was frustrating. I’ll spare you the details, but I modified the module and submitted a PR. Hopefully @ronny3050 will fix my amateurish code and accept it.
Anyhow, if you want to try it before then, you can clone from my fork of ronny3050’s module. Remember to run
npm install
. -
Hi, only just discovered this module and it seems like a great idea however I cannot get the wifi symbol to appear.
Here’s my config for the module:
module: “internet-monitor”,
position: “bottom_center”,
header: “Internet Monitor”,
config: {
type: " ",
maxTime: “20000”,
updateInterval: “0”,
verbose: “false”,
displayStrength: “true”,
displaySpeed: “false”,
strengthIconSize: “80”,
maxGaugeScale: “100”,
wifiSymbol: {
size: “50”,
fullColor: “3afc25”,
almostColour: “#ffff0c”,
halfColor: “#ff8c00”,
noneColor: “#ff1111”
},
}
}Am I being thick and have missed something?
Additionally is the wifi symbol a measure of internet speed on the pi or wifi strength to my AP?
-
@nickthebeer - The WiFi symbol is actually a ping test to the testing server. Ping times > 150ms are marked as no signal, ping < 70ms is full strength.
Looking at the speedtest documentation, the API returns a “list of closest servers” after testing. Who knows how long that takes, especially if you’re using the original code without my updates. The
node_helper.js
then pulls the closest server and does a ping test.I think this is just going to be a patience thing. Watch the console log for the line:
ping
. That’s the notification from thenode_helper.js
that the ping is complete. If the Wifi symbol doesn’t appear after that, come back and we’ll look at it. -
@bhepler Confirming…100% working as suggested. I have included the local speedtest server to the config (serverID), the verbose now displays this server…and the speed gauges show the expected speeds, DLs and ULs. Nice work.
-
@bhepler ok, I’m seriously missing something here…I removed the internet monitor folder and did a git pull from your page (https://github.com/BrianHepler/internet-monitor) and also cleared down my config.js to a simple config but it just doesn’t look right (see attached image) I’m missing the wifi symbol and it defaults to a speedtest server in Norway and not the one specified in the file (12667 in the US).
Please help, it’s slowly driving me insane.
/* Magic Mirror Config Sample * * By Michael Teeuw http://michaelteeuw.nl * MIT Licensed. * * For more information how you can configurate this file * See https://github.com/MichMich/MagicMirror#configuration * */ var config = { address: "localhost", // Address to listen on, can be: // - "localhost", "127.0.0.1", "::1" to listen on loopback interface // - another specific IPv4/6 to listen on a specific interface // - "", "0.0.0.0", "::" to listen on any interface // Default, when address config is left out, is "localhost" port: 8080, ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], // Set [] to allow all IP addresses // or add a specific IPv4 of 192.168.1.5 : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"], // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format : // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"], language: "en", timeFormat: 24, units: "metric", modules: [ { module: 'internet-monitor', position: 'top_center', header: 'Internet Monitor', config:{ type: '', maxTime: '20000', updateInterval: '0', verbose: 'true', serverID: '12667', displayStrength: 'true', displaySpeed: 'true', strengthIconSize: '80', maxGaugeScale: '100', wifiSymbol:{ size: '50', fullColor: '#3afc25', almostColor: '#ffff0c', halfColor: '#ff8c00', noneColor: '#ff1111' }, }, } ] }; /*************** DO NOT EDIT THE LINE BELOW ***************/ if (typeof module !== "undefined") {module.exports = config;}
-
@nickthebeer - Dude I am so sorry! I just saw your post now. I don’t know why I didn’t get a notification. Let’s get you fixed up.
The problem is in the capitalization of the
ServerId
variable. You haveId
in all caps. It’s uppercase “I” and lowercase “d”. Copy & paste this:{ module: 'internet-monitor', position: 'top_center', header: 'Internet Monitor', config:{ type: '', maxTime: '20000', updateInterval: '0', verbose: 'true', serverId: '12667', displayStrength: 'true', displaySpeed: 'true', strengthIconSize: '80', maxGaugeScale: '100', wifiSymbol:{ size: '50', fullColor: '#3afc25', almostColor: '#ffff0c', halfColor: '#ff8c00', noneColor: '#ff1111' }, } },
-
Yeah I am not able to get the plain WiFi symbol to appear as well. The heading size responds to the new sizing of where a symbol should be, but no symbol appears.
-
I am also not getting the wifi icon to appear by itself. Hoping for an update/fix as I really love the idea of a wifi status icon on my MM.
-
@GoodWillGustin I’d like to have it also.
I experience some wifi disconnections and I sometimes notice it couple hours after the issue. So that would be great to have it on the mirror, just like on the graphical UI of the Pi.