Przełącznik switch

Cześć
ktoś podpowie mi jak w przełączniku ustawić a żeby po wykryciu temp pomiędzy 10 a 11sC informacja szła na wyjście 1 switsch-a
w przypadku temp w zakresie 11.1 do 12 na drugie wyjście itd.?
z góry dziękuje za pomoc

is between

1 Like

Musisz mieć wartości numeryczne.

Screenshot - 12.12.2024 , 21_48_24

Symulacja czujnika.

Screenshot - 12.12.2024 , 23_54_58

KOD:

[
    {
        "id": "inject-node",
        "type": "inject",
        "z": "1401d664616fc956",
        "name": "Symulacja Temperatury,",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "{\"sensorType\": \"temperature\", \"value\": 24}",
        "payloadType": "json",
        "x": 180,
        "y": 200,
        "wires": [
            [
                "temperature-route-node"
            ]
        ]
    },
    {
        "id": "temperature-route-node",
        "type": "switch",
        "z": "1401d664616fc956",
        "name": "Trasa temperatury",
        "property": "payload.value",
        "propertyType": "msg",
        "rules": [
            {
                "t": "lt",
                "v": "25",
                "vt": "num"
            },
            {
                "t": "gte",
                "v": "25",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 460,
        "y": 200,
        "wires": [
            [
                "below-25-node"
            ],
            [
                "above-25-node"
            ]
        ]
    },
    {
        "id": "below-25-node",
        "type": "debug",
        "z": "1401d664616fc956",
        "name": "Powyżej 25°C",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 690,
        "y": 160,
        "wires": []
    },
    {
        "id": "above-25-node",
        "type": "debug",
        "z": "1401d664616fc956",
        "name": "Poniżej 25°C",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 680,
        "y": 240,
        "wires": []
    }
]
1 Like

działa pięknie dziękuje za pomoc

Witam. Mam problem z odczytem statusu załączonego lub wyłączonego oświetlenia. Dane czytam z PLC po modbus TCP odpytując sterownik co 1s dane z PLC przychodzą poprawne natomiast kiedy chcę przesłać status do Home Assistant dzieją się dziwne rzeczy, sygnały przychodzą dużym opóźnieniem. W załączniku wysyłam jak to robię. Rejestr int zamieniam na bity po czym używam funkcji switch kiedy jest true i false to załącza lub wyłącza encję. |Co robię nie tak. Pozdrawiam

Czy trzeba, czy nie aktualizujesz wszyskie encje w jednej chwili.
Przerysuj to tak aby aktualizować tylko bity zmieniowe od ostatniego odczytu …
albo w ha zrób dodatkowy status 16bit i na jego podstawie, w ha analizuj ten status w encjach bitowych - w template value jako maska.

Dzięki za odpowiedź. Podpowiedz proszę jak to przerysować żeby wpisywać do HA tylko zmieniony bit

Nie ma na czym pracować, więc nie będe tego robił o zera.
Metoda jest taka, że musisz zapamiętac wartość odczytanego ostanio statusu i ją zapamietać.
Teraz gdy przychodzi nowy odczyt robisz
(poprzednia XOR obecna), wynik mówi czy coś się zminiło.
Jeśli będzie 0 - to nic, jeśli nie 0 to bity ustawione na 1 pokażą na którym bicie nastąpiła zmiana.
Teraz ten wynik podajesz na to co masz dotychczas.
Na końcu sprawdzasz tylko czy jest 1 i robisz call service toggle.
Rzeczy elementarne musisz doczytać. Wszysto jest nawet na tym forum … po kilka razy.