MAX7912 przeniesien...
 
Powiadomienia
Wyczyść wszystko

MAX7912 przeniesienie z Domoticz-a

4 Wpisów
3 Użytkownicy
0 Reactions
90 Wyświetleń
(@marcin_kutno)
Wpisów: 3
Bywalec
Autor tematu
 

Witam.

Poproszę o wsparcie. Przyszedł czas przesiąść się z Domoticz-a na HA (taki kaprys bo wcale Domoticz nie jest zły - tak uważam, ale czas poznać coś nowego). Przenoszę powoli czujniki, przełączniki, powiadomienia i całkiem nieźle mi to chyba idzie, w każdym razie uczę się czegoś nowego i to chyba jest najfajniejsze, ale do tematu:

Na Domoticz-u, a w zasadzie na ESPEASY mam postawione kilka stacyjek (wemos D1 mini) z zainstalowanym wyświetlaczem 8x7segm. na max7912. Wyświetla mi to poza zegarem kilka informacji z czujników np: w salonie sobie stoi i wyświetla sekwencyjnie: Zegar; T salonu, H salonu i na koniec T zewnętrzne i od nowa.

W ESPHOME niestety na razie na zasadzie kopiuj/wklej jestem w stanie wyświetlić tylko czas:

# Example configuration entry

spi:
  clk_pin: D0
  mosi_pin: D1

#time: 
#  - platform: homeassistant
#    id: esptime
time:
  - platform: sntp
    id: sntp_time
    timezone: Europe/Berlin
    servers:
     - 0.pool.ntp.org
     - 1.pool.ntp.org
     - 2.pool.ntp.org

display:
  - platform: max7219
    cs_pin: D2
    num_chips: 1
    intensity: 0
    lambda: |-
      it.strftime("%H-%M-%S", id(sntp_time).now());
      auto time = id(sntp_time).now();
captive_portal:
 
 
Szukałem i nie znalazłem możliwości przełączania pomiędzy "stronami". Czy jest taka możliwość?
Chyba że zostawić to tak jak jest (na ESPEASY) i przesyłać informacje poprzez MQTT?
 
Dodane : 08/11/2024 3:13 am
isom
 isom
(@isom)
Wpisów: 5180
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Dodane przez: @marcin_kutno

Czy jest taka możliwość?

Możliwości są, można użyć interwału , przycisku do przewijania lub enkodera.

Przykład dla trzech stron z interwałem co 10 sek 

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;
        }
 
Dodane : 08/11/2024 7:26 am
pawell32
(@pawell32)
Wpisów: 1334
Guru
 

Dodane przez: @marcin_kutno

Chyba że zostawić to tak jak jest (na ESPEASY) i przesyłać informacje poprzez MQTT?

tu masz więcej możliwości. Też kiedyś korzystałem z espeasy bo było to wygodne. Dla Twojego rozwiązania masz mozliwość utworzenia stron jak podał Ci Isom, możesz wysłać po mqtt i ustawić wszystko co ma się wyświetlać w Node-Red.

mqtt:
  broker: localhost
  username: user
  password: password

sensor:
  - platform: mqtt_subscribe
    name: "Data from topic"
    id: text1
    topic: the/topic
  - platform: mqtt_subscribe
    name: "Data from topic2"
    id: text2
    topic: the/topic2

display:
  - platform: max7219
    cs_pin: D3
    num_chips: 1
    lambda: |-
      it.set_intensity(id(4));
      it.printf("%.1f~", id(text1).state);
      it.printf(4, "%.1f~", id(text2).state);

  - platform: tm1637
    id: tm1637_display
    clk_pin: D6
    dio_pin: D5
    inverted: false
    length: 4
    update_interval: 1s
    intensity: 7
    lambda: |-
       it.strftime("%H.%M", id(esptime).now());

