home-assistant.io/source/_components/seven_segments.markdown
Franck Nijhof c464056402
Making our website faster, cleaner and prettier (#9853)
* 🔥 Removes octopress.js

* 🔥 Removes use of root_url var

* 🔥 Removes Octopress generator reference from feed

* 🔥 Removes delicious support

* 🔥 Removes support for Pinboard

* 🔥 Removes support for Disqus

* 🔥 Removes support for Google Plus

* ↩️ Migrate custom after_footer to default template

* ↩️ Migrate custom footer to default template

* ↩️ Migrate custom header to default template

* 🔥 Removes unused template files

* 🚀 Places time to read directly in post template

* 🚀 Removes unneeded capture from archive_post.html template

* 🔥 🚀 Removes unused, but heaving sorting call in component page

* 🚀 Merged javascripts into a single file

* 🔥 Removes more uses of root_url

* 🚀 Removal of unneeded captures from head

* 🔥 🚀 Removal of expensive liquid HTML compressor

* 🔥 Removes unneeded templates

* 🚀 Replaces kramdown with GitHub's CommonMark 🚀

* 💄 Adds Prism code syntax highlighting

*  Adds support for redirect in Netlify

* ↩️ 🔥 Let Netlify handle all developer doc redirects

* ✏️ Fixes typo in redirects file: Netify -> Netlify

* 🔥 Removes unused .themes folder

* 🔥 Removes unused aside.html template

* 🔥 Removes Disqus config leftover

* 🔥 Removes rouge highlighter config

* 🔥 Removes Octopress 🎉

* 💄 Adjust code block font size and adds soft wraps

* 💄 Adds styling for inline code blocks

* 💄 Improve styling of note/warning/info boxes + div support

* 🔨 Rewrites all note/warning/info boxes
2019-07-15 22:17:54 +02:00

4.0 KiB

title, description, logo, ha_category, ha_release, og_image, ha_iot_class, redirect_from
title description logo ha_category ha_release og_image ha_iot_class redirect_from
Seven segments display Instructions on how to use OCR for seven segments displays into Home Assistant. home-assistant.png
Image Processing
0.45 /images/screenshots/ssocr.png Local Polling
/components/image_processing.seven_segments/

The seven_segments image processing platform allows you to read physical seven segments displays through Home Assistant. ssocr is used to extract the value shown on the display which is observed by a camera.

If you are using Hass.io then just move forward to the configuration as all requirements are already fulfilled.

ssocr needs to be available on your system. Check the installation instruction below:

$ sudo dnf -y install imlib2-devel # Fedora
$ sudo apt install libimlib2-dev # Ubuntu
$ brew install imlib2 # macOS
$ git clone https://github.com/auerswal/ssocr.git
$ cd ssocr
$ make
$ sudo make PREFIX=/usr install # On most systems
$ make deb # (Optional) This allows you to make a deb so that you apt is aware of ssocr

To enable the OCR of a seven segment display in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
image_processing:
  - platform: seven_segments
    source:
      - entity_id: camera.seven_segments

{% configuration %} ssocr_bin: description: The command line tool ssocr. Set it if you use a different name for the executable. required: false default: ssocr type: string x_position: description: X coordinate of the upper left corner of the area to crop. required: false default: 0 type: integer y_position: description: Y coordinate of the upper left corner of the area to crop. required: false default: 0 type: integer height: description: Height of the area to crop. required: false default: 0 type: integer width: description: Width of the area to crop. required: false default: 0 type: integer rotate: description: Rotation of the image. required: false default: 0 type: integer threshold: description: Threshold for the difference between the digits and the background. required: false default: 0 type: integer digits: description: Number of digits in the display. required: false default: -1 type: integer extra_arguments: description: Other arguments to use. Like -D, dilation, erosion, greyscale, make_mono, etc. required: false type: string source: description: List of image sources. required: true type: list keys: entity_id: description: A camera entity id to get picture from. required: true type: string name: description: This parameter allows you to override the name of your image_processing entity. required: false type: string {% endconfiguration %}

Setup process

It's suggested that the first attempt to determine the needed parameters is using ssocr directly. This may require a couple of iterations to get the result

$ ssocr -D erosion crop 390 250 490 280 -t 20 -d 4 seven-seg.png

This would lead to the following entry for the configuration.yaml file:

camera:
  - platform: local_file
    file_path: /home/homeassistant/.homeassistant/seven-seg.png
    name: seven_segments
image_processing:
  - platform: seven_segments
    x_position: 390
    y_position: 250
    height: 280
    width: 490
    threshold: 20
    digits: 4
    source:
      - entity_id: camera.seven_segments

With the help of a template sensor, the value can be shown as badge.

{% raw %}

sensor:
  - platform: template
    sensors:
      power_meter:
        value_template: '{{ states('image_processing.sevensegment_ocr_seven_segments') }}'
        friendly_name: 'Ampere'
        unit_of_measurement: 'A'

{% endraw %}