esphome_components icon indicating copy to clipboard operation
esphome_components copied to clipboard

[DRAFT] Add [pin] option for [sensor.seesaw] and type: encoder

Open lboue opened this issue 2 months ago • 0 comments

[DRAFT] to add [pin] option for [sensor.seesaw] and type: encoder

These are the pin names in the seesaw firmware for each rotary encoder coming from : Adafruit I2C Quad Rotary Encoder Breakout tutorial

The encoder A pin is towards the bottom of the board The encoder B pin is towards the top of the board

  • Encoder 0
    • Encoder A (anticlockwise): pin 8
    • Encoder B (clockwise): pin 9
  • Encoder 1
    • Encoder A (anticlockwise): pin 10
    • Encoder B (clockwise): pin 11
  • Encoder 2
    • Encoder A (anticlockwise): pin 2
    • Encoder B (clockwise): pin 3
  • Encoder 3
    • Encoder A (anticlockwise): pin 4
    • Encoder B (clockwise): pin 5

Config

external_components:
  - source:
      type: git
      #url: https://github.com/ssieb/custom_components
      url: https://github.com/lboue/af_seesaw
      ref: set_pin
    refresh: 0s
    components: [ seesaw ]

i2c:
  sda: 26
  scl: 32
  scan: true
  id: bus_i2c

seesaw:

sensor:
    # https://github.com/lboue/af_seesaw/blob/set_pin/components/seesaw/sensor/__init__.py
  - platform: seesaw
    id: encoder0
    type: encoder
    number: 0
    pin: 8
    name: "Seesaw encoder #0"
    min_value: 0
    max_value: 255

  - platform: seesaw
    id: encoder1
    type: encoder
    number: 1
    pin: 10
    name: "Seesaw encoder #1"
    min_value: 0
    max_value: 255

  - platform: seesaw
    id: encoder2
    type: encoder
    number: 2
    pin: 2
    name: "Seesaw encoder #2"
    min_value: 0
    max_value: 255

  - platform: seesaw
    id: encoder3
    number: 3
    type: encoder
    pin: 4
    name: "Seesaw encoder #3"
    min_value: 0
    max_value: 255

Regular boot log without pin specified

[I][i2c.arduino:096]: Results from i2c bus scan:
[I][i2c.arduino:102]: Found i2c device at address 0x49
[C][seesaw:054]: Seesaw module:
[C][seesaw:055]:   Address: 0x49
[C][seesaw:058]:   CPU: ATtiny817
[C][seesaw:062]:   Version: 377019159
[C][seesaw:063]:   Options:
[C][seesaw:065]:     GPIO
[C][seesaw:067]:     Serial
[C][seesaw:069]:     Timer
[C][seesaw:071]:     ADC
[C][seesaw:075]:     Interrupt
[C][seesaw:077]:     DAP
[C][seesaw:081]:     NeoPixel
[C][seesaw:083]:     Touch
[C][seesaw.binary_sensor:017]: Seesaw Binary Sensor 'Seesaw encoder button #0'
[C][seesaw.binary_sensor:018]:   Pin: 12
[C][seesaw.binary_sensor:017]: Seesaw Binary Sensor 'Seesaw encoder button #1'
[C][seesaw.binary_sensor:018]:   Pin: 14
[C][seesaw.binary_sensor:017]: Seesaw Binary Sensor 'Seesaw encoder button #2'
[C][seesaw.binary_sensor:018]:   Pin: 17
[C][seesaw.binary_sensor:017]: Seesaw Binary Sensor 'Seesaw encoder button #3'
[C][seesaw.binary_sensor:018]:   Pin: 9

Boot log with pin specified enabled

[I][i2c.arduino:218]: Performing I2C bus recovery
[C][seesaw:035]: Setting up Seesaw...
[  1092][E][Wire.cpp:513] requestFrom(): i2cRead returned Error 263
[C][light:035]: Setting up light 'Seesaw neopixel'...
[D][light:036]: 'Seesaw neopixel' Setting:
[D][light:041]:   Color mode: RGB
[D][light:085]:   Transition length: 1.0s
[C][seesaw.encoder:010]: Setting up Seesaw rotary encoder 0 ...
[D][sensor:094]: 'Seesaw encoder 0': Sending state 0.00000 steps with 0 decimals of accuracy
[C][seesaw.encoder:010]: Setting up Seesaw rotary encoder 1 ...
[D][sensor:094]: 'Seesaw encoder 1': Sending state 0.00000 steps with 0 decimals of accuracy
[C][seesaw.encoder:010]: Setting up Seesaw rotary encoder 2 ...
[D][sensor:094]: 'Seesaw encoder 2': Sending state 0.00000 steps with 0 decimals of accuracy
[C][seesaw.encoder:010]: Setting up Seesaw rotary encoder 3 ...
[D][sensor:094]: 'Seesaw encoder 3': Sending state 0.00000 steps with 0 decimals of accuracy
...
[I][i2c.arduino:102]: Found i2c device at address 0x49
[C][seesaw:054]: Seesaw module:
[C][seesaw:055]:   Address: 0x49
[C][seesaw:058]:   CPU: ATtiny817
[C][seesaw:062]:   Version: 377019159
[C][seesaw:063]:   Options:
[C][seesaw:065]:     GPIO
[C][seesaw:067]:     Serial
[C][seesaw:069]:     Timer
[C][seesaw:071]:     ADC
[C][seesaw:075]:     Interrupt
[C][seesaw:077]:     DAP
[C][seesaw:081]:     NeoPixel
[C][seesaw:083]:     Touch
[C][:016]: Seesaw Encoder Sensor
[C][seesaw.encoder:017]:   Pin: 8
[C][:016]: Seesaw Encoder Sensor
[C][seesaw.encoder:017]:   Pin: 10
[C][:016]: Seesaw Encoder Sensor
[C][seesaw.encoder:017]:   Pin: 2
[C][:016]: Seesaw Encoder Sensor
[C][seesaw.encoder:017]:   Pin: 4

lboue avatar Apr 16 '24 11:04 lboue