Home Assistant E-Ink Dashboard on the Inkplate 10

Overview

HomePlate

Home Assistant E-Ink Dashboard on the Inkplate 10

homeplate

Features

  • Display Home Assistant dashboards on a beautiful e-ink display
  • Display WiFi QR Codes for guests/friends to connect to home/guest wifi
  • Can display messages directly from Home Assistant over MQTT
  • Makes full use of the ESP32's cores with FreeRTOS
  • Reports sensor data to Home Assistant over MQTT (Temperature, Battery, WiFi, etc..)
  • Can change Activity displayed via MQTT Command (HASS dashboard, WiFi QR, Stats, text message, etc..)
  • Syncs RTC over NTP
  • Touch-pad buttons can start activities and wake from sleep
  • 1 month+ battery life!
  • Low battery warning displayed and sent over MQTT
  • OTA updates over WiFi
  • Partial screen updates in grayscale mode.
  • Power saving sleep mode.

Future Ideas

  • Incorporate WiFi Manager for settings
  • Display any image from MQTT Command
    • Web Comic mode?

Setup

Home Assistant Dashboard

Create a Home Assistant Dashboard you want to display. I recommend using the kiosk-mode, card-mod and layout-card plugins to customize and tune the dashboard for your display.

Setup sibbl's hass-lovelace-kindle-screensaver program to regularly screenshot the desired dashboards for the HomePlate.

Inkplate

Install PlatformIO. Then copy src/config_example.h to src/config.h and enter your settings, and build & run with:

pio run

The first flash/installation needs to be done over USB. Future updates can be done over USB or WiFi with:

pio run -e ota

To monitor serial output without re-flashing:

pio device monitor

Updating

