Odkurzacz xiaomi

Ha, działa :slight_smile: Tak jak napisali w dokumentacji, nr od 16 wzwyż są przypisane do stref zdefiniowanych przez usera. U mnie akurat jest 6 takich stref ale ich kolejność jest według klucza którego nie potrafię odkryć. Metodą prób dowiedziałem się że pomieszczenie oznaczone przeze mnie jako 1 ma nr 19, 2 to 21, 3 - 20, 4 - 17 itd. Może ma to związek z koordynatami o których pisałem w poprzednim poście?
Niemniej działa :slight_smile:
Może pomoże ktoś w stworzeniu automatyzacji, która spowoduje że wykona się się tylko w dniu w którym odkurzacz sprzątał?

Jeżeli robisz w NodeRed to mogę Ci dać gotowca żeby jechał rano pod śmietnik jak w dniu poprzednim sprzątał.

1 polubienie

Cześć, jak już się pochwaliłeś to daj. :grinning: może wkońcu wezmę się za integrację swojego.

Zasada jest prosta, jak jest cleaning przez 5 min to zapisujemy sobie w global że odkurzacz pracował,
rano jak mam komunikat poranny to jeżeli odkurzacz ma status że pracował to jedzie do kosza, jak opróżnię i odeślę go do bazy to zmienia się status że odkurzacz nie pracował.
Możecie sobie dać injecta rano z godziną, żeby o konkretnej pojechał.
Status czy pracował wykorzystuje również w automatyzacjach, np. jak nikogo nie ma w domu to ma odkurzać, ale jak pracował dzisiaj to nie odkurzaj ponownie.

