Czujnik wibracji Xiaomi Aqara Zigbee - wykrywanie dzwonka

Czujnik wibracji Xiaomi Aqara Zigbee - wykrywanie dzwonka

Natchniony tym co zobaczyłem na grupie, postanowiłem sam sobie zrobić taki fajniejszy dzwoneczek - zwłaszcza, że swój mam w szafie i prawie go nie słychać - tak po prostu był go wyjął na zewnątrz ale... po co - skoro można wykorzystać czujnik wibracji! 

Na początku muszę poinformować, że urządzenie łączyłem z Home Assistant - Zigbee2mqtt (CC2531 za 4$) a więc nie wykorzystywałem bramki od Xiaomi (Aqara). Czujnik możecie kupić na Aliexpress za 12$

Powiem Wam szczerze byłem zachwycony gdy do mnie przyszedł, tyle możliwości - przykleiłem na drzwi wejściowe i na tym się skończyło... okazał się zupełnie nieprzydatny po wykorzystaniu czujnik otwarcia / zamknięcia - drzwi / okien Xiaomi Aqara Zigbee - do sprawdzanie stanu zamka drzwi wejściowych.

Gdy przyszedł, powiedziałem sobie super! Będę sprawdzał stan otwarcia drzwi, jak przekroczy pewien kąt, to wiadomo, że otwarte - jednak akurat ta oś po prostu nie działa - na sprawdzenie czy okno jest uchylone, nada się idealnie ale niestety na drzwi poruszające się w swojej osi nie. Dobra jak ktoś zapuka, to będę wiedzieć - a co tam! Pukanie jest dla niego za słabe (mimo ustawienia na największą czułość).

A no właśnie - bo można ustawić 3 czułości: low, medium, high.

A wykrywać trzy akcje: drop, tilt and touch. Mi pokazuje w sumie tylko vibration, tilt i drop.

Dlatego jak kilka dni temu zobaczyłem na grupie pomysł z wykorzystaniem kontaktorów do dzwonka, pomyślałem - ale fajny pomysł ale trzeba dokupić przekaźnik z 230V... i nagle patrzę na komentarze i widzę tekst: a ja przykleiłem czujnik wibracji i działa. 

Mówię, też sobie przykleję no i wiecie co? DZIAŁA :D 

Wszystko sprzęgłem oczywiście z Home Assistant i zrobiłem automatyzację w NodeRED.

Jak możecie zobaczyć mam tam dwa skrypty. Jeden to mój ulubiony Alarm szczekający pies a drugi to po prostu tts mówiący o tym, że ktoś dzwoni. Tylko wcześniej jak pieseł ustawia odpowiednią głośność.  

