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 Like

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.