[{"id":"ad6c8366.80498","type":"server-state-changed","z":"6f5c3793.8d3fb8","name":"","server":"4d0e02c9.2307bc","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"vacuum.roborock_vacuum_s5","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"‘cleaning’","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"5","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":230,"y":1800,"wires":[["6740c7c7.7f8998"],[]]},{"id":"6740c7c7.7f8998","type":"change","z":"6f5c3793.8d3fb8","name":"Czy pracował - true","rules":[{"t":"set","p":"odkurzacz_pracowal","pt":"global","to":"true","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":560,"y":1810,"wires":[[]]},{"id":"b7546b78.5991a8","type":"comment","z":"6f5c3793.8d3fb8","name":"Jak pracował to true","info":"","x":150,"y":1750,"wires":[]},{"id":"5f86dc7d.0f5514","type":"change","z":"6f5c3793.8d3fb8","name":"Czy pracował - false","rules":[{"t":"set","p":"odkurzacz_pracowal","pt":"global","to":"false","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":550,"y":1850,"wires":[[]]},{"id":"1806b20d.f826fe","type":"inject","z":"6f5c3793.8d3fb8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":"1","topic":"","payload":"","payloadType":"date","x":340,"y":1850,"wires":[["5f86dc7d.0f5514"]]},{"id":"8bd38500.e1a338","type":"inject","z":"6f5c3793.8d3fb8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":350,"y":1750,"wires":[["6740c7c7.7f8998"]]},{"id":"1deb2cce.92b223","type":"link in","z":"6f5c3793.8d3fb8","name":"","links":["28e4c59e.a987ea"],"x":95,"y":1680,"wires":[["91b11f3e.5eda1"]]},{"id":"91b11f3e.5eda1","type":"switch","z":"6f5c3793.8d3fb8","name":"Czy pracował?","property":"odkurzacz_pracowal","propertyType":"global","rules":[{"t":"eq","v":"true","vt":"str"},{"t":"neq","v":"true","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":240,"y":1680,"wires":[["ab2b8ef6.d7ece"],[]]},{"id":"ab2b8ef6.d7ece","type":"function","z":"6f5c3793.8d3fb8","name":"Kosz","func":"msg.payload=\n{\n    \"data\":\n    {\n        \"entity_id\": \"vacuum.xiaomi_vacuum_cleaner\",\n        \"x_coord\": \"16500\",\n        \"y_coord\": \"32500\"\n    }\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":1680,"wires":[["8092a722.afd9c8"]]},{"id":"8092a722.afd9c8","type":"api-call-service","z":"6f5c3793.8d3fb8","name":"","server":"4d0e02c9.2307bc","version":3,"debugenabled":false,"service_domain":"xiaomi_miio","service":"vacuum_goto","entityId":"vacuum.roborock_vacuum_s5","data":"","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":610,"y":1680,"wires":[["2001445f.2b16cc"]]},{"id":"4cd558cf.8bf468","type":"change","z":"6f5c3793.8d3fb8","name":"Czy pracował - false","rules":[{"t":"set","p":"odkurzacz_pracowal","pt":"global","to":"false","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1260,"y":1680,"wires":[[]]},{"id":"43f19720.282be8","type":"ha-wait-until","z":"6f5c3793.8d3fb8","name":"Czekaj az bedzie docked","server":"4d0e02c9.2307bc","version":0,"outputs":1,"entityId":"vacuum.roborock_vacuum_s5","entityIdFilterType":"exact","property":"state","comparator":"is","value":"‘docked’","valueType":"str","timeout":"","timeoutType":"num","timeoutUnits":"hours","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":true,"x":1030,"y":1680,"wires":[["4cd558cf.8bf468"]]},{"id":"2001445f.2b16cc","type":"delay","z":"6f5c3793.8d3fb8","name":"","pauseType":"delay","timeout":"60","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"x":830,"y":1680,"wires":[["43f19720.282be8"]]},{"id":"02dba79974400bf1","type":"comment","z":"6f5c3793.8d3fb8","name":"Jak poranny komunikat to jedź do kosza","info":"","x":210,"y":1620,"wires":[]},{"id":"4d0e02c9.2307bc","type":"server","name":"Asystent domowy","version":1,"legacy":false,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
1 polubienie

Problem w tym, że miałem problem z instalacją NodeRed :expressionless: Dlatego próbuję radzić sobie bez niego.
Chodzi mi po głowie pomysł aby wykorzystać clean_stop, podaje datę i godzinę ostatniego zakończenia sprzątania, tylko jak?

Czyli miałeś problem z NodeRed i postanowiłeś zmienić ten problem na inny?
Oczywiście rób jak chcesz, ale jak chcesz robić dużo automatyzacji i to tych skomplikowanych to w NR możesz je robić szybciej i łatwiej, tak uważam.

A to co piszesz to możesz zrobić tą samą logiką tylko nie zapisujesz w global (jest to rodzaj zmiennej w NR) tylko zrobisz sobie pomocnika w HA, w którym będziesz zmieniał stan “pracowal/niepracowal”

Zasada jest prosta, jak jest cleaning przez 5 min to zapisujemy sobie w pomocniku że odkurzacz pracował, rano jak mam komunikat poranny to jeżeli odkurzacz ma status że pracował to jedzie do kosza, jak opróżnię i odeślę go do bazy to zmienia się status w pomocniku że odkurzacz nie pracował.

1 polubienie

A uzywa ktoś może z Viomi? Udało mi się odpalić miio2 po poprawkach, ale nie mogę rozgryźć jak w tej wtyczce wysłać do punktu…

Dziękuję za pomoc, rozwiązałem problem tak jak radziłeś pomocnikiem. Nie chciałem zastąpić problemu innym tylko dojść do rozwiązania, co dzięki Twojej pomocy nastąpiło :wink:
A tak przy okazji, pomożesz z instalacją NR? :smiley:

W tym wątku masz wszystko, z instrukcją krok po kroku.

witam mam problem z tym dodalem wszystkie pliki tak jak w instrukcji
Platform error vacuum.miio2 - Requirements for miio2 not found: [‘python-miio==0.5.9.1’].

witam czy moglbys wyslac me sceeny gdzie wrzuciles custom components miio2 ?

Zmień wersję integracji na starszą:

Wszystko działa również jak by ktoś szukał jak by mapa się zmiejszała to Pan Piotrek udzielił mi informacji i przekazuję dalej aby nie truć mu głowy hehe.
Dodajemy wpis w configuration.yaml lub pliku camera.yaml zalezy gdzie mamy konfigurację.
Ten Wpis
1221

  • platform: xiaomi_cloud_map_extractor
    host: xxxxxxxxxxxx
    token: xxxxxxxxxx
    username: xxxxxxxxxxx
    password: xxxxxxxxxx
    name: Benio
    draw: [‘all’]
    map_transformation:
    scale: 2 tutaj nie zmieniamy zmieniłem na 12 i bramka padła
    trim:
    top: 10
    bottom: 10
    left: 10
    right: 10

tam gdzie są 10 mapę dostosowujemy pod siebię wartości zwiekszamy co 10 i patrzymy czy nam mapa pasuję.Nie restartujemy AIS tylko w kontroli serwera klikamy na Ponowne wczytanie konfiguracji YAML ->>>>Klikamy na "Domenę Xiaomi_cloud_map_extractor.

Witam czy ktoś wie jak zrobić aby wyswietlał się poziom wody z integracjii Pana Piotra
Widzę atrybut “Water grade: 12”.Mile widziany był by jakiś podgląd w żródło abym miał podglad jak ro robić na przyszlość

Odkurzacz nie wie ile ma wody - natomiast ta liczba 12 oznacza ilość podawanej wody podczas mopowania - z doświadczenia ustawiam raz i zapominam.
O ile dobrze pamiętam to ilość podawanej wody miała takie wartości:
11 - mało
12- standardowo
13 - dużo

Ok już będę wiedział

czw., 30 gru 2021, 14:58 użytkownik Dawid Przybylski z AI-Speaker <ai_speaker@discoursemail.com> napisał:

Czy ktoś wie gdzie zrobiłem bład?

type: custom:xiaomi-vacuum-map-card
preset_name: Live map
entity: vacuum.benio
map_source:
  camera: camera.benio
calibration_source:
  camera: true
vacuum_platform: KrzysztofHajdamowicz/miio2
map_modes:
  - template: vacuum_clean_segment
    predefined_selections:
      - id: 12
        label:
          text: Komputer
          x: 7.95
          'y': -2.65
        icon:
          name: mdi:desktop-tower
          x: 7.95
          'y': -1.95
      - id: 13
        label:
          text: Sypialnia
          x: 5.4
          'y': -3.4
        icon:
          name: mdi:bed
          x: 5.4
          'y': -2.6
      - id: 15
        label:
          text: Wejscie
          x: 1.2
          'y': -3.9
        icon:
          name: mdi:exit-run
          x: 1.2
          'y': -3.1
      - id: 14
        label:
          text: Salon
          x: 5.5
          'y': 2.55
        icon:
          name: mdi:television
          x: 5.45
          'y': 3.25
      - id: 11
        label:
          text: Oliwier
          x: 1.5
          'y': 5.9
        icon:
          name: mdi:emoticon-cool-outline
          x: 1.5
          'y': 6.5
      - id: 10
        label:
          text: Lazienka
          x: 1.15
          'y': 1.95
        icon:
          name: mdi:shower
          x: 1.15
          'y': 2.55
additional_presets:
  - preset_name: Static image
    entity: vacuum.benio
    map_source:
      image: /local/img/oknoZ.png
    map_locked: true
    calibration_source:
      calibration_points:
        - vacuum:
            x: 22633
            'y': 31641
          map:
            x: 322
            'y': 172
        - vacuum:
            x: 22633
            'y': 26514
          map:
            x: 322
            'y': 1342
        - vacuum:
            x: 34283
            'y': 26514
          map:
            x: 2993
            'y': 1342
    map_modes:
      - template: vacuum_clean_segment
        predefined_selections:
          - id: 12
            label:
              text: Komputer
              x: 7.95
              'y': -2.65
            icon:
              name: mdi:desktop-tower
              x: 22932
              'y': 31915

Zrobiłem działa

    map_modes:
      - name: Rooms
        icon: mdi:floor-plan
        selection_type: ROOM
        max_selections: 5
        repeats_type: NONE
        max_repeats: 5
        service_call_schema:
          service: script.1640985949766
          service_data:
            rooms: '[[selection]]'
            predefined: 'true'
          target:
            entity_id: '[[entity_id]]'
        predefined_selections:
          - id: 1
            label:
              text: Bedroom
              x: 7.95
              'y': -2.65
            icon:
              name: mdi:bed
              x: 22932
              'y': 31915

nalezy utworzyć przy static image script

sequence:
  - data:
      command: set_mode_withroom
      params:
        - 0
        - 1
        - 1
        - 12
    entity_id: vacuum.benio
    service: vacuum.send_command
mode: single
alias: benio komputer

Wszystko działa poprostu użylem starej konfiguracji
Static image może komuś się to przyda

type: custom:xiaomi-vacuum-map-card
entity: vacuum.benio
map_source:
  image: /local/img/mapabenio.jpg
vacuum_platform: KrzysztofHajdamowicz/miio2
calibration_source:
  calibration_points:
    - vacuum:
        x: 0
        'y': 0
      map:
        x: 0
        'y': 0
    - vacuum:
        x: 1
        'y': 1
      map:
        x: 1
        'y': 1
    - vacuum:
        x: 1
        'y': 0
      map:
        x: 1
        'y': 0
map_modes:
  - template: vacuum_clean_segment
    predefined_selections:
      - id: 12
        icon:
          name: mdi:desktop-tower
          x: 757.95
          'y': 966
      - id: 13
        icon:
          name: mdi:bed
          x: 457.95
          'y': 966
      - id: 15
        icon:
          name: mdi:exit-run
          x: 157.95
          'y': 1066
      - id: 14
        icon:
          name: mdi:television
          x: 557.95
          'y': 386
      - id: 11
        icon:
          name: mdi:emoticon-cool-outline
          x: 157.95
          'y': 120.5
      - id: 10
        icon:
          name: mdi:shower
          x: 157.95
          'y': 486
language: pl
style: |
  ha-card {
   background: #32323200;
  }
map_locked: true