git pull
platformio upgrade
platformio platform update
Comments
  • Scope Errors During PIO Run

    Scope Errors During PIO Run

    I get the following errors when I do PIO Run in VSCode:

    Compiling .pio/build/esp32/src/time.cpp.o src/image.cpp: In function 'bool hassImage()': src/image.cpp:23:42: error: 'IMAGE_URL' was not declared in this scope uint8_t buff = display.downloadFile(IMAGE_URL, &defaultLen); ^~~~~~~~~ src/info.cpp: In function 'void displayInfoScreen()': src/info.cpp:212:20: error: 'MQTT_HOST' was not declared in this scope display.printf(MQTT_HOST); ^~~~~~~~~ src/info.cpp:231:20: error: 'NTP_SERVER' was not declared in this scope display.printf(NTP_SERVER); ^~~~~~~~~~ src/info.cpp:231:20: note: suggested alternative: 'SNTP_SERVER_DNS' display.printf(NTP_SERVER); ^~~~~~~~~~ SNTP_SERVER_DNS *** [.pio/build/esp32/src/image.cpp.o] Error 1 *** [.pio/build/esp32/src/info.cpp.o] Error 1 src/main.cpp: In function 'void setup()': src/main.cpp:44:22: error: 'TOUCHPAD_ENABLE' was not declared in this scope if (sleepBoot && TOUCHPAD_ENABLE) ^~~~~~~~~~~~~~~ src/main.cpp:44:22: note: suggested alternative: 'TOUCH_PAD_MAX' if (sleepBoot && TOUCHPAD_ENABLE) ^~~~~~~~~~~~~~~ TOUCH_PAD_MAX src/input.cpp: In function 'void checkButtons(void)': src/input.cpp:51:13: error: 'TOUCHPAD_ENABLE' was not declared in this scope if (TOUCHPAD_ENABLE) ^~~~~~~~~~~~~~~ src/input.cpp:51:13: note: suggested alternative: 'TOUCH_PAD_MAX' if (TOUCHPAD_ENABLE) ^~~~~~~~~~~~~~~ TOUCH_PAD_MAX *** [.pio/build/esp32/src/main.cpp.o] Error 1 *** [.pio/build/esp32/src/input.cpp.o] Error 1 src/network.cpp: In function 'void keepWiFiAlive(void*)': src/network.cpp:63:26: error: 'HOSTNAME' was not declared in this scope WiFi.setHostname(HOSTNAME); // only works with DHCP.... ^~~~~~~~ src/network.cpp:63:26: note: suggested alternative: 'ESTALE' WiFi.setHostname(HOSTNAME); // only works with DHCP.... ^~~~~~~~ ESTALE src/network.cpp:64:20: error: 'WIFI_SSID' was not declared in this scope WiFi.begin(WIFI_SSID, WIFI_PASSWORD); ^~~~~~~~~ src/network.cpp:64:20: note: suggested alternative: 'WIFI_STA' WiFi.begin(WIFI_SSID, WIFI_PASSWORD); ^~~~~~~~~ WIFI_STA src/network.cpp:64:31: error: 'WIFI_PASSWORD' was not declared in this scope WiFi.begin(WIFI_SSID, WIFI_PASSWORD); ^~~~~~~~~~~~~ src/network.cpp:64:31: note: suggested alternative: 'WIFI_PS_NONE' WiFi.begin(WIFI_SSID, WIFI_PASSWORD); ^~~~~~~~~~~~~ WIFI_PS_NONE src/ota.cpp: In function 'void startOTATask()': src/ota.cpp:40:28: error: 'HOSTNAME' was not declared in this scope ArduinoOTA.setHostname(HOSTNAME); ^~~~~~~~ src/ota.cpp:40:28: note: suggested alternative: 'ESTALE' ArduinoOTA.setHostname(HOSTNAME); ^~~~~~~~ ESTALE src/qr.cpp: In function 'void displayWiFiQR()': src/qr.cpp:11:51: error: 'QR_WIFI_NAME' was not declared in this scope snprintf(buf, 1024, "WIFI:S:%s;T:WPA;P:%s;;", QR_WIFI_NAME, QR_WIFI_PASSWORD); ^~~~~~~~~~~~ src/qr.cpp:11:51: note: suggested alternative: 'WIFI_AP' snprintf(buf, 1024, "WIFI:S:%s;T:WPA;P:%s;;", QR_WIFI_NAME, QR_WIFI_PASSWORD); ^~~~~~~~~~~~ WIFI_AP src/qr.cpp:11:65: error: 'QR_WIFI_PASSWORD' was not declared in this scope snprintf(buf, 1024, "WIFI:S:%s;T:WPA;P:%s;;", QR_WIFI_NAME, QR_WIFI_PASSWORD); ^~~~~~~~~~~~~~~~ *** [.pio/build/esp32/src/network.cpp.o] Error 1 src/sleep.cpp: In function 'void gotoSleepNow()': src/sleep.cpp:31:9: error: 'TOUCHPAD_ENABLE' was not declared in this scope if (TOUCHPAD_ENABLE) ^~~~~~~~~~~~~~~ src/qr.cpp:11:65: note: suggested alternative: 'WIFI_PS_NONE' snprintf(buf, 1024, "WIFI:S:%s;T:WPA;P:%s;;", QR_WIFI_NAME, QR_WIFI_PASSWORD); ^~~~~~~~~~~~~~~~ WIFI_PS_NONE src/sleep.cpp:31:9: note: suggested alternative: 'TOUCH_PAD_MAX' if (TOUCHPAD_ENABLE) ^~~~~~~~~~~~~~~ TOUCH_PAD_MAX src/sleep.cpp:40:9: error: 'TOUCHPAD_ENABLE' was not declared in this scope if (TOUCHPAD_ENABLE) ^~~~~~~~~~~~~~~ src/sleep.cpp:40:9: note: suggested alternative: 'TOUCH_PAD_MAX' if (TOUCHPAD_ENABLE) ^~~~~~~~~~~~~~~ TOUCH_PAD_MAX *** [.pio/build/esp32/src/ota.cpp.o] Error 1 src/time.cpp: In function 'void ntpSync(void*)': src/time.cpp:23:34: error: 'NTP_SERVER' was not declared in this scope NTPClient timeClient(ntpUDP, NTP_SERVER); ^~~~~~~~~~ src/time.cpp:23:34: note: suggested alternative: 'SNTP_SERVER_DNS' NTPClient timeClient(ntpUDP, NTP_SERVER); ^~~~~~~~~~ SNTP_SERVER_DNS *** [.pio/build/esp32/src/qr.cpp.o] Error 1 *** [.pio/build/esp32/src/sleep.cpp.o] Error 1 *** [.pio/build/esp32/src/time.cpp.o] Error 1 src/mqtt.cpp: In function 'void startMQTTTask()': src/mqtt.cpp:442:26: error: 'HOSTNAME' was not declared in this scope mqttClient.setClientId(HOSTNAME); ^~~~~~~~ src/mqtt.cpp:442:26: note: suggested alternative: 'ESTALE' mqttClient.setClientId(HOSTNAME); ^~~~~~~~ ESTALE src/mqtt.cpp:443:24: error: 'MQTT_HOST' was not declared in this scope mqttClient.setServer(MQTT_HOST, MQTT_PORT); ^~~~~~~~~ src/mqtt.cpp:443:35: error: 'MQTT_PORT' was not declared in this scope mqttClient.setServer(MQTT_HOST, MQTT_PORT); ^~~~~~~~~ src/mqtt.cpp:443:35: note: suggested alternative: 'NOT_A_PORT' mqttClient.setServer(MQTT_HOST, MQTT_PORT); ^~~~~~~~~ NOT_A_PORT *** [.pio/build/esp32/src/mqtt.cpp.o] Error 1

    opened by wraith1385 2
  • Incompatible with InkplateLibrary 5.7.0

    Incompatible with InkplateLibrary 5.7.0

    Something changed in the new InkPlate library causing HomePlate to hang.

    Diff: https://github.com/e-radionicacom/Inkplate-Arduino-library/compare/5.5.1...5.7.0

    related: #2

    Error boot logs:

    07:04:11.991 > [SETUP] starting, version(Mar 25 2022, 07:03:25) boot: 0
    07:04:11.993 > ESP Chip information:
    07:04:11.996 > This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 1, 4MB external flash
    07:04:12.004 > Minimum free heap size: 4426992 bytes
    07:04:12.007 > Heap summary for capabilities 0x00000C06:
    07:04:12.010 > Totals:
    07:04:12.013 > free 0 allocated 0 min_free 0 largest_free_block 0
    07:04:12.018 > [ACTIVITY] startActivity(1) put into queue
    07:04:12.021 > Wavefrom load failed! Upload new waveform in EEPROM. Using default waveform.
    07:04:12.212 > [STATUS] Boot 1 normal
    07:04:14.363 > [SETUP] Battery: 85% (4.54v)
    07:04:14.907 > [SETUP] starting button task
    07:04:14.907 > [SETUP] starting time task
    07:04:14.910 > [TIME] RTC local time (946685005) 1999-12-31 16:03
    07:04:14.916 > [SETUP] starting WiFi task
    07:04:14.917 > [SETUP] starting OTA task
    07:04:14.921 > [SETUP] starting MQTT task
    07:04:14.923 > [MQTT] starting MQTT
    07:04:14.923 > [SETUP] starting sleep task
    07:04:14.926 > [SETUP] starting activities task
    07:04:17.907 > [INPUT] Starting input monitoring...
    

    known Good boot logs

    10:32:48.265 > [SETUP] starting, version(Mar 19 2022, 10:48:15) boot: 0
    10:32:48.268 > ESP Chip information:
    10:32:48.271 > This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 1, 4MB external flash
    10:32:48.279 > Minimum free heap size: 4426364 bytes
    10:32:48.282 > Heap summary for capabilities 0x00000C06:
    10:32:48.284 >   Totals:
    10:32:48.287 >     free 0 allocated 0 min_free 0 largest_free_block 0
    10:32:48.293 > [ACTIVITY] startActivity(1) put into queue
    10:32:48.481 > [STATUS] Boot 1 normal
    10:32:50.713 > [SETUP] Battery: 100% (4.86v)
    10:32:51.310 > [SETUP] starting button task
    10:32:51.311 > [SETUP] starting time task
    10:32:51.313 > [TIME] RTC local time (1648229516) 2022-03-25 10:31
    10:32:51.319 > [SETUP] starting WiFi task
    10:32:51.322 > [WIFI] Connecting...
    10:32:51.324 > [SETUP] starting OTA task
    10:32:51.324 > [SETUP] starting MQTT task
    10:32:51.327 > [MQTT] starting MQTT
    10:32:51.330 > [SETUP] starting sleep task
    10:32:51.333 > [SETUP] starting activities task
    10:32:51.335 > [ACTIVITY] starting activity: 1
    10:32:51.338 > [SLEEP] delaying sleep for 15 seconds
    10:32:53.327 > [MQTT] sending status update
    10:32:53.559 > [WIFI] IP address: 192.168.2.189
    10:32:53.562 > [STATUS] WiFi connected
    10:32:53.562 > [TIME] Syncing RTC to NTP
    10:32:53.575 > [MQTT] Connecting to MQTT...
    10:32:53.583 > [SLEEP] delaying sleep for 20 seconds
    10:32:53.585 > [STATUS] Downloading image...
    10:32:53.589 > [OTA] OTA ready
    10:32:53.638 > [MQTT] Connected to MQTT.
    10:32:53.638 > [MQTT] Session present: 0
    10:32:53.641 > [MQTT] Subscribing at QoS 2, packetId: 1
    10:32:53.648 > [MQTT] Sending MQTT Config
    10:32:53.655 > [MQTT] Subscribe acknowledged: packetId: 1 qos: 2 
    10:32:53.683 > [MQTT] Connected
    10:32:53.712 > [WIFI] Connected: 192.168.2.189
    10:32:53.828 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/boot/state] {"boot":1,"activity_count":1,"boot_reason":"normal"}
    10:32:53.836 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/version/state] {"version":"Mar 19 2022, 10:48:15"}
    10:32:54.042 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/homeplate_wifi/state] {"signal":-35}
    10:32:54.322 > [INPUT] Starting input monitoring...
    10:32:54.829 > [WIFI] IP address: 192.168.2.189
    10:32:54.833 > [STATUS] WiFi connected
    10:32:56.060 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/temperature/state] {"temperature":20}
    10:32:57.264 > [W][HTTPClient.cpp:828] getStream(): getStream: not connected
    10:32:57.266 > [E][WiFiClient.cpp:309] setOption(): fail on fd -1, errno: 9, "Bad file number"
    10:32:57.275 > [W][HTTPClient.cpp:828] getStream(): getStream: not connected
    10:32:57.280 > [E][WiFiClient.cpp:288] setSocketOption(): 1006 : 9
    10:32:57.287 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/battery/state] {"voltage":4.86,"battery":100}
    10:32:57.295 > [TIME] RTC local time (1648229576) 2022-03-25 10:32
    10:32:57.662 > [IMAGE] Download done
    10:32:57.662 > [STATUS] Rendering image...
    10:33:02.609 > [IMAGE] Image render ready
    10:33:02.609 > [IMAGE] displaying....
    10:33:04.496 > [IMAGE] displaying done.
    10:33:05.288 > [MQTT] sending status update
    10:33:05.289 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/boot/state] {"boot":1,"activity_count":1,"boot_reason":"normal"}
    10:33:05.300 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/version/state] {"version":"Mar 19 2022, 10:48:15"}
    10:33:05.501 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/homeplate_wifi/state] {"signal":-39}
    10:33:05.523 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/temperature/state] {"temperature":20}
    10:33:05.531 > [MQTT] Sending MQTT State: [homeassistant/sensor/homeplate/battery/state] {"voltage":4.88,"battery":100}
    10:33:14.325 > [ACTIVITY] startActivity(0) put into queue
    10:33:14.328 > [ACTIVITY] starting activity: 0
    10:33:14.331 > [SLEEP] prepping for sleep
    10:33:14.333 > [MQTT] Stopping and disconnecting...
    10:33:14.336 > [MQTT] Disconnected from MQTT.
    10:33:14.339 > [WIFI] Stopping and disconnecting...
    10:33:14.381 > [SLEEP] entering sleep for 1200 seconds (20 min)
    
    opened by lanrat 2
  • Stuck on input monitoring

    Stuck on input monitoring

    Hey lanrat,

    I managed to flash your homeplate software to my Inkplate, but after configuring it, it's stuck at "[INPUT] Starting input monitoring..." in the serial console - checking in my router, I don't see a wifi connection happening. This is the full boot log:

    07:04:11.991 > [SETUP] starting, version(Mar 25 2022, 07:03:25) boot: 0 07:04:11.993 > ESP Chip information: 07:04:11.996 > This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 1, 4MB external flash 07:04:12.004 > Minimum free heap size: 4426992 bytes 07:04:12.007 > Heap summary for capabilities 0x00000C06: 07:04:12.010 > Totals: 07:04:12.013 > free 0 allocated 0 min_free 0 largest_free_block 0 07:04:12.018 > [ACTIVITY] startActivity(1) put into queue 07:04:12.021 > Wavefrom load failed! Upload new waveform in EEPROM. Using default waveform. 07:04:12.212 > [STATUS] Boot 1 normal 07:04:14.363 > [SETUP] Battery: 85% (4.54v) 07:04:14.907 > [SETUP] starting button task 07:04:14.907 > [SETUP] starting time task 07:04:14.910 > [TIME] RTC local time (946685005) 1999-12-31 16:03 07:04:14.916 > [SETUP] starting WiFi task 07:04:14.917 > [SETUP] starting OTA task 07:04:14.921 > [SETUP] starting MQTT task 07:04:14.923 > [MQTT] starting MQTT 07:04:14.923 > [SETUP] starting sleep task 07:04:14.926 > [SETUP] starting activities task 07:04:17.907 > [INPUT] Starting input monitoring...

    I already double checked my wifi-credentials but that is perfectly fine...

    Thanks in advance,

    Epi

    opened by C9H13NO3-dev 2
  • Document recommended image settings

    Document recommended image settings

    Hey,

    I was wondering if you would be willing to document the config you used for hass-lovelace-kindle-screensaver. I'm having issues with the image captured from mine looks extremely washed out on my inkplate, regardless of the greyscale setting I use.

    I have updated the waveform on my device, which was a slight improvement, but there's still a noticeable difference when flicking between the homeplate info screen and the lovelace image

    opened by nayr1991 1
  • Build currently fails

    Build currently fails

    Building with the vs code pio plugin in a windows environment results in the following. Looking at the dependency graph, it's pulling in the versions specified in the platformio.ini, so I'm guessing something has changed in the platformio framework?

    Let me know if I can supply any further info, this is my first foray into platformio.

    > Executing task: platformio run <
    
    Processing esp32 (platform: https://github.com/platformio/platform-espressif32.git; framework: arduino; board: esp32dev)
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Verbose mode can be enabled via `-v, --verbose` option
    CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
    PLATFORM: Espressif 32 (4.1.0+sha.e34a21b) > Espressif ESP32 Dev Module
    HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
    DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
    PACKAGES: 
     - framework-arduinoespressif32 3.20002.0 (2.0.2) 
     - tool-esptoolpy 1.30100.210531 (3.1.0) 
     - tool-mkfatfs 2.0.1 
     - tool-mklittlefs 1.203.210628 (2.3) 
     - tool-mkspiffs 2.230.0 (2.30) 
     - toolchain-xtensa-esp32 8.4.0+2021r2-patch3
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 39 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- <InkplateLibrary> 5.7.0+sha.9339478
    |   |-- <SPI> 2.0.0
    |   |-- <Wire> 2.0.0
    |   |-- <HTTPClient> 2.0.0
    |   |   |-- <WiFi> 2.0.0
    |   |   |-- <WiFiClientSecure> 2.0.0
    |   |   |   |-- <WiFi> 2.0.0
    |   |-- <WiFi> 2.0.0
    |   |-- <EEPROM> 2.0.0
    |-- <NTPClient> 3.1.0
    |-- <Time> 1.6.1
    |-- <Timezone> 1.2.4
    |   |-- <Time> 1.6.1
    |-- <QRCode> 0.0.1
    |-- <AsyncMqttClient> 0.9.0
    |   |-- <AsyncTCP> 1.1.1
    |-- <ArduinoJson> 6.19.4
    |-- <WiFi> 2.0.0
    |-- <ArduinoOTA> 2.0.0
    |   |-- <Update> 2.0.0
    |   |-- <WiFi> 2.0.0
    |   |-- <ESPmDNS> 2.0.0
    |   |   |-- <WiFi> 2.0.0
    Building in release mode
    Compiling .pio/build/esp32/src/network.cpp.o
    Archiving .pio/build/esp32/libcbf/libWiFi.a
    Indexing .pio/build/esp32/libcbf/libWiFi.a
    Archiving .pio/build/esp32/liba3a/libWiFiClientSecure.a
    Indexing .pio/build/esp32/liba3a/libWiFiClientSecure.a
    src/network.cpp: In function 'void WiFiStationDisconnected(arduino_event_id_t, arduino_event_info_t)':
    src/network.cpp:44:25: error: 'union arduino_event_info_t' has no member named 'disconnected'; did you mean 'eth_connected'?
         Serial.println(info.disconnected.reason);
                             ^~~~~~~~~~~~
                             eth_connected
    src/network.cpp: In function 'void wifiConnectTask()':
    src/network.cpp:111:66: error: no matching function for call to 'WiFiClass::onEvent(void (&)(arduino_event_id_t, arduino_event_info_t), system_event_id_t)'
         WiFi.onEvent(WiFiStationConnected, SYSTEM_EVENT_STA_CONNECTED);
                                                                      ^
    In file included from /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiSTA.h:28,
                     from /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFi.h:32,
                     from src/network.cpp:1:
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:147:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventCb, arduino_event_id_t)'
         wifi_event_id_t onEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
                         ^~~~~~~
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:147:21: note:   no known conversion for argument 2 from 'system_event_id_t' to 'arduino_event_id_t'
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:148:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventFuncCb, arduino_event_id_t)'
         wifi_event_id_t onEvent(WiFiEventFuncCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
                         ^~~~~~~
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:148:21: note:   no known conversion for argument 2 from 'system_event_id_t' to 'arduino_event_id_t'
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:149:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventSysCb, arduino_event_id_t)'
         wifi_event_id_t onEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
                         ^~~~~~~
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:149:21: note:   no known conversion for argument 2 from 'system_event_id_t' to 'arduino_event_id_t'
    src/network.cpp:112:52: error: no matching function for call to 'WiFiClass::onEvent(void (&)(arduino_event_id_t, arduino_event_info_t), system_event_id_t)'
         WiFi.onEvent(WiFiGotIP, SYSTEM_EVENT_STA_GOT_IP);
                                                        ^
    In file included from /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiSTA.h:28,
                     from /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFi.h:32,
                     from src/network.cpp:1:
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:147:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventCb, arduino_event_id_t)'
         wifi_event_id_t onEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
                         ^~~~~~~
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:147:21: note:   no known conversion for argument 2 from 'system_event_id_t' to 'arduino_event_id_t'
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:148:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventFuncCb, arduino_event_id_t)'
         wifi_event_id_t onEvent(WiFiEventFuncCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
                         ^~~~~~~
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:148:21: note:   no known conversion for argument 2 from 'system_event_id_t' to 'arduino_event_id_t'
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:149:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventSysCb, arduino_event_id_t)'
         wifi_event_id_t onEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
                         ^~~~~~~
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:149:21: note:   no known conversion for argument 2 from 'system_event_id_t' to 'arduino_event_id_t'
    src/network.cpp:113:72: error: no matching function for call to 'WiFiClass::onEvent(void (&)(arduino_event_id_t, arduino_event_info_t), system_event_id_t)'
         WiFi.onEvent(WiFiStationDisconnected, SYSTEM_EVENT_STA_DISCONNECTED);
                                                                            ^
    In file included from /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiSTA.h:28,
                     from /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFi.h:32,
                     from src/network.cpp:1:
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:147:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventCb, arduino_event_id_t)'
         wifi_event_id_t onEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
                         ^~~~~~~
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:147:21: note:   no known conversion for argument 2 from 'system_event_id_t' to 'arduino_event_id_t'
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:148:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventFuncCb, arduino_event_id_t)'
         wifi_event_id_t onEvent(WiFiEventFuncCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
                         ^~~~~~~
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:148:21: note:   no known conversion for argument 2 from 'system_event_id_t' to 'arduino_event_id_t'
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:149:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventSysCb, arduino_event_id_t)'
         wifi_event_id_t onEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
                         ^~~~~~~
    /home/ryan/.platformio/packages/framework-arduinoespressif32/libraries/WiFi/src/WiFiGeneric.h:149:21: note:   no known conversion for argument 2 from 'system_event_id_t' to 'arduino_event_id_t'
    Archiving .pio/build/esp32/lib1b7/libHTTPClient.a
    Indexing .pio/build/esp32/lib1b7/libHTTPClient.a
    Archiving .pio/build/esp32/lib483/libEEPROM.a
    Indexing .pio/build/esp32/lib483/libEEPROM.a
    Compiling .pio/build/esp32/lib478/InkplateLibrary/boards/Inkplate2.cpp.o
    Compiling .pio/build/esp32/lib478/InkplateLibrary/boards/Inkplate5.cpp.o
    Compiling .pio/build/esp32/lib478/InkplateLibrary/boards/Inkplate6.cpp.o
    Compiling .pio/build/esp32/lib478/InkplateLibrary/boards/Inkplate6Color.cpp.o
    Compiling .pio/build/esp32/lib478/InkplateLibrary/boards/Inkplate6plus.cpp.o
    Compiling .pio/build/esp32/lib478/InkplateLibrary/include/Esp.cpp.o
    Compiling .pio/build/esp32/lib478/InkplateLibrary/include/Frontlight.cpp.o
    *** [.pio/build/esp32/src/network.cpp.o] Error 1
    ========================================================================================= [FAILED] Took 1.98 seconds =========================================================================================
    
    Environment    Status    Duration
    -------------  --------  ------------
    esp32          FAILED    00:00:01.982
    =================================================================================== 1 failed, 0 succeeded in 00:00:01.982 ===================================================================================
    The terminal process "platformio 'run'" terminated with exit code: 1.
    
    opened by nayr1991 1
  • Update image.cpp

    Update image.cpp

    Fixes problems with incomplete renderings of the home assistant dashboard. Had some problems with only partly displayed images on the homeplate, the rest of the display looked kinda "washed out". This small fix did it for me.

    opened by C9H13NO3-dev 1
  • MQTT broker with username and password

    MQTT broker with username and password

    Hi, First of all, thanks a lot for this project. I was about to put together something similar with the help of some GitHub Repos out there. But this project fulfills all my needs!

    However I am using a MQTT broker which needs a username and password to connect to. It was very easy to implement this, that's why I like to share it here. I'm not so fluent with Git push/pull/change requests and such, therefore I just document the changes I made here:

    extend config.h with two lines:

    // MQTT Broker
    #define MQTT_HOST "x.x.x.x"
    #define MQTT_PORT 1883
    #define MQTT_USER "mqtt username"
    #define MQTT_PASSWORD "mqtt password"
    

    add the line under mqttClient.setServer... in mqtt.cpp - line 415

      mqttClient.setClientId(HOSTNAME);
      mqttClient.setServer(MQTT_HOST, MQTT_PORT);
      mqttClient.setCredentials(MQTT_USER, MQTT_PASSWORD);
    

    Maybe you are able (and willing) to put it into the code base.

    opened by cellerich 1
  • Add status messages for QR and Info pages

    Add status messages for QR and Info pages

    My Inkplate 10 has the 3D printed case that was part of the preorder bundle. Unfortunately this case has very flaky touch sensitivity on the buttons and I've found that I can often look silly pushing the touchpoint multiple times waiting for the device to do something.

    The displayStatusMessage command called very early in the display process provides more rapid feedback that the device actually got my input. This is especially handy when it's coming out of sleep and going to take a bit to display anything.

    This PR adds status messages prior to the refresh of the screen, so you'll see the status message a few moments before the whole screen refreshes. This clears the status message and displays the rest of the screen nicely.

    opened by Cellivar 2
