함수에는 문제가 없습니다. 스톱으로만 나온이유는 처음 디플로이하고 멀티 스위치 두개, 모드와 개폐기 스위치는 한번은 작동을 해야 그 값이 입력 받을 수 작동될 수 있게 되어있어요. 그래서 설정모드 스위치를 수동에 두고 개폐기 열기 닫기 중지 해보세요..작동될거에요..모드를 온도로 변경하고 설정온도를 변경한다음 온도를 보내보세요...잘 작동 될거에요,,,,원래 대시보드 스위치값들은 새로 디플로이(배포하기)하면 값이 초기화되게 되어 있어요..원래 그래요.. 영상 정주행하시면 해결방법도 나옵니다.@@에프닷
var up=context.get('up')||0; var down = context.get('down')||0; var t = context.get('t')||0; var mu = context.get('mu')||{}; var manualmode=context.get('manualmode')||{}; if (msg.topic=='high_temp') {up={payload:msg.payload}; context.set('up',up);} if (msg.topic=='low_temp') {down={payload:msg.payload}; context.set('down',down);} if (msg.topic=='temp'){t={payload:msg.payload}; context.set('t',t);} if (msg.topic=='mode'){mu={payload:msg.payload}; context.set('mu',mu);} if (msg.topic=='manual'){manualmode={payload:msg.payload}; context.set('manualmode',manualmode);} if ((t.payload>=up.payload)&&mu.payload=='set_temp') {return {topic:'open',payload:"opened"};} else if((t.payloaddown.payload && t.payload
자세한 설명에 감사드립니다. 보다 더 안정적으로 작동이 될 것 같습니다.
네~~~^^
김박사님 혹시 이것처럼 대시보드에서
자동이였을때 열림시간 닫힌시간에따라 월화수목금토에 반복적으로 작동하게 하려면 노드 구성이 어려울까요 ? 측창을 시간에따라 열고닫고 하고싶은데
혹시 아두이노 dht 센서랑 연결해서 실제 선세 구동좀 해보려고 하는데 topic값에 temp 값을 넣으면 되려나요 ?자세한 설명 혹시 있을까요
아두이노가 아니라 esp32로 mqtt topic 통해서 하시면되요 mqtt관련 영상과 사용법은 모두 영상 목록에 있습니다...차근히 하나하나 따라 해보세요
@@philiaa1 넵 죄송합니다 설명을 아두이노 라고 했네용 라즈베리파이 gpio 4번핀에 dht22를 넣구 체인지 노드로 topic값을 temp 값으로 치환후
펑션노드에 값을넣구 디버깅해보니 stoped 값밖에 안나와서요 음 다시한번 동영상 보고 따라해 보겠습니다 죄송합니다.
@@오원영-w6d ruclips.net/video/qTZjiyMVYhg/видео.html 직접 dht22를 라즈베리보드에 연결할 경우, payload는 온도값, humidity는 습도값이므르 change node를 사용해서 topic값을 temp로 변경한후 사용하되, 디버그 노드로 dht22온도값이 잘 전달되는지 확인하세요
@@philiaa1 잘됩니다 ㅎㅎ
좋은영상보고 좋은 가르침을 받구있네요 감사드립니다
소스 수정은 했는데 dsm아래 계속 stopped라고만 나오고 뭘해도 계속 스톱으로만 나오고 아무 작동도 안되네요. 소스 올리니 너무 길어 지워져 버리네요. 에공... 따라하는것도 쉽지 않네요
답이 늦어 죄송합니다...아마 function 내용중 강의 영상에 밑줄 처진 부분은 예제를 위한 것이기때문에 삭제하셔야 해요...혹시 안돼시면 코드를 philiaa@nate.com 으로 보내주세요
@@philiaa1 멜 드렸습니다
함수에는 문제가 없습니다. 스톱으로만 나온이유는 처음 디플로이하고 멀티 스위치 두개, 모드와 개폐기 스위치는 한번은 작동을 해야 그 값이 입력 받을 수 작동될 수 있게 되어있어요. 그래서 설정모드 스위치를 수동에 두고 개폐기 열기 닫기 중지 해보세요..작동될거에요..모드를 온도로 변경하고 설정온도를 변경한다음 온도를 보내보세요...잘 작동 될거에요,,,,원래 대시보드 스위치값들은 새로 디플로이(배포하기)하면 값이 초기화되게 되어 있어요..원래 그래요.. 영상 정주행하시면 해결방법도 나옵니다.@@에프닷
@@philiaa1 다해봤는데 여전히 스톱으로만 되어 있고, 아무 작동도 안됩니다. ㅜㅜㅜ 수십번 해봐도 안되고, 혹 철자가 틀렸나 다 봐도 안되네요.... 라즈베리 gpio에 4채널 릴레이 연결되어 있는데 완전 먹통입니다.
@@에프닷 일단 릴레이 라즈베리파이 에서 제거하시고 디버그 모드로 확인해보세요
var up 변수에 msg.payload값을 넣으면 up에 undefined 값이 들어가 작동되지 않는데 설명 부탁드립니다.
대시보드 numeric 위젯 설정에서 topic 이름과 function 내부의 토픽 이름이 일치하는지 확인해보시고, 코드중 변수나 이름이 일치하게 작성하셨는지 확인해보세요
김박사님! 출력해보니 numeric에서 전달은 잘되는데 function에서 처리가 안되는 거 같아요, context는 up 온도를 읽어오지못하고 flow는 up온도 이전값을 가지고 오는데
function 소스나 전체 소스을 올려 주실수 있나요?
감사합니다.
김박사님 감사합니다. 처음 배포후 측창온도나 설정모드등을 자동으로 읽어오지 못한 것때문입니다, 설정모드나 온도설정을 변경후 해야 된다는 간단한 이유입니다(context 변수 사용시)
네..그래서 설정값 저장 루틴이 필요합니다.
감사합니다
var up=context.get('up')||0;
var down = context.get('down')||0;
var t = context.get('t')||0;
var mu = context.get('mu')||{};
var manualmode=context.get('manualmode')||{};
if (msg.topic=='high_temp') {up={payload:msg.payload}; context.set('up',up);}
if (msg.topic=='low_temp') {down={payload:msg.payload}; context.set('down',down);}
if (msg.topic=='temp'){t={payload:msg.payload}; context.set('t',t);}
if (msg.topic=='mode'){mu={payload:msg.payload}; context.set('mu',mu);}
if (msg.topic=='manual'){manualmode={payload:msg.payload}; context.set('manualmode',manualmode);}
if ((t.payload>=up.payload)&&mu.payload=='set_temp')
{return {topic:'open',payload:"opened"};}
else if((t.payloaddown.payload && t.payload
else if ((t.payload > down.payload && t.payload < up.payload) && mu.payload == 'set_temp')
{ return { topic: 'stop', payload: "stopped" };} 이부분은 예제 설명을 위한 부분이라 삭제 하셔야 하고, 조건문에서 'close"&mu.payload부분에서 &하나 빠졋구요, 맨 밑에줄 topic:'stop 에서 ' 빠지셨어요
아 그리고 payload를 paylaod로 쓰신부분있습니다.
@@philiaa1 에고 저녁에 함 보겠습니다 감사합니다