만들거 :
코드에서 직접 만든 내용을 그대로 빅스비에게 말하게 시키는 대본 만들기 (갤럭시 홈 미니 사용)


본인 스펙 :
스마트싱스 4개월차 스싱린이 iot린이
삼성 오토메이션 스튜디오 노코드로만 조금 씀
직장에서 하는일이랑 개발이랑 1도 관련x
문과 빡대가리
코딩 도전 1일차


준비물 :
1. inject 노드 (보라색) 1개
2. function 노드 (에메랄드색) 1개
3. debug 노드 (초록색) 1개
4. mydevice 노드 (핑크색) 1개
5. command 노드 (망고색) 1개



목표 :
function 노드에다 코드 쓰기
코딩으로 만든 원하는 내용을 내보내기
갤럭시 홈 미니로 원하는 내용을 말하게 만들기
오류만 내지 말기



0490f719b7826af23ee984e029837768741073f9f1399f3de7a46535c3cb4f5eecfa0fac75ad

위에 있는게 최종 목표물






0490f719b7826af23ee984e02983766829298f21a8d14915e068a1b9472a964f2cdbe47766de

맨 처음 만든 플로우의 구조는

inject에서 플레이 버튼을 눌러서 자동화 실행하면
function 노드에 있는 코드를 거쳐서
debug 노드에서 마지막에 나온 값을 적어주는

초간단 무쓸모 플로우임 ㅋㅋ

다른 노드는 괜찮은데 function 붙으니까 벌써 플로우 고장날까봐 무섭다 ㅠㅠ









0490f719b7826af23ee984e0298376682e2d8321afd34d15e068a1b9472a964f4000e912891c

Function 칸에는 return msg;라는 글자가 써있음

우리말로는 msg로 돌려보낸다

스크립트로 msg 안에 원하는 값을 넣으면

그 다음 노드에 바뀐 msg 값을 전달할수있음

따라서 return msg는 코드의 맨 마지막 줄에 들어가야하는 문장임

;는 마침표라고 함

근데 프로그램은 문법나치기때문에 마침표인 ;을 안찍으면 코드를 실행을 안시켜줘서 꼭 마침표인 ;을 붙여줘야함




0490f719b7826af23ee984e0298376682d288b21a8d74e15e068a1b9472a964f31a8afb07d99

debug 노드는 msg.payload에 적혀있는 값을 찍을 수 있다고 함

msg로 돌려보낸 내용 가운데에서도
payload라는 이름이 붙은 msg의 내용만을 출력할수있는것

payload는 msg가 담고있는 수 많은 정보 가운데
payload라는 태그가 붙은 정보들의 모임임

스싱갤에서 제품 탭을 누르면 iot 제품 리뷰를 볼수있듯이
msg.payload를 치면 payload에 해당하는 내용만 볼 수 있음


msg.payload에서 payload는 화물이라는 뜻이 있다고 하는데 꼭 써야하는건 아닌거같음

원하는 단어로 얼마든지 변경할 수 있다고 함





0490f719b7826af23ee984e02983766829298f21a8d14915e068a1b9472a964f2cdbe47766de

0490f719b7826af23ee984e0298376682e2d8321afd34d15e068a1b9472a964f4000e912891c

0490f719b7826af23ee984e02983776d28765773b6261306659d9ef88168075bd1d02eee16a6

전체 코드 :

return msg;

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ



inject 노드에있는 플레이를 눌러서

아무것도 추가하지 않고 냅다 플로우를 실행시키면

이상한 숫자가 계속 찍힘

0490f719b7826af23ee984e02983776d2a705473bc291906659d9ef88168075bfeb3341d4c6d

다시 보니까 숫자의 뜻은 날짜랑 시간이었음

그게 컴퓨터만 알아먹을수있는 괴상한숫자인것

msg.payload를 아무런 수정도 안하고 돌려보내면

아무것도 안정해져있기때문에

시간을 뜻하지만 아무데도 못 쓰는 숫자가 msg.payload로 돌려보내진다는걸 알았음



그래서 msg.payload안에 1이라는 내용을 넣어보려고 함






0490f719b7826af23ee984e02983766829298f21a8d14915e068a1b9472a964f2cdbe47766de

0490f719b7826af23ee984e02983776c5951167bc056c83513d193c3d272d90c1e739344f76b

0490f719b7826af23ee984e02983776c5552177bc853c03513d193c3d272d90c42a4483332


전체 코드:

msg.payload = 1;
return msg;

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

우효 wwwwwwwwwwwwww

보냈다 엌ㅋㅋㅋ

msg.payload에 드디어 원하는 내용을 넣었다 ㅋㅋ 기분 딱좋노

그런데 다른내용도 넣어보니까 문제가 터져버렸다 ㅠㅠ






0490f719b7826af23ee984e02983766829298f21a8d14915e068a1b9472a964f2cdbe47766de

0490f719b7826af23ee984e02983776f3ca53ee5ad493e07d518875e2668afa7a9453d9f9cb9

0490f719b7826af23ee984e02983776f38a73ee5ac4c3807d518875e2668afa735f80a44716b

전체코드 :

msg.payload = 우흥 스싱붕이들 모두 안녕??;
return msg;

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ



1은 되는데 인사말은 안되는 이유를 찾아보니

글자는 무조건 큰따옴표 사이에 넣어야한단다...

문법나치 아니랄까봐 말을 할때 큰따옴표를 꼭 넣다니 까다롭노 ㅅㅂ






0490f719b7826af23ee984e02983766829298f21a8d14915e068a1b9472a964f2cdbe47766de

0490f719b7826af23ee984e02983776ea3f539f7df8ccf37f16f11354cddc44d77ca64ada1cd

0490f719b7826af23ee984e02983776ea3f530f7de8fca37f16f11354cddc44d088c2e34e7a2



전체코드 :

msg.pay"우흥 스싱붕이들 모두 안녕??";
return msg;

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


드디어 원하는 문구를 msg.payload에 보냈다

이제 원하는 문구를 스마트싱스에서 써먹어보고 싶어졌다




0490f719b7826af23ee984e029837768741073f9f1399f3de7a46535c3cb4f5eecfa0fac75ad

0490f719b7826af23ee984e0298377690f002aa8a4fb7dde787ae69c992a0d8ba8a1ce7712a3

0490f719b7826af23ee984e0298377690c032ca8aafd7ade787ae69c992a0d8b65d43598d3


mydevice 노드를 추가해서 스마트싱스 개인권한토큰을 붙여넣고

command 노드를 추가해서 갤럭시 홈 미니를 추가하고

speechSynthesis에서 phrase에다가

msg.payload를 추가하면??









msg.payload 내용으로 갤럭시 홈 미니를 말하게 만들 수 있다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

세엑스

msg.payload 내용을 바꿔서 갤럭시 홈 미니로 원하는 말을 시킬 수 있음



https://docs.google.com/document/d/1a77RoYX-kY8Zt7NlnhO8Ob2nxGwfxtEHK8kZ9EYnfeM/edit?usp=sharing

위 코드로 내가 만든 플로우를 누구나 붙여서 다운받을수잇으니

내 개초보 코딩으로 스마트홈 세계가 널리 이롭게 되기를