{"id":24830031,"url":"https://github.com/vacovsky/pirrigo","last_synced_at":"2025-10-14T04:30:36.008Z","repository":{"id":45576633,"uuid":"81914746","full_name":"vacovsky/pirrigo","owner":"vacovsky","description":"Full-featured Raspberry Pi based irrigation controller and web application for scheduling.","archived":false,"fork":false,"pushed_at":"2024-10-19T06:43:20.000Z","size":250368,"stargazers_count":21,"open_issues_count":0,"forks_count":10,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-16T01:44:52.371Z","etag":null,"topics":["angularjs","demo","drought","garden","golang-application","gpio","irrigation","irrigation-system","pirri-irrigation","raspberry-pi","watering-plants","zone"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vacovsky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-14T06:50:23.000Z","updated_at":"2024-10-19T06:43:25.000Z","dependencies_parsed_at":"2022-08-28T11:41:59.411Z","dependency_job_id":null,"html_url":"https://github.com/vacovsky/pirrigo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vacovsky%2Fpirrigo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vacovsky%2Fpirrigo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vacovsky%2Fpirrigo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vacovsky%2Fpirrigo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vacovsky","download_url":"https://codeload.github.com/vacovsky/pirrigo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236441994,"owners_count":19149328,"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":["angularjs","demo","drought","garden","golang-application","gpio","irrigation","irrigation-system","pirri-irrigation","raspberry-pi","watering-plants","zone"],"created_at":"2025-01-30T23:48:39.733Z","updated_at":"2025-10-14T04:30:29.526Z","avatar_url":"https://github.com/vacovsky.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PirriGo\nIrrigation and garden management application, in Go and Angular 13.  Based on \u003ca href=\"https://github.com/vacoj/pirri\"\u003ePirri\u003c/a\u003e.\n\n## Screenshots\n\n### Zones\n\n\u003ca href=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/newui/zones.png\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/newui/zones.JPG\" alt=\"Stations\" height=\"500\"\u003e\u003c/a\u003e\n\n### Calendar\n\n\u003ca href=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/newui/calendar.JPG\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/newui/calendar.JPG\" alt=\"Calendar\"  height=\"500\"\u003e\u003c/a\u003e\n\n### Station Scheduler\n\n\u003ca href=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/newui/scheduler.JPG\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/newui/scheduler.JPG\" alt=\"Scheduler\"  height=\"500\"\u003e\u003c/a\u003e\n\n### History of Activity\n\n\u003ca href=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/newui/history.JPG\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/newui/history.JPG\" alt=\"History\" height=\"500\"\u003e\u003c/a\u003e\n\n### Charted Run Stats\n\n\u003ca href=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/newui/analytics.JPG\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/newui/analytics.JPG\" alt=\"Run Stats\" height=\"500\"\u003e\u003c/a\u003e\n\n\n### Hardware\n\n\u003ca href=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/hardware.jpg\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/vacoj/pirrigo/master/screenshots/hardware.jpg\" alt=\"Hardware\" height=\"500\"\u003e\u003c/a\u003e\n\n## Features\n- Activate irrigation zones on a schedule, or manually\n- Track total seconds spent watering by zone, day of the week, and other metrics\n- Estimate monthly costs to operate your irrigation system\n- Using WeatherUnderground, leverage current weather data to automatically regulate watering (increase in heat waves, reduce when rain will do the job for you)\n\n## Setup\n\n### Clone repository to your Pi\n\n```bash\ngit clone https://github.com/vacoj/pirrigo.git\n```\n\n### Installing Go in Raspbian\n\n```bash\nwget https://storage.googleapis.com/golang/go1.7.linux-armv6l.tar.gz\nsudo tar -C /usr/local -xzf go1.7.linux-armv6l.tar.gz\nexport PATH=/usr/local/go/bin:$PATH\n```\n\n### Install required Go packages\n\n```bash\ngo get \"github.com/davecgh/go-spew/spew\"\ngo get \"github.com/jinzhu/gorm\"\ngo get \"github.com/jinzhu/gorm/dialects/mysql\"\ngo get \"github.com/newrelic/go-agent\"\ngo get \"github.com/stianeikeland/go-rpio\"\ngo get \"github.com/streadway/amqp\"\ngo get \"go.uber.org/zap\"\n```\n\n### Install javascript libraries for web\n\n```bash\ncd pirrigo/src/pirri-spa\nnpm install\n```\n\n### Setting up SQL for testing\n\n```bash\nThis application no longer supports MySQL.  Now it uses SQLite3\n```\n\n### Configuration file ([example](https://github.com/vacoj/pirrigo/blob/master/init/appconfig.json\"\u003eexample\u003c/a\u003e))\n\n```javascript\n{\n    \"pirri\": {\n        \"welcome_message\":\"L/P is demo/demo\",\n        \"utc_offset\": -8,\n        \"monitor_interval\": 60,\n        \"rain_skip\": true,\n        \"use_rabbit\": false,\n        \"date_format\": \"2006-01-02 15:04:05\"\n    },\n    \"rabbitmq\": {\n        \"server\": \"192.168.111.50\",\n        \"port\": \"5672\",\n        \"user\": \"rabbit\",\n        \"secret\": \"bunnyrabbit!!\",\n        \"task_queue\": \"pirri_go_work_dev\"\n    },\n    \"sql\": {\n        \"dbtype\": \"mysql\",\n        \"server\": \"localhost\",\n        \"user\": \"pirritesting\",\n        \"secret\": \"pirritesting\",\n        \"db\": \"pirritesting\",\n        \"port\": \"3306\"\n    },\n    \"newrelic\": {\n        \"active\": false,\n        \"license_path\": \"../../../nr_key\"\n    },\n    \"redis\": {\n        \"host\": \"localhost\",\n        \"port\": \"6379\"\n    },\n    \"web\": {\n        \"port\": \"8001\",\n        \"user\": \"demo\",\n        \"secret\": \"demo\"\n    },\n    \"weather\": {\n        \"wunderground_key\": \"\",\n        \"state_abbreviation\": \"CA\",\n        \"city\": \"Atascadero\",\n        \"units\": \"imperial\",\n        \"station\": \"KCAATASC69\"\n    },\n    \"debug\": {\n        \"pirri\": true,\n        \"gorm\": false,\n        \"settings\": false,\n        \"simulate_gpio\": true,\n        \"log_path\": \"pirrigo.log\"\n    }\n}\n```\n\n\n### Running app\n\n```bash\ncd pirrigo/src/pirri\n./pirri /path/to/config.json\n```\n\n## Notes\n\n#### TODO\n\n- Provide hardware assembly instructions\n- Better automate initial stand-up and configuration of service.\n- Finish making the front end less offensive.\n- Make the calendar interactive (like in the original version, but prettier and more functional)\n\n#### Manual submission of a station run with curl \n\n(when not using authentication)\n\n``` bash\ncurl -X POST -d \"{\\\"StationID\\\": 2, \\\"Duration\\\": 60}\" http://localhost:8001/station/run\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvacovsky%2Fpirrigo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvacovsky%2Fpirrigo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvacovsky%2Fpirrigo/lists"}