[
    {
        "id": "1916726d.2dad6e",
        "type": "e-mail",
        "z": "af8908f3.ef9e38",
        "server": "smtp",
        "port": "465",
        "secure": true,
        "tls": true,
        "name": "Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.",
        "dname": "",
        "x": 950,
        "y": 200,
        "wires": []
    },
    {
        "id": "2a0dfa78.57cc06",
        "type": "api-call-service",
        "z": "af8908f3.ef9e38",
        "name": "Dog",
        "server": "b3e9b226.7fd0c",
        "version": 1,
        "debugenabled": false,
        "service_domain": "script",
        "service": "dog",
        "entityId": "",
        "data": "",
        "dataType": "json",
        "mergecontext": "",
        "output_location": "payload",
        "output_location_type": "msg",
        "mustacheAltTags": false,
        "x": 670,
        "y": 200,
        "wires": [
            []
        ]
    },
    {
        "id": "58a75239.c9fadc",
        "type": "server-state-changed",
        "z": "af8908f3.ef9e38",
        "name": "Doorbell",
        "server": "b3e9b226.7fd0c",
        "version": 1,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "entityidfilter": "sensor.0x00158d0002b7428e_action",
        "entityidfiltertype": "exact",
        "outputinitially": false,
        "state_type": "str",
        "haltifstate": "vibration",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "outputs": 2,
        "output_only_on_state_change": true,
        "x": 120,
        "y": 180,
        "wires": [
            [
                "ae587c7b.cec6d"
            ],
            []
        ]
    },
    {
        "id": "fa99eed6.ed02f",
        "type": "function",
        "z": "af8908f3.ef9e38",
        "name": "",
        "func": "msg = {\n    payload : \"Nikogo nie ma a ktoś dzwoni do drzwi, będzie szczekanie!\",\n    topic : \"Ktoś dzwoni do drzwi!\"\n};\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 670,
        "y": 160,
        "wires": [
            [
                "1916726d.2dad6e"
            ]
        ]
    },
    {
        "id": "ae587c7b.cec6d",
        "type": "api-current-state",
        "z": "af8908f3.ef9e38",
        "name": "Awesome w domu?",
        "server": "b3e9b226.7fd0c",
        "version": 1,
        "outputs": 2,
        "halt_if": "home",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "override_topic": false,
        "entity_id": "group.awesome_people",
        "state_type": "str",
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "blockInputOverrides": false,
        "x": 390,
        "y": 180,
        "wires": [
            [
                "3c2b45cf.3154fa"
            ],
            [
                "fa99eed6.ed02f",
                "2a0dfa78.57cc06"
            ]
        ]
    },
    {
        "id": "144118d2.5deb37",
        "type": "api-call-service",
        "z": "af8908f3.ef9e38",
        "name": "Doorbell",
        "server": "b3e9b226.7fd0c",
        "version": 1,
        "debugenabled": false,
        "service_domain": "script",
        "service": "doorbell",
        "entityId": "",
        "data": "",
        "dataType": "json",
        "mergecontext": "",
        "output_location": "payload",
        "output_location_type": "msg",
        "mustacheAltTags": false,
        "x": 900,
        "y": 80,
        "wires": [
            []
        ]
    },
    {
        "id": "3c2b45cf.3154fa",
        "type": "time-range-switch",
        "z": "af8908f3.ef9e38",
        "name": "od 8:00 do 23:00",
        "lat": "50.2443",
        "lon": "19.04186",
        "startTime": "08:00",
        "endTime": "23:00",
        "startOffset": 0,
        "endOffset": 0,
        "x": 630,
        "y": 40,
        "wires": [
            [
                "144118d2.5deb37"
            ],
            [
                "49f427a8.d6eef8"
            ]
        ]
    },
    {
        "id": "49f427a8.d6eef8",
        "type": "function",
        "z": "af8908f3.ef9e38",
        "name": "",
        "func": "msg = {\n    payload : \"Jest za wcześnie albo za późno to nie ma słów.\",\n    topic : \"Ktoś dzwoni do drzwi!\"\n};\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 670,
        "y": 100,
        "wires": [
            [
                "1916726d.2dad6e"
            ]
        ]
    }
]

scripts.yaml:

doorbell:
  alias: Doorbell
  sequence:
  - service: media_player.volume_set
    data:
      entity_id: media_player.mini_hallway
      volume_level: 0.8
  - delay: '00:00:02'
  - service: tts.google_translate_say
    entity_id: media_player.mini_hallway
    data_template: 
      message: ' Ktoś dzwoni do drzwi, może sprawdzimy kto to? '
      language: 'pl'
  - delay: '00:00:05'
  - service: media_player.volume_set
    data:
      entity_id: media_player.mini_hallway
      volume_level: 0.5     

Podsumowanie

Bardzo fajne, szybkie i proste rozwiązanie - od teraz już nie będzie hasła ale przecież dzwoniłem do drzwi - od mojego ukochanego kuriera ;)


Chcesz wiedzieć więcej? Dołącz do naszej grupy na FB - będzie nam też miło jak polubisz nasz Fanpage!