You are here

"Safe and Well" on a mesh?

20 posts / 0 new
Last post
kb5zvp
"Safe and Well" on a mesh?

First post, from a Mesh newbie, so please forgive me if I've posted in the wrong place :D

I'm wondering if there is, or has been considered, a "safe and well" type application which could be run on a local mesh, without the internet back haul ( at least temporarily) to the Red Cross, where the information could be collected locally, searched locally by the appropriate folks, and then perhaps distributed nationally/globaly via other links (winlink, internet, etc) when they come back online?

And if nobody's started anything of the like, might there be anyone interest in helping develop such a thing?  (I'm an EE, and while I can design the hardware for GbE links all day long, I am saddled with the typical EE brain that struggles with the software-authoring side of that equation!).  My brother (N5BKV in Dallas, TX) and I (KB5ZVP in Austin, TX) are both interested in seeing if we could help with such an effort.

I'm happy to discuss further ideas if it's appropriate and there's interest in it.

73 de KB5ZVP

[Side note:  the "What now?" question I think is of great importance!  I've got this cool high-speed ham network - how do I make it useful when its needed!  And if it's a great idea, how can we help get the message out that it exists!]
 

kk6fut
Great idea!  I wonder if this
Great idea!  I wonder if this might just be a matter of adapting (or running) Google PersonFinder on a connected node? This is Google disaster tool for tracking and finding people in a disaster, and has a published data export format and (from a glance at the code) can run on a local machine. It allows you to look for someone or provide information on someone, given such things as a name, partial name, phone number, address or location, etc. You can input notes, contact info, condition or who to contact for more info, etc.

https://github.com/google/personfinder

It's written in Python, and only requires Python and a few supporting tools (or so it looks like).

Ben
KK6FUT

ps. I've been working on some similar efforts, and so far have a mapping app (offline capable) which maps fire, earthquakes, power outages, and APRS on our mesh (also able to plot police calls... but boy too many to keep up with). Also can track airplanes separately, for what it's worth.
 
kb5zvp
Love to see more about your mapping
I'd love to see more of your offline mapping capabilities!  I think it would be really cool if there could be a map list of community resources as well - message stations, aid, health-welfare etc.

I think about all the resources I use daily that actually do rely on the internet - and how frustrated I get when I turn off the wifi card on the laptop and try and get something else done.
 
kk6fut
Offline mapping stuff is easy
Offline mapping stuff is easy due to all the tools available today (OpenStreetMap, etc.). I have something I whipped up in the last couple of weeks (actually kind of intersected with the AREDN mapping contest, so ran with it)... This is a screen shot off my running node, it plots fire department calls (red cross icon), earthquakes (seismograph), power outages (yellow triangle), and APRS stations (antennas) at the moment... but you could plot anything, really.   The hardest thing is getting data which will "be there" even if power is down, etc. (static information like shelter locations is easy, APRS is easy since it's available via local digipeaters, but fire requires EOC access and agency cooperation, as does power and earthquake info. You probably could get away with relaying some of this stuff (earthquakes, for example) via WinLink or packet via HF from out of an affected area.



 
K4RQ
OSM offline
What utility are you using to serve Open Street Map data offline?

Tnx
Monroe - K4RQ
kb5zvp
Great Resource!
PersonFinder looks like it is exactly a great framework!  There's tons of information there - but maybe implementing a smaller subset would be easy?  

Unfortunately while I could design the 'puter it runs on, all that python code and files looks overwhelmingly like cryllic to me :( Could it be implementeded small enough to run on the appliance, or would it need it's own server?  And I suppose the database would/could grow big enough to really wanna be on it's own application server of some type? My ideal vision would be an app run directly on a mesh node, but if necessity dictated having a laptop/raspberry pi would be all right as well. (I'm a hardware designer - I've gotta let the software folks tell me what's the more reasonable approach).

Figuring out how to collect it is the first step - being able to upload it to google/ and or the red cross for further dissemination once a reliable internet/backbone is back in place.

Scott
kb5zvp
K5DLQ
K5DLQ's picture
I would **STRONGLY** advise
I would **STRONGLY** advise against this.  Put it on a RPi that this  attached to the lan port of the node and you'll be in a MUCH better place.   ;-)
K5DLQ
K5DLQ's picture
In fact...  wouldn't it be

In fact...  wouldn't it be cool to have an EMCOMM Mesh Raspian Distro with:

Asterisk
MeshChat
VideoChat
"PersonFinder"
internet Proxy (SOCKS) server for authenticated internet access (instead of the "mesh gateway" all-or-none option)
etc...

:-)
 

kk6fut
Yeah, I agree. The code here
Yeah, I agree. The code here is too big for putting on a node itself, but RPi is perfect for this.   Raspian Distro with all EMCOMM stuff would be neat.  Also, having a standard distro would make it possible to deploy some standard store-and-forward type apps for dodgy/intermittent/slow networks in a more global way.
VE9MDB
server for authenticated internet access
I'm using Untangle to filter and give access to some stations only ...   with the captive portal and the firewall rules, you can basically decide where any clients can connect to and where it can go. ;)

You don't need the full version of untangle ... the demo have enough options and it have a fully functional firewall.

