[FARMWARE] Mother's Little Helper (MLH)

Warning, this post will be long.
To help add some context on how open the Internet architecture is…I created a crude SysML model that hopefully will help shed some light on the topic. I don’t claim to be an expert in IP networks, and please remember that all models are wrong, some are useful. With that opener, here we go!

Step 1. Download this zip file (It contains an HTML report of the model and the model file itself if you’re model saavy or wanna try out Cameo Systems Modeler)
IP Network Infrastructure.zip (2.6 MB)

Step 2. Open the IP Network Infrastructure.html file in your favorite web browser.

Step 3. Navigate to the “Internet” structure diagram (see below diagram)

Primer for reading these
black diamonds mean “has a”
white diamonds mean “uses a”
white triangle means “is a”

The internet “has a” DNS (this translates names to network addresses) and “has many” IP Networks. The IP network uses the DNS to translate names to network addresses (this is one possible source of your issue…but not likely…more on this later. An IPS “is a” (type of) IP Network. Each IP Network “has one to many” nodes. Servers, Clients, and Routers are all “types of” Node.

Step 4. Open the “Domain Naming System” structural diagram.
The Domain Naming System (DNS) translates user-readable names to their network address. For example, forum.farmbot.org translates to the network address of 104.131.20.102. Your Farmbot’s network address is provided by your Internet Service Provider (ISP) (or quite possibly your local network). Now referencing the “Internet” structure diagram, realize that there is a series of routers provided by your home network and all of the ISP networks between your Farmbot and the server. This is where the “traceroute” utility can be of some service. This utility will ping every router between it’s node and the node it’s trying to reach, displaying the results. A dead ping indicates a node is down. Most Linux-based OS come with the tracert utility de facto. I can’t remember if Farmbot OS is Linux-based or not.

** Step 6.** Open the “Home Network” Structure diagram.
This diagram lays out the structure in a prototypical internet-connected home network. Most people’s these days connect to their homenetwork via their Wireless Access Point (WAP), which then will reach the router, then the ISP, then the Internet. For a large majority of users, the WAP and router are combined (i.e. ‘wireless router’). Generally speaking, these consumer grade WAPs are terrible, terrible, terrible and are usually the source of most internet issues. Since the Farmbot can’t really do anything about a bad WAP, this is the main thrust behind @connor’s and @etcipnja’s opinion that this is not in FB OS’s scope. I happen to agree, but I also feel that some basica troubleshooting information could be provided in the logs if these base-level networking tools are included in the OS. In the event of any network issue, it could try to resolve the DNS, ping a server, and provide a tracert output. This information could help the user (us Farmbotters) more quickly isolate issues. You still will need to do these same steps from another node in your network to completely isolate the issue.

Step 7. Open the behavior diagram “Exchange Information”. I’ve included a full version screen grab below, but the fonts may be a little small. In this one, you can see all of the interactions that have to take place between your FB and the FB server. If anyone of these nodes in the chain fail, so does your communication, and ultimately whatever function your FB is performing that requires information or service from the FB server.
This is also what makes troubleshooting, isolating, and fixing issues hard and impossible respectively. Per @etcipnja’s point, it’s an open-system. The FB cannot exert any control, nor influence, on the network. Per @connor’s point, it can be pretty difficult for FB to isolate issues automatically given the sheer diversity of network configurations out there, and there are plenty of dedicated network analysis tools out there that do exactly this. In other words, it’s out of scope. As stated above, I think there are a few ‘freebies’ available to the FB dev team that they could integrate in, if they get the free cycles to do it (i.e. no other major things going on to fix/develop).


If you have made it this far, I thank you for reading. You have earned 17 internet points. If you have any questions, let me know and I’ll try to point you in the right direction. I agree with everyone else’s assessment: you very likely have a WAP issue (external interference, your WAP is drunk again, or you live near an airport (like me)). FWIW, I have commercial grade gear and I still have issues, albeit much less than I did with the consumer grade gear. This is also why I have made the decision to hard wire my FB to my network. This does involve burying cable and installing a grounding rod to protect your network gear, so let me know if this option is attractive to you. OK, it’s whiskey time on Friday! Cheers all!

Fuzzy

5 Likes