Xiaomi Mi Air Purifier 3C - integracja z HA

aplikację w dalszym ciągu mam na telefonie czyli muszę ją usunąć i zostać tylko przy HA ??
usunąłem aplikację i straciłem dostęp w HA do oczyszczacza

Nikt tu nie mówił o usuwaniu aplikacji…
Ale przynajmniej potwierdziłeś, że miałeś to zintegrowane chmurowo.

Swoją drogą nie sądzę, aby aplikacja miała jakiekolwiek znacznie (nie wyobrażam sobie robienia integracji aż tak naokoło - używałeś do tego Taskera czy co? no chyba nie).

Moim zdaniem mylisz 2 oddzielne pojęcia - aplikację i chmurę…

Chyba musisz zrozumieć ideę komunikacji między urządzeniami - są 2 możliwości:

  • komunikacja za pośrednictwem chmury (aplikacja jest tylko dodatkowym interfejsem, wszystko dzieje się w rzeczywistości na serwerze dostawcy), w takim wypadku integracja może działać za pośrednictwem chmury, wtedy każda informacja biegnie na takiej drodze:
    urządzenie—sieć LAN—router—internet—serwer dostawcy (chmura, być może zlokalizowane w ChRL, zależy z którym serwerem łączy się twoje urządzenie)—internet—router(ten sam co przed chwilą)—sieć LAN—HA

  • komunikacja bezpośrednia (HA i urządzenie muszą być w tej samej sieci LAN, czasem wręcz w tym samym segmencie fizycznym), wtedy komunikacja przebiega tak:
    urządzenie—sieć LAN—HA

Niestety nie każde cińskie urządzenie potrafi działać z połączeniem lokalnym.

1 polubienie

czyli żeby skrócić komunikację to najlepiej połączyć HA bez pośrednio z moim Xiaomi dodając je w taki sposób
IP i Token ?? tylko gdzie znajdę token bo IP urządzenia mam :frowning:

Tylko by zdobyć token nie możesz wywalać sprzętu z chmury.

Zrób sobie rezerwację adresu na routerze (to technologicznie takie kombo ARP+DHCP, zwykle znajdziesz to w przydziałach DHCP).

1 polubienie

Utworzyłem połączenie lokalne HA-RUTER-Xiaomi
Przypisałem stałem IP
usunąłem całkowicie aplikację z telefonu zauważyłem że bateria leciała jak szalona zobaczymy jak teraz jedyny minus brak sterowania z zewnątrz chyba że wykupie pakiet HA :slight_smile:

Jaki wniosek podczas przesuwania suwaka wentylatora na inna szybkość np 1400 zmienia się dopiero jak jednostka PM się zmieni i wtedy wraca do ustawania z automatyzacji, logicznie myśląc tak to powinno działać zmienia się PM to od razu działa ustawiona automatyzacja zostawiam to tak jak jest nie przeszkadza mi to

Jedynie co mnie teraz nurtuję to te dziwne nazwy :frowning: czy zmiana ich na swoje popsuje cały kod i działanie ?? dobra odpowiem sobie sam na pytanie zmieniłem nazwy i dalej wszystko działa

Dzięki jeszcze raz za pomoc i kolejną wiedzę

1 polubienie

No nie jest to prawda, jest kilka metod połączenia się z HA zdalnie używając rozwiązań bezkosztowych (do wyboru 2 chmurowe VPN zerotier tailscale lub tunel innego dostawcy ais - to rozwiązanie znajdziesz na innym forum, z tych które nawet nie wymagają publicznego IP oraz metody dla twardzieli z wystawianiem instalacji do internetu jeśli się posiada publiczne IP zdalny-dostęp ), jakkolwiek NabuCasa jest rozwiązaniem wpierającym rozwój HA (z tej kasy są opłacani etatowi programiści).

1 polubienie

Panowie mogę was prosić jeszcze o ustawienie tego trybu nocnego albo automat, nie działa mi to coś :frowning:


alias: 15.25 Wyłącz Led i przełącz na tryb nocny
description: ""
trigger:
  - platform: time
    at: "15:25:00"
condition: []
action:
  - service: switch.turn_off
    data: {}
    target:
      entity_id: switch.filter_led #  Do podmiany (Switch- przełącznik - Ty masz number. xxxx ) Ta encja zmienia jasność wyświetlacza.  
  - service: fan.set_preset_mode
    data:
      preset_mode: Silent # U mnie jest "Silent" jako Noc.  
    target:
      entity_id: fan.filter  # Do podmiany
mode: single


Jak podmienisz encje to musi działać

W Edycji automatyzacji po prawej, górnej stronie 3 kropeczki kliknij uruchom by sprawdzić działanie
/
Jeśli nie masz podświetlenia On/Off to zmień akcje na