73
Matt - VE9MDB
K7DXS
PLEASE don't do this
If there is a second mesh gateway, but you're closer in the mesh, somebody who isn't authenticated to you can't access the Internet at all because it doesn't realize you're using a captive portal, so it just directs them to you. If you use mesh gateway don't restrict it in any way except possibly for part 97 compliance.
kk6fut
Import/export
Some further browsing of the docs finds that they've already developed a protocol for being able to upload data collected in a local instance of this tool (i.e. on your mesh RPi), to Google or other instances of the tool (i.e. at your local Red Cross). There's even a provision for an stream of data (ATOM/XML) for a feed. A mesh-appropriat enhancement would be a MeshChat-like store-and-forward application to forward updates from multiple instances on a loosely connected mesh and synchronize data.

https://github.com/google/personfinder/wiki/DataAPI

I suspect someone familiar with Python could throw this onto a RPi and have it running fairly quickly.
kb5zvp
K5DLQ: Those are some great
K5DLQ: Those are some great suggestions, and that's why I ask!

I'm a little familiar with the "spin" concepts of Fedora (what I run at the house) - where you can package the OS with the applications for a custom distribution.  I assume it would be relatively simple to create such an animal for Debian/Raspbian??

So, maybe this could spawn a separate discussion/thread, but what would be the most popular/useful utilities to include in such a RPI?

 
K5DLQ
K5DLQ's picture
feel free to start a separate
feel free to start a separate thread. 
fyi: 
https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=41520
 
kk6fut
Test install - not too bad on Ubuntu, but Raspian?
I did a quick install of this, not on RaspberryPi, but an Ubuntu install. The PersonFinder stuff is fairly easy to install if you follow the directions. I have an instance running on our mesh at:

http://kk6fut-nb2-one.local.mesh:8000/aredntest

If I read it correctly, Google AppEngine is around 193MB, the PersonFinder code around 306MB...  The Google AppEngine stuff is a development server which simulates the cloud Google AppEngine environment, but on a local server. Not sure on the resources it would require -- I think a higher Pi B+ and plenty of flash drive space would be useful for that, it's in Python so a high level language not optimized for speed.

It's an exercise for someone to install on RPi and see how it performs. (seeing as my current RPi is a Pi 1, running APRS traffic... with only a minimum 4GB flash.. not gonna happen here soon!).

On the upside, it's all 100% Python code, so should run on RPi no problem if resources are not an issue.

Ben
KK6FUT
 
kb5zvp
Good news!
Ben,

Awesome!  I've got an RPi 2 laying around here somewhere.  As soon as I get rid of this pesky requirement to generate $'s, I'll see if I cant find it, load up a fresh distro on a bigger card, and see if I can't get it up and running as well.  And if that doesn't work, I'll see about getting my hands on a RPi 3 - which I've wanted a reason to procure anyway!

Scott
KB5ZVP



 
kb5zvp
Well, it does run on a Raspberry Pi
So, I took some time this afternoon and get the dev environment set up, and running on a Raspberri Pi, locally :/

It does run!  It's not blazingly fast, and as I'm not an expert at all the server setup stuff I can only access it locally (ie //localhost:8000/, and not across my network, which is probably just my configuration?  At this point maybe I've outstretched my knowledge base and need to grow that?  Help??

Scott
KB5ZVP
kk6fut
You need to specify the host
You need to specify the host in your configuration to be your node's IP address (versus localhost). I think there's a --host flag somewhere.
My run command:
nohup tools/gae run app --port=8000 --host=192.168.1.12 &

I also agree it does not run blazingly fast (quite a slowpoke, actually). However, perhaps we can take the core of this and make it run more efficiently for a node (at least, support the backwards compatibility into whatever disaster systems standards there are). They have all the screens and data, maybe just some reimplementation in a faster and cleaner way would help.

I think the idea app would actually be:
1. A lot slimmer, code-wise (i.e. not rely on the cumbersome Google App Engine emulation). I'd vote MySQL (open, not proprietary, easy to implement) and PHP.
2. Mesh-aware and mesh-updating (i.e. allow multiple instances to run across a mesh, and auto-sync when mesh nodes come and go) -- allowing for different centers (for example, multiple Red Cross shelters) to immediately start populating data -even before a network is reliable or set up--and allow those records to merge when meshes are joined. I'd use a scheme similar to MeshChat (autodiscovery, autosync) -- someone should probably publish a low level mesh sync protocol which is optimized for AREDN or similar mesh networks -- peer-to-peer, latency tolerant, able to handle mesh joins and slow links, implement some store and forward support, etc. etc. --- if there isn't already one out there.
3. Support the export format and procedures (backwards compatibility) for the EMCOMM systems people are already using (ie. the PeopleFinder stuff and format they've published).

I think their framework is fine, but a slim, mesh-version port probably would be more desirable.

Ben
KK6FUT
K7DXS
Suggestion: Use Python
Suggestion: Use Python instead of PHP, as it's already required. Seems better to have fewer dependencies, especially as it may need to be on a node for the mesh-awareness.

BTW Does anyone know why this is the case for MeshChat? Seems like a better idea to just use a preconfigured multicast address unless I don't quite understand multicast (which is perfectly likely).
n0kfb
n0kfb's picture
Don't Reinvent The Wheel

What about checking with your served agency? The Red Cross (for one example) probably already has an app to do this. All we need to do is provide communication infrastructure. 

--Dan Meyer / n0kfb

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer