GithubHelp home page GithubHelp logo

barcode-scanner-for-esphome's Introduction

barcode-scanner-for-esphome

git-thumb

Der Barcode-Scanner für ESPHome ist dafür gedacht, bequem Einträge auf der Einkaufsliste in Home Assistant einzutragen, ohne extra die App oder den Browser starten, und dort etwas eingeben zu müssen. Natürlich lassen sich die Daten auch für jeden anderen Einsatzzweck nutzen. Hier sind eurer Fantasie keine Grenzen gesetzt.

Zu jedem gescannten Produkt wird anhand der EAN versucht, den Hersteller und Produktnamen zu ermitteln und diese über Sensoren zurückzuliefern, sofern entsprechende Daten aus den Datenbanken von OpenFoodFacts oder OpengtinDB ermittelt werden konnten.

Ein ausführliches Video zum Projekt findet Ihr auf YouTube:

 

Verwendete APIs

OpenFoodFacts

Zuerst wird immer OpenFoodFacts gefragt.
Diese Datenbank bezieht sich rein auf Lebensmittel, liefert da aber die besseren Ergebnisse.
Das beste an dieser API ist, dass sie vollkommen kostenlos nutzbar ist.

OpengtinDB

Für die Verwendung der OpentinDB benötigt Ihr eine eigene QueryID.
Ansonsten wird die öffentliche Demo-ID verwendet. Das heist Ihr teilt euch die 500 Abfragen/Tag mit allen anderen Nutzern.
Alle Informationen zur QueryID findet Ihr unter opengtindb.org/userid.php

Benötigte Bauteile

D1 Mini-ESP32: https://amzn.to/3kLEt1s *
Barcode Scanner GM60: https://amzn.to/3mq6vA2 *
Active Piezo Buzzer: https://amzn.to/3Zps3eM *
0,96" OLED Display: https://amzn.to/3kH2Ld7 *

Platine

Die Platine könnt Ihr wie immer bei PCBWay bestellen.
image https://www.pcbway.com/project/shareproject/Barcode_scanner_made_for_ESPHome_bb9bba9a.html

Installation

  • ESP mit USB verbinden
  • Installieren über Web-Installer
  • WLAN Daten über Web-Installer setzen
  • Gerät in Home Assistant adoptieren
  • Generierten Code um Substitutions anpassen
  • arial.ttf in /HomeAssistant/esphome/_fonts/ ablegen
  • Über ESPHome flashen
  • In Home Assistant als Integration hinzufügen (Einstellungen - Geräte)

Den Web-Installer incl. Anleitung findet Ihr auf der Projektseite unter:
https://smarthomeyourself.de/home-assistant-einkaufsliste-ueber-barcode-scanner-fuellen-mit-esphome/

Mögliche Einstellungen (Substitutions)

Mit den folgenden optionalen Substitutions habt Ihr die Möglichkeit, die Standard-Konfiguration an Eure Bedürfnisse anzupassen.

substitutions:
  friendly_name: "Barcode Scanner"

  # Query ID für opentindb (https://opengtindb.org/api.php)
  rest_opentindb_queryid: "400000000"

  # I2C-Pins fürs Display
  display_i2c_sda: GPIO21
  display_i2c_scl: GPIO22

  # I2C-Adresse des OLED Displays
  ssd1306_i2c_address: "0x3C"

  # UART-Pins für den Barcode-Scanner
  uart_tx_pin: GPIO09
  uart_rx_pin: GPIO10

  # Pin des Buzzer/Beeper
  beeper_pin: GPIO16

 

Dienste

esphome.[YOUR_DEVICENAME]_request_ean

Über diesen Dienst lässt sich die gleiche Anfrage auslösen, wie wenn ein Barcode über den Scanner gescannt wird.
Wird der Code von den APIs erkannt, werden Hersteller und Produktname genau wie beim echten scan über die Sensoren zurückgeliefert.

Parameter

Parameter Beschreibung
eancode EAN/GTIN nach der gesucht werden soll

Beispiel:

service: esphome.bcs_request_ean
data:
  eancode: "40084060"

* Bei allen Amazon Links handelt es sich um Affiliate-Links. Heißt für jeden Kauf über die Links erhalte ich eine kleine Provision. Ihr bezahlt natürlich weiterhin den selben Preis wie sonst auch. Vielen Dank für eure Unterstützung!

barcode-scanner-for-esphome's People

Contributors

danielscheidler avatar earwiged avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.