노드 빨간색에서 하위 흐름 생성하기

내가 보기에 Node Red가 제공해야 할 가장 유용한 기능 중 하나는 하위 흐름을 만드는 능력이다.하위 흐름은 official documentation 기준으로 다음과 같습니다.

a collection of nodes that are collapsed into a single node in the workspace.


나는 너로 하여금 이 문서들을 귀찮게 하지 않을 것이다. 반대로, 나는 너에게 간단한 예를 하나 줄 것이다. 너는 Node Red와 Home Assistant 이외의 어떤 것도 설치하지 않아도 된다.목표는 본고의 내용에 따라 자신의 하위 흐름을 만들고 그것이 어디에 유용하고 왜 유용한지 이해하는 것입니다.

장면: 노드 레드에서 핸드폰으로 알림 보내기


알림 서비스를 이용하려면 Node Red에서 휴대폰으로 알림을 보내야 합니다.가장 간단한 방법은 이렇게 호출 서비스 노드를 사용하는 것이다.

이제 알림을 보내려면 어느 곳에서든 이 노드를 사용할 수 있습니다.

여기에서 나는 나의 노드를 복사했다. 나는 단지 메시지를 변경했을 뿐이다.한 노드에서 나는 "사무실 문이 열렸습니다"라는 메시지를 보냈고, 다른 노드에서는 "사무실 문이 닫혔습니다"라는 메시지를 보냈다.
이 경우 노드를 복사하고 메시지를 변경할 수 있지만 항상 그렇게 간단하지는 않습니다.
예를 들어 밤 10시부터 아침 8시까지 알림을 보내고 싶지 않다고 가정하십시오.이 요구 사항을 실현하는 간단한 방법은 다음과 같습니다.

나는 현재 시간이 오후 10시부터 아침 8시 사이인지 확인하기 위해'시간 범위'노드를 사용합니다. 그렇지 않으면 알림을 보낼 수 있습니다.
그리고 어느 날 당신이 회의를 하고 있는데 당신의 핸드폰이 알림에서 울리기 시작했기 때문에 저녁에 그것을 끄는 것은 부족하다는 것을 깨달았습니다. 낮에 켜거나 끌 수 있는 설정이 필요합니다.이 경우 Home Assistant 대시보드에서 input_ble 값을 사용할 수 있습니다. 이 값을 끄면 모든 알림이 전송되지 않습니다.이 점을 실현하기 위해서 우리는 반드시 다른 노드를 추가해야 한다. 왜냐하면 우리는 두 개의 알림을 보내야 하기 때문에 반드시 두 개의 노드를 추가해야 한다.

보기 흉해 보인다. 만약 당신이 다른 곳에서도 반드시 이렇게 해야 한다면 그것은 악몽이 될 것이라고 상상해 보자.만약 당신이 프로그래머라면,'자신을 반복하지 마라'는 원칙이 당신의 머릿속에 떠오르기 시작한다. 사실상, 이것은'코드'복제와 같다.일단 새로운 생각이 떠오르거나 문제가 발견되면, 알림이 있는 곳으로 가든지, 다른 노드를 추가하든지, 같은 복구를 적용해야 한다.그러나 우리는 어떻게 이 문제를 해결합니까?

자류


다른 곳에서 다시 사용할 수 있도록 이 노드로 하위 흐름을 만들 것입니다.너는 이렇게 할 수 있다.
먼저 첫 번째 알림에서 노드 3개를 선택합니다.

이제 오른쪽에서 메뉴를 열고 "subflow"-> "Selection to subflow"를 선택하십시오.

이제 이러한 내용을 볼 수 있습니다.

이것은 "subflow 1"이라는 새 하위 흐름을 만듭니다. 사용하려고 할 때마다 왼쪽의 "subflow"부분에서 드래그할 수 있습니다.
그러나 우리는 아직 완성하지 못했다.사실상, 당신은 어느 곳에서든 그것을 다시 사용할 수 있지만, 지금은 하나의 하위 흐름만 있을 뿐, 오전 8시부터 저녁 10시까지 사무실 문이 열렸다는 메시지가 담긴 통지를 보낼 것이다.만약 우리가 정말 이 점을 하고 싶다면, 우리는 보낼 메시지와 제목을 지정할 수 있도록 매개 변수를 추가해야 한다.

환경 변수 사용


두 번 클릭하여 하위 흐름을 연 다음 하위 흐름 템플릿 편집을 클릭합니다.하위 흐름 템플릿으로 이동하여 이전 노드 3개를 볼 수 있습니다.

이제 속성 편집 을 클릭한 다음 추가 버튼을 클릭합니다.

환경 변수를 추가했습니다.이름을 설정할 수 있습니다. 나중에 인용할 것입니다. 기본값도 추가할 수 있습니다.내 예시에서, 나는'메시지'라는 변수를 추가했는데, 그 라벨은'메시지'이고, 기본값은'헬로'이다.

이 두 개를 추가하면 완료를 클릭하고 프로세스로 돌아갑니다.도착하면 하위 흐름 노드를 다시 두 번 클릭합니다.

