{"id":50372786,"url":"https://github.com/bangertech/pick-n-light-old","last_synced_at":"2026-05-30T08:03:16.216Z","repository":{"id":268396600,"uuid":"904102350","full_name":"BangerTech/pick-n-light-old","owner":"BangerTech","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-19T17:47:03.000Z","size":122,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-17T12:32:48.560Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BangerTech.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,"zenodo":null}},"created_at":"2024-12-16T09:01:44.000Z","updated_at":"2026-05-17T06:21:09.000Z","dependencies_parsed_at":"2024-12-16T14:31:09.290Z","dependency_job_id":"2ee621ad-05e0-4fbd-b7f7-2c52f722e424","html_url":"https://github.com/BangerTech/pick-n-light-old","commit_stats":null,"previous_names":["bangertech/pick-n-light"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BangerTech/pick-n-light-old","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BangerTech%2Fpick-n-light-old","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BangerTech%2Fpick-n-light-old/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BangerTech%2Fpick-n-light-old/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BangerTech%2Fpick-n-light-old/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BangerTech","download_url":"https://codeload.github.com/BangerTech/pick-n-light-old/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BangerTech%2Fpick-n-light-old/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33684419,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-05-30T08:03:13.688Z","updated_at":"2026-05-30T08:03:16.207Z","avatar_url":"https://github.com/BangerTech.png","language":null,"funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=FD26FHKRWS3US","https://pics.paypal.com/00/s/N2EwMzk4NzUtOTQ4Yy00Yjc4LWIwYmUtMTA3MWExNWIzYzMz/file.PNG"],"categories":[],"sub_categories":[],"readme":"# Pick´n´Light\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/user-attachments/assets/0564ff97-ed78-40d9-92aa-f16844954e25\" alt=\"Bildschirmfoto 2024-12-16 um 09 18 44\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg width=\"400\" alt=\"Bildschirmfoto 2024-12-19 um 17 05 08\" src=\"https://github.com/user-attachments/assets/733f8e33-b7e7-4d53-9e51-0aaddd43e984\"\u003e\n\u003c/div\u003e\n\n\n# 1. Table of content\n- [1. Table of content](#1-table-of-content)\n- [2. What is this?](#2-what-is-this)\n- [3. Setup \u0026 Requirements](#3-setup--requirements)\n- [4. How to use it?](#4-how-to-use-it)\n- [5. Support / Feedback](#5-support--feedback)\n- [6. How to contribute?](#6-how-to-contribute)\n- [7. Sponsor me!](#7-how-to-sponsor)\n\n# 2. What is this?\n\nThis Node-RED and Part-DB based tool is a sophisticated inventory management system that integrates with LED strips to create a \"Pick and Light\" solution. It's designed to streamline inventory tracking and item location in warehouses or storage facilities.\n\n### Key Features\n\n1. **LED-Guided Picking**: The system uses LED strips to visually indicate the location of items in storage.\n\n2. **Real-Time Inventory Tracking**: It maintains up-to-date information on item locations and quantities.\n\n3. **User Interface**: A dashboard allows users to input and retrieve inventory data easily.\n\n4. **Database Integration**: Connects to a MySQL database for persistent storage of inventory information.\n\n5. **MQTT Communication**: Utilizes MQTT for real-time updates and control of the LED system.\n\n6. **HTTP API**: Provides endpoints for external systems to interact with the inventory data.\n\n### How It Works\n\n1. **Item Lookup**: When a user searches for an item, the system queries the database for its location.\n\n2. **Visual Indication**: The corresponding LED strip segment lights up, guiding the user to the correct shelf or bin.\n\n3. **Automatic Shutdown**: LEDs turn off automatically after a set period to conserve energy.\n\n4. **Data Collection**: The system collects and stores information about each pick operation.\n\n5. **Flexible Configuration**: Users can adjust LED strip length and shelf width through the dashboard.\n\n### Use Cases\n\n- **Warehouse Management**: Speeds up order picking and reduces errors in large warehouses.\n- **Retail Stockrooms**: Helps staff quickly locate items for restocking or customer requests.\n- **Manufacturing**: Assists in locating parts or components in assembly lines.\n- **Libraries**: Aids in finding books or resources in large collections.\n\n### Benefits\n\n- **Increased Efficiency**: Reduces time spent searching for items.\n- **Error Reduction**: Minimizes picking errors by providing visual guidance.\n- **Scalability**: Can be adapted to various storage layouts and sizes.\n- **Integration**: Easily integrates with existing inventory management systems.\n\nThis tool combines hardware (LED strips) with software (Node-RED flows) to create a powerful, user-friendly inventory management solution that can significantly improve operational efficiency in various storage and retrieval scenarios.\n\nLinks:\nPart-DB - https://github.com/Part-DB/Part-DB-server  \nNode-Red - https://nodered.org  \nViolentMonkey - https://violentmonkey.github.io  \n\n# 3. Setup \u0026 Requirements\n- ViolentMonkey Browser Extension\n- Docker and Docker Compose installed\n- MQTT Broker\n- If you want to use a Reverse Proxy like i do with Traefik it should be up and running\n- create a new Subdomain for example parts.yourwebsite.com\n- ESP32 or ESP8266 (https://amzn.to/41AD0Oo) with WLED installed\n- WS2812B LED Strip (https://amzn.to/49HctAZ)\n- Part Magazine (https://amzn.to/4gi3Gbj)\n\n# 4. How to use it?\n\n1. Create and Run Node-Red Container with the provided docker-compose.yml file (change the reverse proxy setup)\n\n2. Import Node-Red Flows and adapt them to your system (mqtt settings etc.)\n\n3. Create Part-DB Container with the provided docker-compose.yml file \n\n4. Adapt the environment Variables accordingly\n\n5. First start the Container with the Default Database:\n   - DATABASE_URL=sqlite:///%kernel.project_dir%/var/db/app.db\n\n6. Create and Run MariaDB Container with the provided docker-compose.yml file\n\n7. Jump into the Container with:\n   ```\n   docker exec -it mariadb mariadb -u root -p\n   ```\n\n8. Create and use Database partdb:\n   ```sql\n   CREATE DATABASE IF NOT EXISTS partdb;\n   USE partdb;\n   ```\n\n9. Create new Table:\n   ```sql\n   CREATE TABLE IF NOT EXISTS led_mapping (\n   part_id INT PRIMARY KEY,\n   led_position INT NOT NULL,\n   UNIQUE (led_position)\n   );\n   ```\n\n10. Proof:\n    ```sql\n    SHOW TABLES;\n    DESCRIBE parts;\n    DESCRIBE led_mapping;\n    SHOW TRIGGERS;\n    ```\n\n11. Exit Container with: `exit`\n\n12. Import the two Triggers with the provided Trigger.sql files\n\n13. Stop the PartDB Container\n\n14. Change the PartDB docker-compose.yml and update the Database_URL to:\n    - DATABASE_URL=mysql://partdb:root@mariadb:3306/partdb\n\n15. Start the PartDB Container\n\n16. Jump into Container and migrate the Database:\n    ```\n    docker exec --user=www-data partdb php bin/console doctrine:migrations:migrate\n    ```\n\n17. Install the ViolentMonkey Browser extension\n\n18. Import the ViolentMonkey scripts from the provided file\n\n19. HAVE FUN SORTING THINGS\n\n\n\n# 5. Support / Feedback\nAny bugs? Feature request? Message me [here](https://github.com/bangertech) or click on the \"Issues\" tab here on the GitHub repository!\n\n# 6. How to contribute?\n\nFork the repository and create PR's.\n\n# 7 How to sponsor?\n\n\n\u003ca href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=FD26FHKRWS3US\" target=\"_blank\"\u003e\u003cimg src=\"https://pics.paypal.com/00/s/N2EwMzk4NzUtOTQ4Yy00Yjc4LWIwYmUtMTA3MWExNWIzYzMz/file.PNG\" alt=\"SUPPORT\" height=\"51\"\u003e\u003c/a\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbangertech%2Fpick-n-light-old","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbangertech%2Fpick-n-light-old","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbangertech%2Fpick-n-light-old/lists"}