Owner
Ian Foster
Researcher, Hacker, Programmer, Geek
Ian Foster
Yet another alarm (control) panel for Home Assistant.

HASS-YAAP Yet another alarm (control) panel for Home Assistant. Change alarm system mode (away, home, night, disarmed) Welcome people arriving by thei

Paul-Vincent Roll 48 Dec 4, 2021
Automated hydroponics with Home Assistant & ESP8266 controllers

ESPonics Automated hydroponics with ESP8266 microcontrollers & Home Assistant I absolutely want to credit Reddit user u/ghoofman for both the inspirat

jjensn 16 Aug 27, 2022
M5Core2 Weather Dashboard based on LVGL.

M5Core2 Weather Dashboard Demo Based on LVGL and X-TRACK. Before compile Because CPP does not support flexible array member, you need to modify the de

M5Stack 15 Sep 14, 2022
My new zigbee project. Wireless temperature and humidity mini sensor with electronic ink display 2.13 inches, low power consumption, compact size, enclosure with magnets.

My new zigbee project. Wireless temperature and humidity mini sensor with electronic ink display 2.13 inches, low power consumption, compact size, enclosure with magnets. The device use SHTC3 sensors, chip CC2530, battery CR2477.

Andrew Lamchenko 17 Sep 11, 2022
waved is aimed at becoming a userspace driver for the reMarkable 2 E-Ink controller.