takie mam zegary z wyświetlaniem temperatur (w pomieszczeniu i na zewnątrz), ze zmiennym tekstem mam wyświetlacze zdudowane na dotmatrix

 
Dodane : 08/11/2024 7:58 am
(@marcin_kutno)
Wpisów: 3
Bywalec
Autor tematu
 

Dziękuję.

Działa tak jak chciałem, a w zasadzie podobnie jak działało pod ESPEASY. Na razie wyświetlam głupoty, ale to tylko na poczet testów:

Jak by ktoś szukał rozwiązania i tu trafił kod wygląda tak :

esphome:
  name: led-7-segment-x8
  friendly_name: Led 7 segment x8


esp8266:
  board: d1_mini


# Enable logging
logger:


# Enable Home Assistant API
api:
  encryption:
    key: ""


ota:
  - platform: esphome
    password: ""


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password


  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Led-7-Segment-X8"
    password: "Ob0rtN1nZkp7"


# Example configuration entry
spi:
  clk_pin: D0
  mosi_pin: D1


#time:
#  - platform: homeassistant
#    id: esptime
time:
  - platform: sntp
    id: sntp_time
    timezone: Europe/Berlin
    servers:
     - 0.pool.ntp.org
     - 1.pool.ntp.org
     - 2.pool.ntp.org


display:
  - platform: max7219
    cs_pin: D2
    num_chips: 1
    intensity: 0
    lambda: |-
         switch (id(page)){
           case 1:
             it.print("11111111");
              break;
           case 2:
             it.print("22222222");
             break;
           case 3:
             it.print("33333333");
             break;
           case 4:
             auto time = id(sntp_time).now();
             it.strftime("%H-%M-%S", id(sntp_time).now());
             break;
          }


globals:
- id: page
  type: int
  initial_value: "1"


interval:
- interval: 5s
  then:
    - lambda: |-
        id(page) = (id(page) + 1);
        if (id(page) > 4) {
          id(page) = 1;
        }






captive_portal:

 

A dlaczego ESPEASY (nie z sentymentów), ze względu na to że domoticz był na Malinie (3b+), a ona bez podtrzymania zasilania, a u mnie na wiosce pojawiają się częste zaniki zasilania - takie króciutkie, np kilka, kilkanaście minut, ale często, to karty czy też pendrive-y z "systemem" długo nie żyły (nigdy nie ruszyła z dysku SSD bez wsparcia karty SD z bootloaderem). Zanim zdołałem postawić nowy "system" to na WEMOS ESPEASY miałem też możliwość podglądać parametry (czujniki, przełączniki itp.). Dodatkowo "REGUŁY" : kiedyś padł "system" na malinie (jak wyżej), a że w domoticzu miałem termostat odpowiadający za elektryczne grzanie bojlera to na moje nieszczęście wszystko zatrzymało się w stanie włączenia. Zorientowałem się jak bojler miał 97stC (ale to były początki). Reguły w ESPEASY pozwoliły uniknąć podobnej sytuacji, a teraz jest tam jeszcze szereg dodatkowych zabezpieczeń.

Czasami też domoticz wariował i potrafił sam z siebie co sekundę przełączać przekaźniki bez niczyjej ingerencji przez kilkadziesiąt sekund, potem się uspokajał i tak do następnego losowego w czasie razu, to też przyczynia się do mojego przejścia na HA - może okaże się stabilniejszy.

"Stacyjki" wyświetlające dane czujniki są na MAX7912 z wyświetlaczem 8x7seg ze względu na wielkość (małe, nie zajmujące wiele miejsca, nie rzucające się w oczy a spełniają zadanie - taki mój wymysł). Popełniłem zegar na wyświetlaczach 8x8 dotmatrix, ale jeszcze w czasach ATmegi i Bascom-a i nie jest on powiązany z siecią - czeka na modernizację 🙂

HA jest teraz na HP T630(Debian) i będzie na UPS.

Jeszcze raz dziękuję.

Drugie rozwiązanie też będę testował, choćby w ramach nauki.  

 

 
Dodane : 09/11/2024 12:35 pm
Udostępnij: