Procesy z życia wzięte - czujnik ruchu i światło - błąd

Zobacz sobie mój flow. można załączyć przez przycisk wtedy nie wyłączy nawet jak będzie brak ruchu. Jak włączy przez czujkę to można wyłączyć przyciskiem.

[
    {
        "id": "993657678892c48a",
        "type": "tab",
        "label": "Pod szafkami",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "47c5e15748d078b1",
        "type": "mqtt in",
        "z": "993657678892c48a",
        "name": "Czujnik kuchnia",
        "topic": "zigbee2mqtt/Czujka_kuchnia",
        "qos": "2",
        "datatype": "json",
        "broker": "9ece249d0e2b4a72",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 120,
        "y": 80,
        "wires": [
            [
                "d21a6d3b9a6c7a6b"
            ]
        ]
    },
    {
        "id": "d21a6d3b9a6c7a6b",
        "type": "switch",
        "z": "993657678892c48a",
        "name": "Czy ruch",
        "property": "payload.occupancy",
        "propertyType": "msg",
        "rules": [
            {
                "t": "true"
            },
            {
                "t": "false"
            }
        ],
        "checkall": "false",
        "repair": false,
        "outputs": 2,
        "x": 320,
        "y": 80,
        "wires": [
            [
                "42ac13977a8706c4",
                "66aa897a988b7a8f"
            ],
            [
                "0b07b4989dc538fe"
            ]
        ]
    },
    {
        "id": "66aa897a988b7a8f",
        "type": "change",
        "z": "993657678892c48a",
        "name": "Resetuj",
        "rules": [
            {
                "t": "set",
                "p": "reset",
                "pt": "msg",
                "to": "1",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 320,
        "y": 140,
        "wires": [
            [
                "0b07b4989dc538fe"
            ]
        ]
    },
    {
        "id": "0b07b4989dc538fe",
        "type": "delay",
        "z": "993657678892c48a",
        "name": "2 minuty",
        "pauseType": "delay",
        "timeout": "2",
        "timeoutUnits": "minutes",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 500,
        "y": 140,
        "wires": [
            [
                "4fc7b5c3d45c1386"
            ]
        ]
    },
    {
        "id": "42ac13977a8706c4",
        "type": "switch",
        "z": "993657678892c48a",
        "name": "Jasność",
        "property": "payload.illuminance_lux",
        "propertyType": "msg",
        "rules": [
            {
                "t": "lte",
                "v": "75",
                "vt": "num"
            },
            {
                "t": "gt",
                "v": "75",
                "vt": "num"
            }
        ],
        "checkall": "false",
        "repair": false,
        "outputs": 2,
        "x": 500,
        "y": 80,
        "wires": [
            [
                "8a66312efbba8560"
            ],
            []
        ]
    },
    {
        "id": "4fc7b5c3d45c1386",
        "type": "switch",
        "z": "993657678892c48a",
        "name": "Czy przyciskiem",
        "property": "kuchnia_p",
        "propertyType": "flow",
        "rules": [
            {
                "t": "false"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 700,
        "y": 140,
        "wires": [
            [
                "ec2bbe41d6879802"
            ]
        ]
    },
    {
        "id": "ec2bbe41d6879802",
        "type": "change",
        "z": "993657678892c48a",
        "name": "Wyłącz pod szafkami",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"state\":\"OFF\",\"brightness\":0}",
                "tot": "json"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "zigbee2mqtt/Ledy pod szafkami/set",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 940,
        "y": 140,
        "wires": [
            [
                "75a76fa1600d6a1f"
            ]
        ]
    },
    {
        "id": "8a66312efbba8560",
        "type": "change",
        "z": "993657678892c48a",
        "name": "Włącz pod szafkami",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "{\"state\":\"ON\",\"brightness\":254}",
                "tot": "json"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "zigbee2mqtt/Ledy pod szafkami/set",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 940,
        "y": 80,
        "wires": [
            [
                "75a76fa1600d6a1f"
            ]
        ]
    },
    {
        "id": "75a76fa1600d6a1f",
        "type": "mqtt out",
        "z": "993657678892c48a",
        "name": "Wyślij do MQTT",
        "topic": "",
        "qos": "0",
        "retain": "false",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "9ece249d0e2b4a72",
        "x": 1180,
        "y": 80,
        "wires": []
    },
    {
        "id": "f75a3e049b36ff45",
        "type": "mqtt in",
        "z": "993657678892c48a",
        "name": "Kuchnia",
        "topic": "shellies/shelly_pod_szafkami/input_event/0",
        "qos": "2",
        "datatype": "json",
        "broker": "9ece249d0e2b4a72",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 100,
        "y": 260,
        "wires": [
            [
                "c63e395b04210f83"
            ]
        ]
    },
    {
        "id": "c63e395b04210f83",
        "type": "switch",
        "z": "993657678892c48a",
        "name": "Czy krótkie",
        "property": "payload.event",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "S",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 290,
        "y": 260,
        "wires": [
            [
                "075bfe0375954c14"
            ]
        ]
    },
    {
        "id": "5fefd929ef59ca4d",
        "type": "inject",
        "z": "993657678892c48a",
        "name": "Po uruchomieniu",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 130,
        "y": 380,
        "wires": [
            [
                "c0f573d277771c16"
            ]
        ]
    },
    {
        "id": "c0f573d277771c16",
        "type": "change",
        "z": "993657678892c48a",
        "name": "Ustaw start",
        "rules": [
            {
                "t": "set",
                "p": "kuchnia_p",
                "pt": "flow",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 350,
        "y": 380,
        "wires": [
            []
        ]
    },
    {
        "id": "c12eb83dfad45b20",
        "type": "change",
        "z": "993657678892c48a",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "kuchnia_p",
                "pt": "flow",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 670,
        "y": 240,
        "wires": [
            [
                "ec2bbe41d6879802"
            ]
        ]
    },
    {
        "id": "e6b8bf9143fdb92e",
        "type": "change",
        "z": "993657678892c48a",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "kuchnia_p",
                "pt": "flow",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 670,
        "y": 280,
        "wires": [
            [
                "8a66312efbba8560"
            ]
        ]
    },
    {
        "id": "16cb7c1b6538dd5d",
        "type": "mqtt in",
        "z": "993657678892c48a",
        "name": "Ledy pod szafkami",
        "topic": "zigbee2mqtt/Ledy pod szafkami/action",
        "qos": "2",
        "datatype": "auto-detect",
        "broker": "9ece249d0e2b4a72",
        "nl": false,
        "rap": true,
        "rh": 0,
        "inputs": 0,
        "x": 130,
        "y": 460,
        "wires": [
            [
                "ded6d9eac74d3ef0"
            ]
        ]
    },
    {
        "id": "be181dae6e39762b",
        "type": "change",
        "z": "993657678892c48a",
        "name": "Ledy on",
        "rules": [
            {
                "t": "set",
                "p": "kuchnia_on",
                "pt": "flow",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 500,
        "y": 460,
        "wires": [
            []
        ]
    },
    {
        "id": "2bf4bf66b99c38d8",
        "type": "change",
        "z": "993657678892c48a",
        "name": "Ledy off",
        "rules": [
            {
                "t": "set",
                "p": "kuchnia_on",
                "pt": "flow",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 500,
        "y": 500,
        "wires": [
            []
        ]
    },
    {
        "id": "ded6d9eac74d3ef0",
        "type": "switch",
        "z": "993657678892c48a",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "on",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "off",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 330,
        "y": 460,
        "wires": [
            [
                "be181dae6e39762b"
            ],
            [
                "2bf4bf66b99c38d8"
            ]
        ]
    },
    {
        "id": "075bfe0375954c14",
        "type": "switch",
        "z": "993657678892c48a",
        "name": "",
        "property": "kuchnia_on",
        "propertyType": "flow",
        "rules": [
            {
                "t": "true"
            },
            {
                "t": "false"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 470,
        "y": 260,
        "wires": [
            [
                "c12eb83dfad45b20"
            ],
            [
                "e6b8bf9143fdb92e"
            ]
        ]
    },
    {
        "id": "9ece249d0e2b4a72",
        "type": "mqtt-broker",
        "name": "mqtt_HA_core",
        "broker": "192.168.10.63",
        "port": "1883",
        "clientid": "nodered_core",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "4",
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthRetain": "false",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    }
]

Patrzę na to i z moim obecnym doświadczeniem nie odnajduję się do końca;)
By zrozumieć sytuację: Ty masz u Siebie trzy urządzenia zigbee, którymi możesz “zarządzać”: czujnik ruchu, włącznik i żarówkę?
Ja mam tylko dwa bo żarówka jest standardowa i sterowana przełącznikiem bistabilnym. Czujnik ruchu zawsze włącza/wyłącza ten przełącznik a nie steruje bezpośrednio samą żarówką.

Czujnik włącza ten przełącznik, a co gdyby przełącznik się włączał bez udziału czujnika ? Jeśli masz możliwość użyć tego przełącznika bez naruszenia czujnika to jest to do zrobienia. Jakiś czas temu poruszałem podobny problem w dziale NR i wystarczy poszukać. Dla ułatwienia wstawiam fotkę przepływu, który to realizuje


Istotny jest nod switch “Czy przełącznik off?”, który sprawdza stan przełącznika i gdy przełacznik jest w stanie On, to blokuje wyzwolenie przepływu przez aktywny PIR co powoduje, że oświetlenie zostaje włączone do czasu ręcznego OFF.

Rozumiem co piszesz a przynajmniej tak i się wydaje.
Problem w tym, że nie mam żarówki smart tylko zwykłą a czujnik ruchu włącza smart przełącznik. Stan tego przełącznika jest zawsze znany w HA i zawsze taki sam jak świecenie żarówki (bo to zwykła żarówka). Stanu tego przełącznika nie da się odróżnić jeśli włączy go PIR albo ja przyciskiem. Zawsze jest ON i żarówka świeci lub OFF i żarówka nie świeci. Nie ma takiej sytuacji jak wydaje mi się wymagana do procesu czyli przełącznik jest w pozycji OFF a żarówka świeci lub odwrotnie. To zadziała przy “smart żarówce” i “smart przełączniku” gdzie proces może sprawdzić stan obu i wykonać odpowiednie działania. U mnie przełącznik i żarówka to niestety “jedno urządzenie”.
Oczywiście głowy za to nie dam z uwagi na brak doświadczenia;)

Sprzęt jaki mam obecnie to przełącznik Gosund SW9 a czujnik Aqara P1.
To co chciałbym osiągnąć to mieć automatyczne światło uruchamiane i gaszone z czujnika a w razie potrzeby włączyć je lub wyłączyć w taki sposób by nie reagowało na czujkę ruchu.

Rozumiem, że nie możesz nacisnąć klawisza na tym Gosund SW9 bez naruszenia Aqara P1 ? Bo jeśli możesz, to wszystko możesz :slight_smile: Włączenie żarówki zanim czujnik Aqara wykryje ruch pozwala rozróżnić czy:

  1. Żarówkę włączył czujnik
  2. Żarówkę włączył przełącznik przed zadziałaniem czujnika
    Takie dwa różne stany pozwalają na zrobienie automatyki, o której myślisz, a przepływ z mojego obrazka to realizuje

Teoretycznie mogę choć praktycznie przełącznik jest w zasięgu działania czujki a nie chciałbym się też zastanawiać za każdym razem czy aby go niechcący nie aktywowałem;)
Wrzuciłbyś proszę kod do tego procesu tak, bym mógł podpatrzeć co jest w środku?
Rozumiem, że to rozwiązanie zadziała tylko jeśli kliknę przełącznik jeszcze przed wykryciem ruchu?
Problem dotyczy głównie kuchni gdzie czasem, jak żona się zamyśli przy obieraniu marchewki gdzie praktycznie nie wykonuje większych ruchów przez 1-2 minuty to jej światło gaśnie i się irytuje. Niestety jest wtedy w zasięgu czujki. Problem może nieistotny ale generalnie chciałbym to rozwiązanie zastosować w innych miejscach. Innym rozwiązaniem jest czujnik obecności choć tu potrzeba stałego zasilania i wymiany czujników a ten, który miałem (OXT) jakoś nie powalał sprawnością w stosunku do Aqara, przynajmniej w kuchni. W łazience, za szybą prysznica to inna sprawa.

W opisanym Twoim przypadku nie da się tego rozwiązać.
Potrzebujesz dodatkowy przekaźnik np. dopuszkowy, który będzie uruchamiany czujką… a włącznik działa niezależnie.

No właśnie tego się obawiam, że bez dodatkowego “pstryczka” się nie da.
Generalnie trochę “niezbyt smart” zacząłem przygodę z HA i mam kilka przełączników wifi, które z czasem będę zmieniał na zigbee plus żarówki też zigbee. Wtedy problem rozwiąże powyższy przykład procesu.

Tak czy siak, dzięki Wszystkim za pomoc:)

Można spróbować wgrać tasmotę i rozdzielić programowo przycisk od przekaźnika.
Wymagałoby to osobnej reguły, która publikowałaby w MQTT dodatkowo stan przycisku… wtedy to inna mowa :slight_smile:

…i tu @angler byłby pomocny.

1 polubienie

Nie poddajemy się, zaraz coś wymyślę. Czy używasz Zigbee2MQTT? Czy możesz sprawdzić jaki układ elektroniczny masz w tym włączniku?

Z tego co piszą to Wifi i zwykły ESP…taki jak podlinkowałem

Należało by to sprawdzić zanim się rozkręcę, na początek taka informacja - można sterować urządzeniem z Tasmota po MQTT, więc NR może przejąć całkowicie władzę. Nie jestem zwolennikiem takich rozwiązań i myślę o regule, która była by uwarunkowana od stanu czujnika.

Use Zigbee to control Tasmota devices

A na taką ewentualność jest gotowiec, ale nadal oddajemy władzę NR:

Send MQTT message on button press

Rule1
  ON button1#state DO publish cmnd/ring2/power %value% ENDON
  ON button2#state DO publish cmnd/strip1/power %value% ENDON

Nie musisz publikować jako power… niech włącznik działa normalnie… jak działał
tyko naciśnięcie przycisku publikuje np.

Rule1
  ON button1#state DO publish stat/ring2/button true ENDON
  ON button2#state DO publish stat/strip1/button true ENDON

Będzie wtedy info czy przełączenie nastąpiło do przycisku.
Dawno temu to robiłem… ale zbyt dużo czasu musiałbym poświęcić aby to odtworzyć.

Dzięki za pomoc i chęć rozwiązania ale szkoda Waszego czasu bo nie jestem jeszcze tak zaawansowanym użytkownikiem bym to później wprowadził w życie:)
Póki co zostanę przy obecnym procesie a z czasem pewnie wymienię przełączniki i żarówki.

Nie wiem czy dobrze wybrałem watek. Morduje sie z tym juz od jakigos czasu. Dziś udało mi sie sprobowac poraz pierwszy zrobic prosta automatyzacje i oczywiscie nie bez problemow. W procesie bierze udział czujka ruchu i obecnosci i zarówka. Chce zeby po wykryciu ruchu zarowka sie zaswiecila a gdy go nie mam zgasla.
Ale niestety zarowka sieci sie caly czas. Czujnik zmienia stan i ladnie to pokazuje zmieniajac kwadracik. Co do cholery robie zle?



@Seeyeufel zamiast Entity spróbuj wybrać “Device”. Dodaj sobie pola debug by zdiagnozować jakie komunikaty ci zwraca. Możesz też przed service call wstawić sobie Inject. Wtedy jak klikniesz na przycisk przy nim to wywołasz flow. Sprawdzisz w ten sposób czy service call poprawnie ci reaguje na włączenie/wyłączenie światła.

Ja używam czujki, nie jako czujki ruchu a jako czujki obecności. Czyli sam muszę włączyć światło (gdy uważam że jest taka potrzeba) i świeci ono tak długo aż czujka wykrywa ruch.

Gdy czujka przestaje wykrywać ruch i światło się świeci to czeka minutę i gasi światło. Jeżeli w ciągu tej minuty ruch zostanie ponownie wykryty to leci reset na timer by światło nie zgasło. To takie zabezpieczenie jakbysmy wyszli z pomieszczenia i za chwilę do niego wrócili albo gdybyśmy tam słabo się ruszali że czujka przestałaby wykrywać ruch.