2022. 12. 22. 16:56ㆍ개발/Node-red
2022.11.21 - [기록/개발 노트] - [Node-red] Schedule node 수정 - 4
[Node-red] Schedule node 수정 - 4
2022.11.21 - [기록/개발 노트] - [Node-red] Custom node 수정 - 3 [Node-red] Custom node 수정 - 3 마지막 수정 후 보완할 점들 mqtt 통신 불안정 mqtt 통신 불안정에 따른 Node-red 서버 중지 ( cmd 에서 자주 node-red 종료
iruk.tistory.com
2022.12.05 - [기록/개발 노트] - [Node-red] Relay node 제작
[Node-red] Relay node 제작
2022.11.21 - [기록/개발 노트] - [Node-red] Schedule node 수정 - 4 [Node-red] Schedule node 수정 - 4 2022.11.21 - [기록/개발 노트] - [Node-red] Custom node 수정 - 3 [Node-red] Custom node 수정 - 3 마지막 수정 후 보완할 점들 mq
iruk.tistory.com
MQTT 통신을 사용하는 노드를 제작했었다.
동작에는 아무 문제가 없었지만 사용하면서 한 가지 오류가 발생했다.
MQTT 를 사용하지 않는 기존에 제작한 노드
'스케쥴노드' 는 복수개의 선택이 가능하다.
하지만
위와 같이 MQTT 를 사용하는 노드는 중복이 안된다.
두 노드의 차이점을 비교해보았다.
HTML 파일
<!-- schedule 노드 ( 오류발생 노드 ) -->
<script type="text/javascript">
RED.nodes.registerType('라이트토크',{
category: '릴레이노드',
color: '#C0DEED',
defaults: {
name: {value:""},
id : {value : "", required: true},
startTime : {value : ""},
endTime : {value : ""},
heat : {value : ""},
cool : {value : ""},
exha : {value : ""},
led : {value : ""}
},
inputs:1,
outputs:4,
icon: "file.png",
label: function() {
return this.name||"라이트토크";
},
oneditsave: function() {
var id = $("#node-config-input-id").val();
//var startTime = $("#node-config-input-startTime").val();
//var endTime = $("#node-config-input-endTime").val(); 2022-11-17 수정
//console.log(id);
var node = this;
node.id = id;
//node.startTime = startTime;
//node.endTime = endTime; 2022-11-17 수정
},
oneditprepare : function() {
$("#node-config-input-id").show();
var node = this;
}
});
</script>
MQTT 사용하는 schedule 노드의 .html 파일이다.
<!-- 오류 없는 노드 ( mqtt 미사용 )-->
<script type="text/javascript">
RED.nodes.registerType('스케쥴노드',{
category: '릴레이노드',
color: '#DDA0DD',
defaults: {
name: {value:""},
startTime : {value : ""},
endTime : {value : ""}
},
inputs:1,
outputs:1,
icon: "file.png",
label: function() {
return this.name||"스케쥴노드";
}
});
</script>
MQTT 없이 동작하는 오류 없는 노드 .html 파일이다.
노드 명, 카테고리 등 오류라고 할만한 부분이 딱히 없다.
package.json 파일
// schedule 노드 ( 오류발생 노드 )
{
"name": "lighttalk_schedule_nodes",
"version": "1.0.6",
"description": "schedule node for node-red",
"main": "lighttalk.js",
"node-red": {
"nodes": {
"lighttalk_schedule": "lighttalk.js"
},
"version": ">=2.0.0"
},
"keywords": [
"node-red"
],
// 오류 없는 노드 ( mqtt 미사용 )
{
"name": "lighttalk_schedule_no_mqtt",
"version": "1.0.0",
"description": "sending payload with schedule",
"dependencies": {
},
"keywords": [ "node-red" ],
"main": "schedule_nomqtt.js",
"node-red" : {
"nodes": {
"schedule_nomqtt": "schedule_nomqtt.js"
}
},
npm 관련 package.json 파일도 딱히 오류가 없다.
name 이나 .js 파일도 겹치지 않는다.
html, package.json 을 제외한
javascript 파일도
딱히 오류가 없다. javascript 파일은
동작 구현에 관한 소스이므로
복수개의 노드를 사용하는데
영향을 미칠만한게 전혀 없다.
두 노드의 가장 큰 차이점은
MQTT 사용 유무 이다.
만약 MQTT를 미사용하는
또 다른 하나의 노드를 생성해
그 노드가 복수 사용이 가능하다면
MQTT가 확실히 문제라고 생각이 들었다.
2022.12.21 - [기록/개발 노트] - [Node-red] 새로운 릴레이 노드 제작 - 1
[Node-red] 새로운 릴레이 노드 제작 - 1
2022.12.09 - [기록/개발 노트] - [Node-red] Schedule 노드 ( mqtt x ) 제작 [Node-red] Schedule 노드 ( mqtt x ) 제작 2022.11.21 - [기록/개발 노트] - [Node-red] Schedule node 수정 - 4 [Node-red] Schedule node 수정 - 4 2022.11.21 - [기
iruk.tistory.com
그래서 위 링크에서 제작했던 노드를
한 번 테스트 해보았다.
똑같은 오류가 발생한다.
<!-- html 파일 -->
<script type="text/javascript">
RED.nodes.registerType('사다리',{
category: '테스트용',
color: '#ff7f50',
defaults: {
name: {value:""},
id : {value : "", required: true},
startTime : {value : ""},
endTime : {value : ""},
heat : {value : ""},
cool : {value : ""},
exha : {value : ""},
led : {value : ""}
},
inputs:1,
outputs:4,
icon: "file.png",
label: function() {
return this.name||"사다리";
}
});
</script>
// package.json 파일
{
"name": "ladder_test",
"version": "1.0.0",
"description": "ladder html testing",
"main": "index.js",
"node-red": {
"nodes": {
"test_l": "ladderTest.js"
},
"version": ">=2.0.0"
},
"keywords": [
"node-red"
],
html 에서 오류도 없고
package.json 에서 mqtt 사용도 안하는데
같은 오류가 발생한다.
이 노드가 오류가 발생 안했으면
MQTT가 원인 이었을텐데
이러면 다른 오류들을 앞으로 찾아봐야할 것 같다.
'개발 > Node-red' 카테고리의 다른 글
[Node-red] http 통신 오류 - 1 (0) | 2022.12.26 |
---|---|
[Node-red] http 통신 Custom node 제작 (0) | 2022.12.23 |
[Node-red] 새로운 릴레이 노드 제작 - 1 (0) | 2022.12.21 |
[Node-red] Schedule 노드 ( mqtt x ) 제작 (0) | 2022.12.09 |
[Node-red] Relay node 제작 - 2 (0) | 2022.12.07 |