{"id":20885339,"url":"https://github.com/lab11/wearabouts","last_synced_at":"2025-05-12T19:30:55.440Z","repository":{"id":15426255,"uuid":"18158683","full_name":"lab11/wearabouts","owner":"lab11","description":"Semantic localization using fitbits","archived":false,"fork":false,"pushed_at":"2015-10-11T02:43:27.000Z","size":27579,"stargazers_count":5,"open_issues_count":5,"forks_count":1,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-04-14T04:45:10.002Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lab11.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-27T00:08:57.000Z","updated_at":"2024-04-14T04:45:10.003Z","dependencies_parsed_at":"2022-09-20T23:30:16.023Z","dependency_job_id":null,"html_url":"https://github.com/lab11/wearabouts","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fwearabouts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fwearabouts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fwearabouts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lab11%2Fwearabouts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lab11","download_url":"https://codeload.github.com/lab11/wearabouts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225148872,"owners_count":17428430,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T08:13:12.252Z","updated_at":"2024-11-18T08:13:12.753Z","avatar_url":"https://github.com/lab11.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"wearabouts\n===========\n\nSemantic heuristic localization\n\nRequires:\n * fitbit wireless sync dongle\n * people wearing fitbits\n\nAll fitbits need to be identified so people and fitbit IDs can be correlated\ndata is stored to and pulled from [GATD](https://github.com/lab11/gatd)\n\n\n## Fitbitfinder Installation steps\n1. Install galileo, a python utility for interacting with fitbits, and other python libraries\n    `sudo pip install galileo IPy socketIO-client`\n\n2. Modify usb permissions\n    `sudo cp 99-fitbit.rules /etc/udev/rules.d/99-fitbit.rules`\n\n3. Remove and re-insert Fitbit dongle\n\n4. Run fitbitfinder\n    `./fitbitfinder.py`\n\n## MacScanner Installation steps\n1. Install scapy python library\n    `cd /tmp`\n    `wget http://www.secdev.org/projects/scapy/files/scapy-latest.tar.gz`\n    `tar zxvf scapy-latest.tar.gz`\n    `cd scapy-2.*`\n    `sudo python setup.py install`\n\n2. Run macScanner\n    `sudo ./macScanner.py`\n\n\n## Weareabouts Installation steps\n1. Create a virtual environment\n    `sudo pip install virtualenv`\n    `virtualenv venv`\n\n2. Start the virtual environment\n    `source venv/bin/activate`\n\n3. Install IPy and socketIO-client to virtual environment\n    `pip install IPy socketIO-client`\n\n4. Replace init file from socketIO-client\n    `cp socketIO_client__init__.py venv/lib/python2.7/site-packages/socketIO_client/__init__.py`\n\n5. Run wearabouts\n    `./whereabouts.py`\n\n\n\nSwarmBox Wearabouts\n-------------------\n\nRunning Wearabouts in a local context requires:\n\n1. A central RabbitMQ server that handles queuing and distributing data\nbetween applications.\n\n    To set this up using Docker:\n\n        docker run -d -p 5672:5672 -p 15672:15672 tutum/rabbitmq\n\n    Then run:\n\n        docker ps\n\n    to get the container ID. Now to figure out the password that the RabbitMQ\n    admin user was assigned:\n\n        docker logs \u003ccontainer id\u003e\n\n    If you know the password:\n\n        docker run -d -p 5672:5672 -p 15672:15672 -e RABBITMQ_PASS=\"password\" tutum/rabbitmq\n\n\n    Now configure the RabbitMQ instance using the web interface:\n\n        http://host:15672\n\n    Add a new vhost, a user for that vhost, and add the admin user to the\n    vhost. Finally, we need to add a topic exchange to the vhost.\n\n\n2. A central Wearabouts instance that is making determinations about where\npeople are.\n\n3. Many BLE (and other) scanner applications that are looking for packets\nfrom devices.\n\n    For the node.js based scanner:\n\n        # Need BLE packages\n        sudo apt-get install bluetooth bluez-utils libbluetooth-dev\n\n        cd bleScannerHCI\n\n        # Setup the config paramters\n        # Need tiller\n        sudo gem install tiller\n        sudo tiller_json=\"$(cat ../config.json)\" tiller -n -b $PWD/tiller\n\n        npm install\n        sudo NOBLE_REPORT_ALL_HCI_EVENTS=1 node bleScanner.js\n\n    For the Python scanner (uses Nordic dongle):\n\n        cd bleScanner\n        tiller_json=\"$(cat ../config.json)\" tiller -n -b $PWD/tiller\n        sudo pip install pika socketIO-client\n        ./bleScanner.py\n\n        OR\n\n        sudo docker run --privileged -v /dev/ttyACM0:/dev/ttyACM0 -e tiller_json=\"$(cat config.json)\" -t lab11/wearabouts-ble-scanner-py\n\n\nTiller\n------\n\nTiller is a tool that helps with creating config files inside of Docker\ncontainers. It's a little tricky to pass config parameters and passwords\nto Docker containers because listing a ton of command line arguments is\nclunky and you can't add the specific config files to the container. Tiller,\nwhile a little clunky, allows you to pass a single JSON string as a command\nline argument to the docker run command which is handled by tiller inside\nof the docker container to create a config file. When the file has been\ngenerated Tiller then runs your original command.\n\nDocker\n------\n\nThere are Docker containers for some of the parts of this project. To build them:\n\n    sudo pip install sh\n    sudo ./build_docker.py\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flab11%2Fwearabouts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flab11%2Fwearabouts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flab11%2Fwearabouts/lists"}