{"id":22744249,"url":"https://github.com/vrince/rpi-thermo-chick","last_synced_at":"2026-04-14T03:32:59.427Z","repository":{"id":57462863,"uuid":"426843114","full_name":"vrince/rpi-thermo-chick","owner":"vrince","description":"raspberry-pi chicken thermostat 🐔🔥","archived":false,"fork":false,"pushed_at":"2023-11-06T00:31:07.000Z","size":314,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-11T21:57:25.417Z","etag":null,"topics":["1wire","chicken","ds18b20","fastapi","gpio","rapsberrypi","raspberry-pi","thermostat","vuejs"],"latest_commit_sha":null,"homepage":"","language":"Python","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/vrince.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-11T02:18:18.000Z","updated_at":"2023-11-07T12:58:36.000Z","dependencies_parsed_at":"2024-12-11T01:51:30.445Z","dependency_job_id":null,"html_url":"https://github.com/vrince/rpi-thermo-chick","commit_stats":{"total_commits":34,"total_committers":1,"mean_commits":34.0,"dds":0.0,"last_synced_commit":"1a7052e3fc6318797c1f3f0795603e970d82aa56"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/vrince/rpi-thermo-chick","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrince%2Frpi-thermo-chick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrince%2Frpi-thermo-chick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrince%2Frpi-thermo-chick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrince%2Frpi-thermo-chick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vrince","download_url":"https://codeload.github.com/vrince/rpi-thermo-chick/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrince%2Frpi-thermo-chick/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31781292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["1wire","chicken","ds18b20","fastapi","gpio","rapsberrypi","raspberry-pi","thermostat","vuejs"],"created_at":"2024-12-11T01:41:23.108Z","updated_at":"2026-04-14T03:32:59.413Z","avatar_url":"https://github.com/vrince.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rpi-thermo-chick 🐔🔥\n\nRapsberry-pi Thermostat for chicken.\n\n![](https://github.com/vrince/rpi-thermo-chick/raw/master/media/rpi-thermo-chick.png)\n\nBackend python 3 - fastapi / frontend vuejs - vuetify\n\n[![PyPI version](https://badge.fury.io/py/rpi-thermo-chick.svg)](https://badge.fury.io/py/rpi-thermo-chick) ![](https://badgen.net/badge/license/MIT/blue) [![](https://badgen.net/badge/code/github/black?icon=github)](https://github.com/vrince/rpi-thermo-chick)\n\n\n## Hardware\n\n* Raspberry Pi (`zero` in that case, should work with all the other)\n* Temperature sensor `DS18B20` using `1-wire` ([example](https://www.adafruit.com/product/381))\n* Relay hat ([example](https://bc-robotics.com/shop/raspberry-pi-zero-relay-hat/))\n\n## OS preparation\n\nEnable `1-wire`:\n\nAdd following lines to your `/boot/config.txt`:\n\n```ini\n[all]\ndtoverlay=w1-gpio,gpiopin=3 \n# default pin is 4 but it enter in conflict with relay hat\n```\n\n## Install\n\nThis project is meant to run as a  service (see next section), but to give it a try you can instal it as a normal user (lets assume as `pi` default user).\n\n```bash\n# install from pip repository\npip install rpi-thermo-chick\n\n# create empty configuration file\nsudo pi-thermo-chick.service configure\n\n# edit configuration file (See configuration section)\nsudo nano /root/.config/rpi-thermo-chick/config.json\n```\n\n## Install as a service\n\nAll the following command are prefix by sudo cause the service will be run as a service (as root user).\n\n```bash\n# install from pip repository\nsudo pip install rpi-thermo-chick\n\n# create empty configuration file\nsudo pi-thermo-chick.service configure\n\n# edit configuration file (See configuration section)\nsudo nano /root/.config/rpi-thermo-chick/config.json\n\n# install service (register in systemd)\nsudo rpi-thermo-chick.service install\n\n# now enable(auto start) and start  the service\nsudo systemctl enable rpi-thermo-chick.service\nsudo systemctl start rpi-thermo-chick.service\n\n# check if the service is properly running\nsudo systemctl status rpi-thermo-chick.service\n```\n\nNow service should be running (open `http://\u003cpi-ip\u003e:8000/app` to check) and will start automatically with the pi.\n\n## Configuration\n\nYou have to configure 2 things, the pins you use for the relay and the device id of the thermometers.\n\nTo create default config file run:\n\n```bash\npi-thermo-chick.service configure\n```\n\nIt will create a config file in you current user configuration directory, edit that file (with `nano` or any other file editor).\n\nFor example if you user is `pi`, config file will be be `/home/pi/.config/rpi-thermo-chick/config.json`.\n\nConfiguration file content is a simple json and look like:\n\n```json\n{\n    \"relays\": [ \n        { \"pin\": 4 }, { \"pin\": 7 } ],\n    \"thermometers\": [ \n        { \"device\": \"28-3c01d0751fcd\", \"name\": \"inside\" }, { \"device\": \"28-3c01d075db96\", \"name\": \"outside\"  } ],\n    \"influxdb\": {\n        \"url\": \"http://localhost:8086\",\n        \"bucket\": \"bucket\",\n        \"org\": \"org\",\n        \"token\": \"\u003ctoken\u003e\"\n    }\n}\n```\n\n### Configure thermometers\n\nTo know your thermometer device id run the following command:\n\n```bash\nls /sys/bus/w1/devices | grep 28-*\n```\n\nIt will return something like:\n\n```\n28-3c01d0751fcd\n28-3c01d075db96\n```\n\nUpdate your configuration file with your own values. \n\n⚠️ **make sure the first thermometer is the inside thermometer that device will control the relay**.\n\n### Configure relays\n\nSimply update the config file with the physical gpio pins wired to the relays. \n\n⚠️ **make sure the first relays is the one controlling the load (second one is not used)**\n\n### Configure influxdb (optional)\n\nData history is stored in `influxdb` (2.x), to enable this feature pass a valid influxdb url/org/bucket/token in the config file.\n\nObviously the token must provide write permission so relays and temperature sensor data can be stored.\n\nSetup of influxdb is out of the scope of this project, please see https://hub.docker.com/_/influxdb or https://docs.influxdata.com/influxdb/v2.4/install/.\n\n## Development\n\n```bash\ngit clone https://github.com/vrince/rpi-thermo-chick.git\ncd rpi_thermo_chick\n\n# build and activate a virtual env (optional)\n\n# install in dev mode\npip install -e .\n\n# see configuration\nnano config.json\n\n# run it locally with the config you just created\nrpi-thermo-chick --config-file config.json --port 8000\n```\n\n* Open `http://\u003cpi-ip\u003e:8000/app` to see the `vuejs` app\n* Open `http://\u003cpi-ip\u003e:8000` to see current state json payload\n\nNote: replace `\u003cpi-ip\u003e` by you actual raspberry pi address, like `192.168.2.205`\n\n\u003e You can still run and develop on a machine that is not a rpi and that has nothing plug to it, temp dat will be random but everything will still work\n\n### API\n\nAs the API use `fast-api` the documentation of the API can be access at `http://\u003cpi-ip\u003e:8000/docs`\n\n## References\n\n* [1-wire](https://pinout.xyz/pinout/1_wire#)\n* [Adafruits ds18b20 (lesson 11)](https://learn.adafruit.com/adafruits-raspberry-pi-lesson-11-ds18b20-temperature-sensing)\n* [fastapi](https://fastapi.tiangolo.com/)\n* [vuejs](https://vuejs.org/)\n* [vuetifyjs](https://vuetifyjs.com/en/)\n* [influxdata](https://www.influxdata.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvrince%2Frpi-thermo-chick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvrince%2Frpi-thermo-chick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvrince%2Frpi-thermo-chick/lists"}