waved waved is aimed at becoming a userspace driver for the reMarkable 2 E-Ink controller. Disclaimer: This is still a prototype. It might damage your

Mattéo Delabre 37 Sep 9, 2022
Qt based simple SCADA framework, with dashboard, static and dynamic components

QSimpleScada Qt/C++ based simple SCADA library for your IoT projects. We created QSimpleScada to speed up and simplify visualising any data, so we (an

Indeema Software Inc. 180 Sep 21, 2022
Example code for collecting weather data from an ESP32 and then uploading this data to InfluxDB in order to create a dashboard using Grafana.

InfluxGrafanaTutorial Example code for collecting weather data from an ESP32 and then uploading this data to InfluxDB in order to create a dashboard u

Michael Klements 5 May 12, 2022
Bypass UAC at any level by abusing the Program Compatibility Assistant with RPC, WDI, and more Windows components

ByeIntegrity 8.0 The eighth Windows privilege escalation attack in the ByeIntegrity family. ByeIntegrity 8.0 is the most complex one I've created so f

Arush Agarampur 217 Sep 22, 2022
DIY LCD touchscreen for Home Automation

HA SwitchPlate HASPone The HASPone is a DIY touchscreen controller you can mount into a standard North American work box. It connects to your home aut

null 298 Sep 27, 2022
Home automation light switch controller

Home Automation Light Switch Controller Copyright 2019-2021 SuperHouse Automation Pty Ltd www.superhouse.tv A modular Light Switch Controller for DIY

SuperHouse Automation 11 Mar 27, 2022
Universal State Monitor software for home automation input devices

Universal State Monitor Copyright 2019-2021 SuperHouse Automation Pty Ltd www.superhouse.tv A binary state monitor for DIY home automation projects. T

SuperHouse Automation 3 Aug 24, 2021
Smart Home Total Solution - Keyword Recognition

Introduction Arm IoT Total Solutions provides a complete solution designed for specific use-cases, leaving developers to focus on what really matters

Arm Software 0 May 7, 2022
The home for algorithms ranging from searching to search all the way to dynamic programming, branch and bound, etc.

Algorithms The home for algorithms ranging from searching and sorting all the way to dynamic programming algorithms, divide and conquer, etc. What are

null 1 Dec 6, 2021
Program that allows you to get the source code of a website's home page without doing it manually. Use it at your own risk.

Website-Homepage-Grabber Install one of the folders x64 or x32 if the program doesn't work(probably because you don't have visual studio installed) If