위의 그림과 같은 변수를 보셔야 합니다.'메시지'변수의 탭은'메시지'이고 기본값은'헬로'입니다."사무실 문이 열렸습니다"라는 메시지로 이것을 변경하고 원하는 제목을 설정할 수 있습니다.이제 센서의 다른 지점에서 노드 3개를 삭제하고 하위 흐름을 배치합니다.

현재, 우리가 변수에 설정한 값을 사용하기 위해서, 우리는 한 가지 더 해야 한다.우리의 하위 흐름에서, 우리는 알림 노드가 하나 있지만, 이 노드는 여전히 메시지를 사용합니다. "사무실 문이 열렸습니다."따라서, "message"변수의 모든 값을 사용합니다. 하드코딩 메시지를 사용하지 않고, "title"에 적용합니다.

우리가 사용하는 변수 값JSONata을 검색하기 위해 JSON은 다음과 같이 보입니다.
{ "message": $env('message'), "title": $env('title') }
이제 흐름을 배치하고 테스트할 수 있습니다."메시지"와 "title"변수에 사용된 내용에 따라 다음 그림과 같은 다른 메시지를 받을 수 있습니다.

문제가 있는 경우 이 JSON을 노드 빨간색으로 가져올 수도 있습니다.

축하드립니다. 방금 첫 번째 하위 흐름을 만들었습니다!우세는 명백히 알 수 있다.알림을 보내려고 할 때마다 우리가 가지고 있는 최초의 3개 노드를 복사할 필요가 없습니다. 이 하위 흐름을 사용하십시오.나중에 일부 컨텐트(예: 오후 10시부터 오전 8시까지의 시간표)를 수정해야 하는 경우 하위 스트림 템플릿에서만 수정할 수 있으며, 하위 스트림을 사용할 때마다 수정할 수 있는 것은 아닙니다


다음은 뭐예요?


이것은 너에게 달려 있다.현재, 당신은 자신의 노드를 하위 흐름으로 만들 수 있으며, 필요에 따라 다시 사용할 수 있습니다.내가 가장 자랑스러운 것은 나의 Alexa subflow


다음은 지원하는 환경 변수입니다.



보시다시피 문자열뿐만 아니라 음량의 디지털 컨트롤러, 밑에 있는 메뉴도 있습니다. 메시지 대신 소리를 선택할 수 있습니다. 그리고 모든 Echo Dot 장치를 대표하는 체크 상자도 있습니다.다음은 하위 흐름에서의 외관입니다:



나는 그것이 좀 혼란스럽다는 것을 알고 있다. 그래서 나는 처음부터 자류를 해석해 보려고 한다.


  • 입구점에서 하나의 함수를 호출합니다. 이 함수는 Alexa Media Player 구성 요소가 이해할 수 있는 모델에서 수신한 데이터를 변환합니다. 기본적으로 일부 속성(메시지, 재생 장치 목록, 음량 등)을 가진 JSON입니다.
  • 다음으로 JSON이 유효한지 확인하겠습니다
  • 그리고 "Alexa notifications"라는 input\uble 값이 활성화되었는지 확인합니다.만약 운전하지 않는다면, 나는 멈출 것이다.실제로 저는 Alexa 카드를 가지고 있습니다. 설정을 열거나 닫을 수 있습니다



5분간 동작이 없으면 수면 모드가 야간에 자동으로 촉발된다.'속닥속닥'모드는 내 모든 정보를 속닥속닥으로 바꾸는 것이지, 큰 소리로 바꾸는 것이 아니다. 나는 보통 내 딸이 잠들 때 그것을 연다.내 냉장고가 지능적이지 않아서, 내가 그것을 1분 이상 열면 접촉 센서와 알렉사를 사용해서 나에게 통지했다.우리의 프로세스를 계속합시다:)


  • 알림을 허용하면 수면 모드가 켜져 있는지 확인하겠습니다. 그렇지 않으면 계속하지 않겠습니다.
  • 나는 모든 회파점의 음량을 얻고 그 중 하나를 변경해야 하는지 확인할 것이다.나는 직접 이렇게 할 수 있지만, 음량을 설정하는 데는 몇 초가 걸리기 때문에, 대부분의 경우 이것은 필요하지 않다. 나는 setvolume 함수를 호출하지 않아서 시간을 절약할 수 있다.
  • 소리나 메시지를 틀어야 하는지 검사합니다.우리는 둘 다 있을 수 없기 때문에 나는 두 가지 다른 소식과 소리 노드를 가지고 있다.

이렇게.나는 당신이 이 글을 좋아하고, 당신이 자신의 하위 흐름을 만들 수 있도록 하위 흐름에 대해 충분한 이해를 가지고 있기를 바랍니다.이 시리즈의 다음 글은 함수를 소개할 것입니다. 자바스크립트를 사용하여 홈 Assistant 실체에 접근하고 환경 변수를 설정하는 방법을 알아보겠습니다.그 전에 위의 표로 이 블로그를 구독하고 계속 저를 팔로우하세요


댓글Creating subflows in Node-Red이 먼저 thewindev.net에 뜬다

좋은 웹페이지 즐겨찾기