action:
  - service: number.set_value
    data:
      value: "1" # Może "0" to wyłączenie 
    target:
      entity_id: number.airp.mb4aLEDxxxxxx # Do podmiany
1 polubienie

oki teraz to działa w takiej formie jak poniżej tylko że jak zmieni się wartość PM to od razu włącza mi się ta druga automatyzacja i tryb nocny jest wyłączony :frowning: chciałbym mieć zakres 22:00-8:00 i żeby żadna inna automatyzację nie wyłączała mi tego trybu nocnego

alias: 12.56 Wyłącz Led i przełącz na tryb nocny
description: ""
trigger:
  - platform: time
    at: "12:56:00"
condition: []
action:
  - service: number.set_value
    data:
      value: "1"
    target:
      entity_id: number.zhimi_airp_mb4a_led_brightness
  - service: fan.set_preset_mode
    data:
      preset_mode: Silent
    target:
      entity_id: fan.zhimi_airp_mb4a
mode: single

OFF TOPIC

Popracuj nad formatowaniem kodu w postach - zobacz co dodałem i gdzie.
Zobacz jeszcze raz, bo mój wysiłek zniweczyłeś obrazkiem.

Screenshoty są fajne jako ilustracja (oraz tam, gdzie się naprawdę nie da skopiować tekstu), ale kod w postaci prawidłowo sformatowanego tekstu jest ważniejszy, szczególnie, że jest dostępny teraz gadżet do kopiowania kodu z postów.

1 polubienie

oki dodałem dopiski w 1 i 2 automatyzacji :slight_smile:

tryb automatyzacji :
condition:
  - condition: time
    after: "08:00:00"
    before: "22:30:00"

tryb nocny :
condition:
  - condition: time
    after: "23:02:00"
    before: "08:02:00"

i chyba to teraz chodzi

Wyłączyć automatykę można i takim sposobem:

service: automation.turn_off
data:
  stop_actions: true
target:
  entity_id: automation.filtr_w_zaleznosci_od_xxxxxx # automation.nazwa automatyki

cześć, fajnie że natrafiłem na Waszą dyskusje, sporo mi Twoje kody pomogły ale czy możesz pokazać jak np zrobić żeby przełączał się na AUTO gdy PM2.5 poniżej 10 a wyłączał gdy poniżej 3?

ps aktualnie mam coś takiego:

description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.zhimi_v6_1857_pm25_density
  - platform: time
    at: "22:01:00"
  - platform: time
    at: "07:01:00"
action:
  - if:
      - condition: time
        after: "22:00:00"
        before: "07:00:00"
    then:
      - service: fan.set_preset_mode
        data:
          preset_mode: Auto
        target:
          entity_id: fan.zhimi_v6_1857_air_purifier_2
    else:
      - if:
          - type: is_pm25
            condition: device
            device_id: 11aefxxxxxx
            entity_id: 774fd72f3xxxxxxx
            domain: sensor
            below: 4
        then:
          - service: fan.set_preset_mode
            data:
              preset_mode: Auto
            target:
              entity_id: fan.zhimi_v6_1857_air_purifier_2
        else:
          - service: fan.set_preset_mode
            data:
              preset_mode: Favorite
            target:
              entity_id: fan.zhimi_v6_1857_air_purifier_2
          - service: number.set_value
            data_template:
              entity_id: number.zhimi_v6_1857_favorite_fan_level
              value: >
                {% set poziom_zanieczyszczen =
                states('sensor.zhimi_v6_1857_pm25_density') | float %}  {% if
                poziom_zanieczyszczen < 4 %}
                  0
                {% elif poziom_zanieczyszczen < 10 %}
                  1
                {% elif poziom_zanieczyszczen < 20 %}
                  3
                {% elif poziom_zanieczyszczen < 30 %}
                  5
                {% elif poziom_zanieczyszczen < 40 %}
                  13
                {% elif poziom_zanieczyszczen < 50 %}
                  14
                {% elif poziom_zanieczyszczen < 60 %}
                  15
                {% elif poziom_zanieczyszczen < 70 %}
                  16
                {% elif poziom_zanieczyszczen < 80 %}
                  17
                {% else %}
                  17
                {% endif %}
mode: single

myśle że jeszcze co nieco tutaj pozmieniam ale brakuje mi możliwości przełączania pomiędzy trybami

Widzę że Favorite=1 to nieco szybciej niz Auto gdy PM jest poniżej 10

Może w ten sposób:( nie miałem jeszcze automatyzacji z If/then/else )

W tej wersji kodu, choose zastępuje bloki if-else ,

description: "Automatyzacja dla oczyszczacza powietrza"
trigger:
  - platform: state
    entity_id: sensor.zhimi_v6_1857_pm25_density
  - platform: time
    at: "22:01:00"
  - platform: time
    at: "07:01:00"