null 5 Feb 19, 2022
Calido - Open Smart Thermostat and Smart Home Controller. Built on a Thingy:91 (nRF9160).

Calido - Open Smart Thermostat and Smart Home Controller based on a Nordic Semiconductor Thingy:91 Project can be found here (Electromaker.io). A Make

ticccco 3 Jun 25, 2022
Theres no place like $HOME

Information Here are some details about my setup: OS: Arch Linux Terminal: Alacritty Shell: Bash WM: dwm-flexipatch Editor: Vim Status Bar: vanilla dw

Junnun Karim 246 Sep 27, 2022
A hacky e-ink display for Home Assistant sensors

This is a hacky PlatformIO project in which Home Assistant data is displayed in an e-ink display. Useful Links Display Hardware on Tindie Official Git

null 55 Sep 21, 2022
✔️The smallest header-only GUI library(4 KLOC) for all platforms

Welcome to GUI-lite The smallest header-only GUI library (4 KLOC) for all platforms. 中文 Lightweight ✂️ Small: 4,000+ lines of C++ code, zero dependenc

null 6.5k Oct 2, 2022
Yet another alarm (control) panel for Home Assistant.

HASS-YAAP Yet another alarm (control) panel for Home Assistant. Change alarm system mode (away, home, night, disarmed) Welcome people arriving by thei

Paul-Vincent Roll 48 Dec 4, 2021
Control Hörmann doors drives directly via MQTT from Home Assistant

hoermann_door Control Hörmann doors drives directly via MQTT from Home Assistant

null 59 Sep 21, 2022