Działa
Musiałem dodać rezystor pomiedzy pin: (przełącznik) u mnie GPIO15 a mase 10k Ohm bo inaczej samoistnie zmienial stan i przełączał on-off kilka razy na sekunde. Aktualnie zmienia jak zewre GPIO do 3,3v - czasami jak zadługo przytrzymam to przełaczy kilka stron ale to bajka. Najważniejsze że działa.
Stawiam DUZE PIWO…Dziekuje Bardzo.
Pod spodem cała działająca konfiguracja dla zainteresowanych - przełączania stron na wyswietlaczu 1602 /2004 , - pamietac dodac rezystor 10k ohm.
Oraz fajny test połączen wifi i homeassiatnt sygnalizowany diodą na ESP32 odrazu wiadomo czy cos jest nie tak z połączeniami lub jak ESP wpadnie w pętle restartów.
substitutions:
name: esphome-web-de7470
friendly_name: ESPHome Web de7470
esphome:
name: ${name}
friendly_name: ${friendly_name}
min_version: 2024.6.0
name_add_mac_suffix: false
project:
name: esphome.web
version: dev
esp32:
board: esp32dev
framework:
type: arduino
packages:
esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/esp32-generic.yaml@main
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Allow Over-The-Air updates
ota:
- platform: esphome
password: !secret ota_password
# Allow provisioning Wi-Fi via serial
improv_serial:
wifi:
networks:
- ssid: !secret wifi_ssid
password: !secret wifi_password
priority: 0.0
- ssid: !secret wifi_ssid2
password: !secret wifi_password2
priority: 5.0
- ssid: !secret wifi_ssid3
password: !secret wifi_password3
priority: 4.0
use_address: 192.168.0.147
manual_ip:
# Set this to the IP of the ESP
static_ip: 192.168.0.147
# Set this to the IP address of the router. Often ends with .1
gateway: 192.168.0.1
# The subnet of the network. 255.255.255.0 works for most home networks.
subnet: 255.255.255.0
# Set this to the IP address of the router. Often ends with .1
dns1: 192.168.0.1
dns2: 8.8.8.8
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: !secret wifi_ap_ssid
password: !secret wifi_ap_password
web_server:
port: 80
version: 2
auth:
username: !secret web_server_username
password: !secret web_server_password
# Pobieranie czasu z HA
#time:
# - platform: homeassistant
# id: ha_time
time:
- platform: sntp
id: time_sntp
timezone: Europe/Berlin
# Dioda LED Informacyjna o stanie połącznia.
#status_led:
# pin:
# number: GPIO2 # PIN D4
# inverted: yes # "yes" - Dioda mryga gdy nie można nawiązać połączenie.
# # "no" - Dioda świeci gdy połączenie jest nawiązane.
# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:
dashboard_import:
package_import_url: github://esphome/example-configs/esphome-web/esp32.yaml@main
import_full_config: true
# Sets up Bluetooth LE (Only on ESP32) to allow the user
# to provision wifi credentials to the device.
esp32_improv:
authorizer: none
# To have a "next url" for improv serial
binary_sensor:
# Tekst sensor do zmiany stron wyswietlacza dziala tylko z oled nie z 1602 i 2004
- platform: gpio
pin: GPIO15
id: "przelacznik"
on_press:
then:
- lambda: |-
id(page) = (id(page) + 1);
if (id(page) > 4) {
id(page) = 1;
}
# then:
# - display.page.show_next: lcd
# - component.update: lcd
button:
- platform: restart
name: "Restart ESP"
icon: mdi:restart
switch:
- platform: gpio
id: led_wifi
pin: GPIO2
inverted: False
i2c:
sda: 21
scl: 22
scan: True
frequency: 400kHz
display:
- platform: lcd_pcf8574
dimensions: 20x4
address: 0x27
id: lcd
lambda: |-
switch (id(page)){
case 1:
it.print(0, 0, "Licznik1");
it.strftime(10, 0, "%d.%m.%Y", id(time_sntp).now());
it.print(0, 2, "Woda Zimna :%.1f m3");
it.print(0, 3, "Woda Ciepla :%.1f m3");
break;
case 2:
it.print(0, 0, "Licznik2");
it.strftime(10, 0, "%d.%m.%Y", id(time_sntp).now());
it.print(0, 2, "Woda Zimna :%.1f m3");
it.print(0, 3, "Woda Ciepla :%.1f m3");
break;
case 3:
it.print(0, 0, "Licznik3");
it.strftime(10, 0, "%d.%m.%Y", id(time_sntp).now());
it.print(0, 2, "Woda Zimna :%.1f m3");
it.print(0, 3, "Woda Ciepla :%.1f m3");
break;
case 4:
it.print(0, 0, "Termin Odczytu");
it.strftime(0, 1, "Czas " "%H:%M ", id(time_sntp).now());
it.strftime(0, 2, "Data " "%d.%m.%Y", id(time_sntp).now());
it.printf(0, 3, "Ip :%s", id(esp_ip_address).state.c_str());
break;
}
globals:
- id: page
type: int
initial_value: "1"
interval:
- interval: 5s # wykonaj co 1 sekundę
then:
if: # jeżeli
condition:
wifi.connected: # połączenie z Wi-Fi
then:
- if:
condition:
api.connected:
then: # jeżeli połączono z Wi-Fi
- switch.turn_on: led_wifi # to włącz LED Wi-Fi
else: # jeśli nie ma połączenia z HA to mrugaj LED Wi-Fi
- switch.turn_on: led_wifi # włącz LED Wi-Fi
- delay: 500ms # odczekaj
- switch.turn_off: led_wifi # wyłącz LED Wi-Fi
- delay: 500ms # odczekaj
else: # jeżeli nie połączono z Wi-Fi (automatycznie z HA również nie)
- switch.turn_off: led_wifi
# - interval: 5s
# then:
# - lambda: |-
# id(page) = (id(page) + 1);
# if (id(page) > 4) {
# id(page) = 1;
# }
text_sensor:
- platform: wifi_info
ip_address:
id: esp_ip_address
icon: mdi:ip-network
name: ESP IP Address
address_0:
name: ESP IP Address 0
ssid:
name: ESP Connected SSID
bssid:
name: ESP Connected BSSID
mac_address:
name: ESP Mac Wifi Address
scan_results:
name: ESP Latest Scan Results
dns_address:
name: ESP DNS Address
Pozdrawiam