Witam wszystkich.
Mam zrobiony czytnik liczników wody Wmbus autorstwa SzczepanLeon w obudowie z zasilaniem ups, aktualnie podaje on mi dane na wyswietlaczu lcd1602 ( przerabiam na lcd2004 , aktualizuje wersje Wmbus do 4) i przez interval: zmienia strony co ustalony czas co przy kilku zdefiniowanych stronach trwa to dlugo ( wiem mozna zmienic czas wyswietlania ale niechce aby znowy zmienialy sie za szybko bo trzeba pokazać stan licznika spisać). Czy jest możliwość przerobienia funkcji aby zmiana nastepowala po zwarciu np. GPIO15 do 3.3v . ( Jedno zwarcie przełacznikiem chwilowym nowa strona) Męcze się z tym już jakiś czas i nic z tego nie wynika - zmieniłem wg. tego poradnika ale wyszło że pages: nie obsługuje lcd_pcf8574. https://www.youtube.com/watch?v=vwn-FuW4tfc&t=34s
i2c:
sda: 21
scl: 22
scan: True
frequency: 400kHz
web_server:
port: 80
auth:
username: !secret web_server_username
password: !secret web_server_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
use_address: 192.168.0.144
manual_ip:
# Set this to the IP of the ESP
static_ip: 192.168.0.144
# 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
ap:
ssid: !secret wifi_ap_ssid
password: !secret wifi_ap_password
captive_portal:
external_components:
# - source: github://SzczepanLeon/esphome-components@main
# - source: github://SzczepanLeon/esphome-components@3.2.3
# components: [ wmbus ]
- source: github://SzczepanLeon/esphome-components@2.4.10
refresh: 3d
components: [ wmbus ]
wmbus:
frequency: 868.950
mosi_pin: GPIO23
miso_pin: GPIO19
clk_pin: GPIO18
cs_pin: GPIO5
gdo0_pin: GPIO16
gdo2_pin: GPIO17
clients:
- name: "wmbusmeters"
ip_address: "192.168.0.129"
port: 7227
# 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.
# Przyscisk Restartu Urządzenia
switch:
- platform: restart
name: "${device_name} Reset"
sensor:
- platform: wmbus
meter_id: 0x04888630
type: apator162
lqi:
name: "My lqi"
rssi:
name: "My RSSI"
total_water_m3:
name: "Woda1"
id: woda1
- platform: wmbus
meter_id: 0x04729449
key: "00000000000000000000000000000000"
type: apator162
lqi:
name: "My lqi"
rssi:
name: "My RSSI"
total_water_m3:
name: "Woda2"
id: woda2
display:
- platform: lcd_pcf8574
dimensions: 16x2
address: 0x27
id: lcd
lambda: |-
switch (id(page)){
case 1:
it.printf(0, 0, "Woda1 :%.1f m3", id(woda1).state);
it.printf(0, 1, "Woda2 :%.1f m3", id(woda2).state);
break;
case 2:
it.printf(0, 0, "Woda3 :%.1f m3", id(woda1).state);
it.printf(0, 1, "Woda4 :%.1f m3", id(woda2).state);
break;
case 3:
it.strftime(5, 0, "%H:%M ", id(time_sntp).now());
it.strftime(3, 1, "%d.%m.%Y", id(time_sntp).now());
break;
}
globals:
- id: page
type: int
initial_value: "1"
interval:
- interval: 10s
then:
- lambda: |-
id(page) = (id(page) + 1);
if (id(page) > 3) {
id(page) = 1;
}
#binary_sensor:
# - platform: gpio
# pin: D2
# id: "button"
# on_press:
# then:
# - display.page.show_next: lcd
# - component.update: lcd
Na samym dole pliku odznaczone binary sensor co próbowałem użyc ale nie działa z tym wyswietlaczem.