Asystent AI
MAX7912 przeniesien...
 
Powiadomienia
Wyczyść wszystko

MAX7912 przeniesienie z Domoticz-a

4 Wpisów
3 Użytkownicy
0 Reactions
796 Wyświetleń
(@marcin_kutno)
Wpisów: 6
Bywalec
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
[#5950]

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 4:13 am
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

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 8:26 am
pawell32
(@pawell32)
Wpisów: 1476
Guru Moderator
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

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 8:58 am
(@marcin_kutno)
Wpisów: 6
Bywalec
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

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 1:35 pm
Udostępnij: