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
Musisz mieć wartości numeryczne.
Symulacja czujnika.
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": []
}
]
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.