action:
  - choose:
      - conditions:
          - condition: time
            after: "22:00:00"
            before: "07:00:00"
        then:
          - service: fan.set_preset_mode
            data:
              preset_mode: Auto
            target:
              entity_id: fan.zhimi_v6_1857_air_purifier_2
      - conditions:
          - condition: numeric_state
            entity_id: sensor.zhimi_v6_1857_pm25_density
            below: 3
        then:
          - service: fan.turn_off
            target:
              entity_id: fan.zhimi_v6_1857_air_purifier_2
      - conditions:
          - condition: numeric_state
            entity_id: sensor.zhimi_v6_1857_pm25_density
            below: 10
        then:
          - service: fan.set_preset_mode
            data:
              preset_mode: Auto
            target:
              entity_id: fan.zhimi_v6_1857_air_purifier_2
          - service: fan.set_preset_mode
            data:
              preset_mode: Favorite
            target:
              entity_id: fan.zhimi_v6_1857_air_purifier_2
            data_template:
              entity_id: number.zhimi_v6_1857_favorite_fan_level
              value: >
                {% set poziom_zanieczyszczen = states('sensor.zhimi_v6_1857_pm25_density') | float %}
                {% if poziom_zanieczyszczen < 4 %}
                  0
                {% elif poziom_zanieczyszczen < 10 %}
                  1
                {% elif poziom_zanieczyszczen < 20 %}
                  3
                {% elif poziom_zanieczyszczen < 30 %}
                  5
                {% elif poziom_zanieczyszczen < 40 %}
                  13
                {% elif poziom_zanieczyszczen < 50 %}
                  14
                {% elif poziom_zanieczyszczen < 60 %}
                  15
                {% elif poziom_zanieczyszczen < 70 %}
                  16
                {% elif poziom_zanieczyszczen < 80 %}
                  17
                {% else %}
                  17
                {% endif %}
mode: single
1 polubienie

Dobra pobawię się dzięki
A wiesz jak to by było z włączeniem i wyłączeniem oczyszczacza, chodzi o kod który włączy lub wyłączy

Akcija - Off / On filtr

action:
  - service: fan.turn_off
    target:
      entity_id: fan.zhimi_v6_1857_air_purifier_2
    data: {}
.....
action:
  - service: fan.turn_on
    target:
      entity_id: fan.zhimi_v6_1857_air_purifier_2
    data: {}

Moja automatyzacja która wyłączy filtr i automatyzacje od filtra, jeśli drzwi/okna są otwarte ponad 10 minut i włączy po zamknięciu.

alias: Filtr On/Off - drzwi/okna
description: ""
trigger:
  - platform: state
    entity_id:
      - group.sensor
    from: "off"
    to: "on"
    for:
      hours: 0
      minutes: 1
      seconds: 0
condition: []
action:
  - service: fan.turn_off
    target:
      entity_id: fan.filter
    data: {}
  - service: automation.turn_off
    target:
      entity_id: automation.filtr_w_zaleznosci_od_zanieczyszczen
    data:
      stop_actions: true
  - wait_for_trigger:
      - platform: state
        entity_id: group.sensor
        from: "on"
        to: "off"
        for: "00:00:10"
    continue_on_timeout: false
  - service: automation.turn_on
    target:
      entity_id: automation.filtr_w_zaleznosci_od_zanieczyszczen
    data: {}
  - condition: numeric_state
    entity_id: sensor.filter_pm2_5
    above: 1
  - service: fan.turn_on
    target:
      entity_id: fan.filter
    data: {}
mode: restart
1 polubienie

Co znaczy restart na końcu komendy?

Czyli jak wyzwalacz otrzyma nowe dane automatyzacja nie “dobiegnie” do końca i zacznie od początku. " "
Lepsze wytłumaczenie jest tutaj:

1 polubienie

Łączysz sie przez chmure? Szybko Ci działa odświeżanie danych?
Robiłem tą automatyzację z nadzieją że będzie szybciej reagować ale chyba wcale tak nie jest.

:information_source:
Ja mam : zhimi.airpurifier.v7 (zakres prędkości * Favorite Level (0…16))

Jeśli ktoś ma zamiar wykorzysta mój kod to proszę zwrócić uwagę, że mam inny model niż w temacie i mogą być inne zakresy prędkości inne preset_modes jak i inne sensory.

@toahawk5000

Integracija Xiaomi Miio
Model: zhimi.airpurifier.v7

Działa bez opóźnień (On/Off, zmiana trybu pracy, zmiana obrotów silnika), odświeżanie danych - to co widzę na wyświetlaczu a w HA zwłoka około 3 sekund

1 polubienie