Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] SSD1306 OLED Display Support in V3 #126

Open
lukas-holzner opened this issue Nov 15, 2023 · 0 comments
Open

[Feature Request] SSD1306 OLED Display Support in V3 #126

lukas-holzner opened this issue Nov 15, 2023 · 0 comments
Assignees
Labels
feature request Add new features
Milestone

Comments

@lukas-holzner
Copy link
Contributor

Category

  • [ x ] Hardware / PCB
  • [ x ] Software / ESPHome

Whats your idea?
I played around with these small and inexpensive OLED Displays (https://esphome.io/components/display/ssd1306) and thought they might be a great addition to AIOSense. I think it would be great to see some of the values of the sensors directly on the AIO Sense without having to set up extra devices with screens.

Some things you could display on the display

  • Temperature, Humidity, Pressure,
  • Voice Assistant Answers for deaf people
  • Notifications from Homeassistant
  • Weather
  • RSS Feeds (Scrolling text)
  • Occupancy status
  • House Alarm status (Armed or not armed)

Here is a Picture of the screen showing Sensor Values from ESP Home
IMG_20231115_121508

I know space is tight on the board. Maybe we can squeeze it onto the IO extensions and release an additional case Verison that can handle the screen on the bottom. That way we don't have to make the PCB bigger.
IMG_20231115_151205

This is the test code for the display i used:

font:
  # gfonts://family[@weight]
  - file: "gfonts://Roboto"
    id: roboto
    size: 12
display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    reset_pin: D0
    address: 0x3C
    lambda: |-
      // %% - literal % sign
      it.printf(0, 0, id(roboto), "Temperature: %.1f°C", id(temperature).state);
      it.printf(0, 15, id(roboto), "Humidity: %.1f%%", id(humidity).state);
      it.printf(0, 30, id(roboto), "Pressure: %.1fhPa", id(pressure).state);

The Sensor code also needs to be modified to have an id
Example for the BME280

sensor:
  - platform: bme280
    id: bme280_sensor
    address: "${bmex80_address}"
    update_interval: "${bmex80_update_interval}"
    temperature:
      name: "Temperature"
      id: temperature
      filters:
        - offset: ${temperature_offset}
        - lambda: "return x + id(temperature_offset_ui).state;"
    humidity:
      name: "Humidity"
      id: humidity
      filters:
        - offset: ${humidity_offset}
        - lambda: "return x + id(humidity_offset_ui).state;"
    pressure:
      name: "Pressure"
      id: pressure
      filters:
        - offset: ${pressure_offset}
        - lambda: "return x + id(pressure_offset_ui).state;"
@lukas-holzner lukas-holzner added the feature request Add new features label Nov 15, 2023
@lukas-holzner lukas-holzner added this to the v3.0.0 milestone Nov 15, 2023
@lukas-holzner lukas-holzner changed the title SSD1306 OLED Display Support in V3 [Feature Request] SSD1306 OLED Display Support in V3 Nov 15, 2023
@Schluggi Schluggi moved this to 🚧 Tasks in AIOsense Development Nov 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Add new features
Projects
Status: 🚧 Tasks
Development

No branches or pull requests

2 participants