1. 개요2. 상세3. 런타임4. Samsung Automation Studio 웹앱5. 개발 준비
5.1. Samsung Automation Studio에 가입하기5.2. Samsung Automation Studio 웹앱을 깔기5.3. Samsung Developers에서 개발문서 읽기5.4. Bixby5.5. SmartThings
6. 메뉴5.5.1. SmartThings 개인 권한 토큰 만들기5.5.2. SmartThings Developers에서 Capability 문서 확인
6.1. 캔버스6.2. 불러오기 (Import)6.3. 노드
7. 설치할 수 있는 스마트앱스 리스트8. 개발6.3.1. Bixby
6.4. 플로우6.5. 앱스6.3.1.1. Capsule label6.3.1.2. Capsule result6.3.1.3. Bixby endpoint6.3.1.4. Bixby responce6.3.1.5. Metadata
6.3.2. SmartThings6.3.2.1. My Device SSE6.3.2.2. My Device6.3.2.3. Device Profile6.3.2.4. Automation6.3.2.5. Event6.3.2.6. Status6.3.2.7. Command
6.3.3. Smart TV6.3.3.1. TV Command
6.3.4. Start6.3.5. End6.3.6. Process6.3.7. Security6.3.8. Extension6.3.9. Decision6.3.10. Parser6.3.11. Lab6.3.12. OpenAI6.3.13. DataExtractor8.1. 다른 사람의 스마트앱스를 나의 플로우에 가져오기8.2. 내 스마트앱스를 다른 사람들에게 공유하기8.3. Samsung Automation Studio 플로우를 Node-RED 서버로 옮기기
9. 기타[clearfix]
1. 개요
Samsung Automation Studio(삼성 오토메이션 스튜디오, SASM)는 SmartThings의 스마트앱스(SmartApp)와 빅스비 캡슐의 오픈소스 개발 환경이다.2. 상세
Samsung Automation Studio(삼성 오토메이션 스튜디오)는 SmartThings와 빅스비와 여러 REST API들을 서드파티 외부 API와 함께 불러와서 로직을 짜서 나만의 서비스를 만들 수 있는 개발환경이다. 2020년 2월에 나왔다.웹브라우저 안에서 코드를 짜는 웹프로그래밍을 할 수 있는 웹 IDE이다. 블럭코딩 타입의 비주얼 프로그래밍으로 코드를 쓰지 않거나, 적게 쓰면서도 복잡한 자동화인 스마트앱스(SmartApp)나 서비스를 쉽게 만들 수 있다.
Samsung Automation Studio로 유저는 스마트앱스(SmartApp)나 서비스를 자동화 플로우의 생김새로 만들 수 있다. 자동화 플로우는 Samsung Automation Studio에서 미리 만들어 둔 템플릿과 팔레트에 있는 노드를 써서 만들 수 있으며, 입력 출력 노드 안에서는 완전히 자유롭게 짤 수 있기 때문에 임의로 끊기거나 금지되거나 막힘이 없이 자유로운 플로우를 만들 수 있다.
2.1. 플로우 프로그래밍
Samsung Automation Studio는 블럭 코딩 타입의 비주얼 프로그래밍 가운데에서도 노드를 이어 붙여서 코드를 짜는 플로우 프로그래밍을 지원한다. 노드와 템플릿을 써서 이어 붙이고 고치면서 유저는 자동화 플로우를 만들어 플로우의 흐름을 다룬다. 여기서 유저는 원하는대로 IoT 제품과 서비스를 움직일 수 있다.Samsung Automation Studio에서 마우스 드래그 앤 드롭으로 노드를 가져다가 길게 이어붙인 자동화 플로우를 만들 수 있다. 마우스의 클릭으로 노드들의 끝에 달린 포트를 누르면 나오는 라인을 드래그 앤 드롭하여 다른 노드의 포트에 이어 붙여 여러가지의 노드와 엮을 수 있다. 노드를 엮으면 자동화 플로우가 만들어진다. 자동화 플로우는 스마트앱스의 포맷으로 빌드된다.
이렇게 마우스 클릭만으로 SmartThings의 스마트앱스(SmartApp)나 나만의 서비스를 만들 수 있다. 매우 복잡한 자동화를 가진 스마트앱스도 Samsung Automation Studio에서 드래그 앤 드롭으로 노드를 엮어 쉽게 만들어 빌드할 수 있게 되면서, 대규모 자동화를 노 코드, 또는 로우코드로 손쉽게 만들어낼 수 있다.
Samsung Automation Studio에서 만들어진 자동화 플로우는 암호화된 클라우드 컨테이너에 저장되었다가, 자동화가 켜질 때 격리된 컨테이너 서버에서 외부로 코드가 불러와져서 돌아간다.
2.2. 기획 의도
Samsung Automation Studio(삼성 오토메이션 스튜디오)은 외부 개발자들이 삼성전자의 서비스를 보다 쉽게 개발할 수 있는 도구를 제공하기 위한 목적으로 만들어졌다.Samsung Automation Studio를 주도적으로 만든 삼성전자 무선사업부 클라우드 운영그룹의 김대선 프로와 김선학 프로의 누구나 삼성 IoT 서비스 개발 더 쉽게 ‘SASM’…“오픈소스 없었더라면” 인터뷰에 따르면 Samsung Automation Studio는 대학생과 같이 영세한 개발자를 지원하기 위해 만든 개발 도구이다. 개발자가 직접 빅스비의 캡슐을 만들어 등록시키고 뒷단의 애플리케이션을 연결시키기에 앞서, 미리 만들어놓은 캡슐을 통해 쉽게 ‘하이 빅스비’와 같은 명령어을 통해 개발자 본인이 만든 애플리케이션을 쉽게 호출할 수 있다.
Samsung Softwere Developer Conference 2022 (SSDC 2022)의 공유와 경쟁의 갈등 속에서 오픈소스 'ONE'과 'SASM'을 배우다 세션에 따르면 또다른 기획 의도로는 플로우 시각화와 자유로운 커스터마이징, 다양한 기기 제어의 의도도 있다고 한다.
2.2.1. 공식 설명
The Automation Studio allows you to integrate Samsung Bixby, SmartThings and 3rd party (your) APIs. Connect it with Samsung Bixby and SmartThings! Samsung Automation Studio를 쓰면 Bixby, SmartThings, 그리고 서드파티와 당신의 API를 불러올 수 있습니다. Bixby, SmartThings와 연결해보세요! Samsung Developers의 Samsung Automation Studio 개발문서 |
2.3. 만들 수 있는 것
2.3.1. 스마트앱스(SmartApp)
Webhook 베이스의 스마트앱스(SmartApp)를 쉽게 빌드할 수 있다. 스마트앱스(SmartApp)로는 SmartThings의 플로우를 IoT 기기와 섞어서 스마트홈의 자동화 시스템을 만들 수 있다.스마트앱스(SmartApp)에 대한
자세한 내용은 SmartThings 문서 참고하십시오.
2.3.2. 나만의 서비스
SmartThings나 빅스비 마켓플레이스에서 제공하는 캡슐을 써서 나만의 서비스를 만들거나 오토메이션 스튜디오에서 유저에게 오픈한 캡슐을 커스텀해서 나만의 캡슐로 만들어서 쓸 수도 있다.2.3.3. Bixby의 오토메이션 스튜디오 캡슐 커스텀
빅스비 마켓플레이스에 있는 오토메이션 스튜디오 캡슐을 커스텀해서 쓸 수 있다. 빅스비가 플로우를 트리거하면 플로우가 돌아가면서 자동화를 돌리게 되며, 플로우가 끝난 뒤의 빅스비 피드백 페이지도 만들어서 보여줄 수 있다.3. 런타임
3.1. Node-RED 기반 플로우 프로그래밍
Samsung Automation Studio는 Node-RED 버전 0.17.5의 포크 베이스로 돌아간다. 이 가운데 Node-RED의 플로우 프로그래밍을 Samsung Automation Studio 에서도 쓸 수 있다.노드레드(Node-RED)로 지원하기 때문에, 플로우 프로그래밍(흐름 기반 프로그래밍)을 할 수 있다.
Samsung Automation Studio의 왼쪽 팔레트에 있는 여러 노드를 써서 끌어다 놓는 것 만으로 플로우가 컴파일이 되며, 프로그램이 만들어져 런타임에 입력된다.
3.2. 프레임워크
3.2.1. SmartThings REST API
3.2.2. 빅스비
빅스비의 오토메이션 스튜디오 캡슐을 써서 Samsung Automation Studio에서 활용할 수 있다.4. Samsung Automation Studio 웹앱
Samsung Automation Studio는 삼성 갤럭시에 프로그래시브 웹앱으로 깔 수도 있다.과거에는 플로우 편집도 지원하였지만, 나의 플로우와 앱의 리스트만 보이게 바뀌었다.
Notification 노드를 쓸 때 Samsung Automation Studio의 웹앱이 깔려 있는 디바이스를 타깃으로 하니 Notification 노드를 쓰려면 반드시 Samsung Automation Studio 웹앱을 깔아야 한다.
5. 개발 준비
5.1. Samsung Automation Studio에 가입하기
삼성계정으로 Samsung Automation Studio에 로그인하면 Samsung Automation Studio에 바로 가입된다.5.2. Samsung Automation Studio 웹앱을 깔기
- 삼성 인터넷
삼성 인터넷을 열고 Samsung Automation Studio 홈페이지에 들어간다.
삼성 인터넷의 주소 창의 오른 쪽 끝이면서 북마크 버튼의 왼 쪽에 뜨는 아이콘을 누르면 Samsung Automation Studio 웹앱이 깔린다.
모두 끝나면 앱스에서 Samsung Automation Studio 웹앱을 볼 수 있다.
5.3. Samsung Developers에서 개발문서 읽기
5.4. Bixby
5.4.1. Bixby에서 오토메이션 스튜디오 캡슐 구독하기
삼성 갤럭시에서 Bixby를 Samsung Automation Studio에 연결하려면 Bixby의 오토메이션 스튜디오 캡슐에서 Samsung Automation Studio를 구독해야한다. 오토메이션 스튜디오 캡슐을 쓸 수 있다. Bixby에 삼성계정이 로그인되어 있고, 처음 세팅이 끝난 Bixby유저는 아래와 같이 Samsung Automation Studio와 Bixby를 연결할 수 있다.1. 삼성 갤럭시에 "하이 빅스비 오토메이션 스튜디오 시작"을 말해서 Bixby의 오토메이션 스튜디오 캡슐을 Bixby에 추가한다.
2. 이어서 뜨는 Samsung Automation Studio의 웹페이지에서 삼성계정을 로그인한 다음 구독을 누른다.
3. '오토메이션 스튜디오가 빅스비에 성공적으로 연결되었습니다!'라는 글이 뜨면 구독이 시작된다. 이제 Bixby의 오토메이션 스튜디오 캡슐이 Samsung Automation Studio에 연결된다.
5.5. SmartThings
5.5.1. SmartThings 개인 권한 토큰 만들기
자세한 내용은 SmartThings/개발 문서 참고하십시오.5.5.2. SmartThings Developers에서 Capability 문서 확인
6. 메뉴
6.1. 캔버스
캔버스는 Samsung Automation Studio를 쓸 수 있는 곳이다. Samsung Automation Studio를 처음 켜면 나온다. 스크린에서 가운데와 오른쪽에 있고 크기가 매우 커서 Samsung Automation Studio에서 가장 먼저 볼 수 있다.
캔버스의 밑그림으로는 모눈 그리드가 있다.
키보드의 Shift 키를 누른 다음에 노드를 마우스로 끌어보면 캔버스에 어질러진 여러 노드들을 모눈 그리드에 맞춰서 한 줄에 바로 잡을 수 있다.
유저는 캔버스에서 Samsung Automation Studio의 플로우를 만들고 켜지고 돌아가게 할 수 있다.
6.1.1. 앱 툴
새로운 플로우를 만들 수 있다.6.1.2. 편집 툴
6.2. 불러오기 (Import)
6.2.1. 템플릿
Samsung Automation Studio에서 모든 유저에게 쓸 수 있도록 주는 템플릿이다.
팔레트에 있는 템플릿을 더블 클릭하거나 마우스로 잡아서 캔버스에 끌어오면 이미 있는 플로우에 템플릿을 끌어올 수 있다.
6.2.2. 플로우
플로우는 노드끼리 이어져서 만들어진 로직의 흐름이다.
플로우 메뉴에서는 유저가 만든 플로우의 리스트를 볼 수 있다.
팔레트에 있는 플로우를 더블 클릭하거나 마우스로 잡아서 캔버스에 끌어오면 유저의 삼성계정에 있는 플로우를 끌어올 수 있다.
6.3. 노드
노드 메뉴에는 Samsung Automation Studio에서 쓸 수 있는 많은 노드가 카테고리로 묶여서 보인다. 노드의 생김새는 동그라미이며, 가운데에 노드를 알려주는 아이콘이 있다.
노드의 끝에는 라인을 뽑고 다른 노드와 엮을 수 있는 네모난 회색의 포트가 있다. 포트는 왼쪽에 있으면 Input 포트, 오른쪽에 있으면 Output 포트라고 부른다. 포트의 수는 노드에 따라 정적일 수도 있고, 가변일 수도 있다. 따라서 끝 없이 많아질 수도 있고, 하나도 없을 수도 있다.
6.3.1. Bixby
6.3.1.1. Capsule label
Capsule label 노드는 Samsung Automation Studio로 만드는 빅스비 캡슐과, 캡슐의 프로필을 만들 수 있다.Capsule label 노드로 만들어진 캡슐은 오토메이션 스튜디오 노드 안에 있는 작은 캡슐의 개념이다.
그리고 빅스비 안에서 여러 작은 캡슐의 리스트가 있는 Conversation Drivers의 생김새로 보여서 캡슐의 프로필과 이름을 보고 원하는 플로우의 앱을 골라서 켤 수 있다.
포트가 1개 있다. 노드의 뒤에 Output 포트가 1개 있어 다른 노드와 이을 수 있다.
6.3.1.2. Capsule result
Capsule result 노드는 빅스비 오토메이션 스튜디오 노드의 답변을 보여주는 스크린을 만드는 노드이다.반드시 Capsule label 노드와 함께 써야 한다.
빅스비의 개발 용어로는 Result-View에 있는 Result 타입의 Dialog를 만드는 노드이다. 빅스비에서 View는 스크린에 빅스비가 보이는 곳을 뜻하며, Result-View는 빅스비에게 질문을 했을 때 돌아오는 답이 보이는 View 가운데 하나이다. 빅스비에서 Dialog는 빅스비가 유저와 나누는 대화 메시지를 뜻한다. 그 가운데에서도 Result 타입의 Dialog는 질문의 결과를 나타내는 Dialog 가운데 하나이다.
Capsule Resule 노드를 쓰면 여러 상속을 받는 빅스비의 코드를 한 번에 쉽게 만들어내서 쉽게 Result 타입의 Dialog를 뿌려주는 Result-View를 삼성 갤럭시에서 보이는 빅스비의 UI의 형태로 그려낼 수 있다.
포트가 1개 있다. 노드의 앞에 Input 포트가 1개 있어 다른 노드와 이을 수 있다.
6.3.1.3. Bixby endpoint
6.3.1.4. Bixby responce
6.3.1.5. Metadata
6.3.2. SmartThings
6.3.2.1. My Device SSE
6.3.2.2. My Device
My Device 노드는 SmartThings에 붙은 IoT 제품을 Samsung Automation Studio에 불러오는 노드이다.Samsung Automation Studio를 시작할 때 반드시 플로우에 먼저 넣어야 하는 노드이기도 하다. 삼성계정에 등록된 SmartThings의 장소와 방에 있는 IoT 제품을 원하는 만큼 체크해서 가져올 수 있다. 다른 노드에서는 My Device노드에서 체크한 IoT 제품을 써서 플로우를 만들어낼 수 있다.
My Device 노드를 쓰려면 SmartThings 개인 권한 토큰이 있어야 한다.
자세한 내용은 SmartThings/개발 문서 참고하십시오.
포트가 하나도 없는 노드이다. 따라서 다른 노드로부터 떨어져 있다.
- Name
노드의 이름을 지을 수 있다.
- Personal Acces Token
스마트싱스 개인 권한 토큰을 붙여넣는 곳이다. 스마트싱스 개인 권한 토큰을 붙여넣으면 토큰에서 골라진 장소, 방, IoT 제품을 불러온다.
- Note
스마트싱스 개인 권한 토큰을 만들 수 있는 SmartThings 토큰 페이지로 들어갈 수 있는 링크가 있다.
- X devices, X selected
SmartThings 클라우드에 있는 방, 장소, IoT 제품을 고를 수 있다. 여기서 고른 방, 장소, IoT 제품은 Samsung Automation Studio에서 쓸 수 있게 된다.
6.3.2.3. Device Profile
6.3.2.4. Automation
Automation 노드는 Samsung Automation Studio의 플로우 및 스마트앱스를 SmartThings에 스마트앱스로 붙이는 노드이다.Automation 노드로 SmartThings에 붙은 스마트앱스는 SmartThings의 자동화 탭에서 오른쪽 위의 추천을 누르면 스마트앱스 카테고리에서 내가 만든 스마트앱스를 추가하여 SmartThings 대시보드에서도 보이도록 할 수 있다.
포트가 1개 있다. 노드의 뒤에 Output 포트가 1개 있어 다른 노드와 이을 수 있다.
- Name
노드의 이름을 지을 수 있다.
- Endpoint
SmartThings Developer Workspace에서 만든 스마트앱스로부터 호출되어야 하는 링크 주소이다. SmartThings Developer Workspace에서 스마트앱스를 만들고 엔드포인트를 받아올 수 있는 url 링크를 Automation 노드의 Endpoint에 url 링크로 붙여 넣으면, 삼성 오토메이션 스튜디오에서 만든 스마트앱스를 SmartThings에 붙일 수 있다.
6.3.2.5. Event
Event 노드는 Device Profile의 디바이스를 고르고, 언제 실행할까요의 Attribute 이벤트를 세팅하는 노드이다.반드시 Device Profile 노드와 Automation 노드와 함께 써야 한다. 플로우에 Automation 노드가 없으면 Event 노드를 쓸 수 없다.
이벤트 노드는 Automation 노드의 엔드포인트 뒤에 있어서 SmartThings에서 Automation 노드의 엔드포인트로 보내는 메시지를 가져온 다음, Device Profile에서 지원하는 SmartThings의 Capability를 트리거해서 다른 노드에 토스 해서 새로운 이벤트를 만들어내는 데에 쓸 수 있다.
플로우를 단순하게 만들려면 Status 노드를 쓸 수도 있지만, Event 노드를 쓰면 Samsung Automation Studio에서 가상 디바이스를 만들어 자동화를 켜고 끄거나, SmartThings로부터 IoT 제품의 아주 조금의 SmartThings의 Capability만을 불러와 이벤트를 만들어내서 플로우를 만들 수 있다는 장점이 있다.
또한 느슨한 커플링으로 추상화한다는 점에서 인터페이스와 닮은 곳이 있다.
포트가 2개 있다. 노드의 앞과 뒤에 Inputs 포트와 Output 포트가 1개씩 있어 다른 노드와 이을 수 있다.
- Name
노드의 이름을 지을 수 있다.
- Device
Device Profile에서 만든 가상 디바이스의 디바이스 타입, 혹은 SmartThings에 붙은 IoT 제품을 고를 수 있다.
- Capability
가상 디바이스의 타입에서 쓸 수 있는 SmartThings의 Capability을 변수로 가져온다.
- Attribute
SmartThings에서 언제 실행할까요에 들어가는 Attribute 가운데 Device Profile에서 만든 가상 디바이스의 디바이스 타입에서 받아올 수 있는 SmartThings의 Capability 안의 Attribute값을 가져온다. 따라서 Attribute 안에 있는 값에 따라 어떠한 Command를 내보낼지 아래의 Filter에서 세팅할 수 있게 된다. SmartThings의 Capability에서 Attribute가 1개만 있을 때는 Capability를 고를 때 자동으로 Attribute가 골라지기도 한다.
- Filter
SmartThings에서 언제 실행할까요에 들어가는 Attribute의 로직을 만들 수 있다. Filter에서 쓸 수 있는 필터의 리스트는 다음과 같다. - ==
왼쪽과 오른쪽의 값이 같을 때 - !=
왼쪽과 오른쪽의 값이 다를 때 - <
왼쪽의 값보다 오른쪽의 값이 클 때 - <=
왼쪽의 값보다 오른쪽의 값이 크거나 같을 때 - >
왼쪽의 값이 오른쪽의 값보다 클 때 - >=
왼쪽의 값이 오른쪽의 값보다 크거나 같을 때
- Add Filter
새로운 필터를 만들 수 있다.
6.3.2.6. Status
Status 노드는 SmartThings의 디바이스를 고르고 언제 실행할까요의 Attribute 이벤트를 세팅하는 노드이다.반드시 My Device 노드 혹은 Device Profile 노드와 함께 써야 한다. 플로우에 My Device 노드 혹은 Device Profile 노드가 없으면 Status 노드를 쓸 수 없다.
Staus 노드 My Device 노드를 써서 직접 SmartThings와 데이터를 주고 받으며 IoT 제품의 값을 받아 온다. 위에 있는 Event 노드보다 더 쉽고 다이렉트하게 자동화를 만들 수 있다.
Status 노드는 Event 노드보다 훨씬 많은 SmartThings의 Capability를 가져올 수 있다. 이것도 직접 SmartThings와 데이터를 주고 받기 때문이다. SmartThings에 붙은 IoT기기가 가지고 있는 모든 SmartThings의 Capability를 가져올 수 있고, 직접 SmartThings의 Capability를 고를 수 있다.
따라서 강한 커플링과 닮은 곳이 있다.
포트가 2개 있다. 노드의 앞과 뒤에 Inputs 포트와 Output 포트가 1개씩 있어 다른 노드와 이을 수 있다.
- Name
노드의 이름을 지을 수 있다.
- Device
Device Profile에서 만든 가상 디바이스의 디바이스 타입, 혹은 SmartThings에 붙은 IoT 제품을 고를 수 있다.
- Capability
가상 디바이스의 타입에서 쓸 수 있는 SmartThings의 Capability 값을 변수로 가져온다.
- Attribute
SmartThings에서 언제 실행할까요에 들어가는 Attribute 가운데 Device Profile에서 만든 가상 디바이스의 디바이스 타입에서 받아올 수 있는 SmartThings의 Capability 안의 Attribute값을 가져온다. 따라서 Attribute 안에 있는 값에 따라 어떠한 Command를 내보낼지 아래의 Filter에서 세팅할 수 있게 된다. SmartThings의 Capability에서 Attribute가 1개만 있을 때는 Capability를 고를 때 자동으로 Attribute가 골라지기도 한다.
- Filter
SmartThings에서 언제 실행할까요에 들어가는 Attribute의 로직을 만들 수 있다. Filter에서 쓸 수 있는 필터의 리스트는 다음과 같다. - ==
왼쪽과 오른쪽의 값이 같을 때 - !=
왼쪽과 오른쪽의 값이 다를 때 - <
왼쪽의 값보다 오른쪽의 값이 클 때 - <=
왼쪽의 값보다 오른쪽의 값이 크거나 같을 때 - >
왼쪽의 값이 오른쪽의 값보다 클 때 - >=
왼쪽의 값이 오른쪽의 값보다 크거나 같을 때
- Add Filter
새로운 필터를 만들 수 있다.
6.3.2.7. Command
Command 노드는 SmartThings의 디바이스에게 무엇을 할까요의 Command 이벤트를 세팅하는 노드이다.포트가 2개 있다. 노드의 앞과 뒤에 Inputs 포트와 Output 포트가 1개씩 있어 다른 노드와 이을 수 있다.
6.3.3. Smart TV
6.3.3.1. TV Command
6.3.4. Start
6.3.5. End
6.3.6. Process
6.3.6.1. comment
comment 노드는 코멘트를 쓰는 노드이다.comment 노드 안에 있는 모든 텍스트는 플로우가 돌아갈 때에 어떠한 일도 하지 않는다.
팔레트에 있는 comment 노드는 마우스로 잡아서 플로우 안에 끌어다 넣을 수 있다. 플로우 안에 들어간 comment 노드는 어디로든지 움직일 수 있다. 그래서 가까이 있는 노드에 코멘트를 달거나 주석을 달 때에 쓸 수 있다.
포트가 하나도 없는 노드이다. 따라서 다른 노드로부터 떨어져 있다.
- Title
노드의 이름을 지을 수 있다.
- Body
텍스트를 적을 수 있는 인풋필드이다.
6.3.6.2. http client
http client 노드는 HTTP 프로토콜을 쓰는 서드파티 웹 서비스에 HTTP request를 보내는 노드이다.http client 노드로 서드파티 웹 서비스에 HTTP Request를 보내서 서드파티 웹 서비스와 커뮤니케이션하며 서드파티 웹 서비스의 데이터를 처리할 수 있다. 데이터의 처리는 RESTful API를 쓴다. RESTful API에서는 데이터의 생성(POST), 조회(GET), 수정(PUT), 삭제(DELETE), 앞서 연결된 스크립트에서 페이로드된 메서드를 다룰 수 있다.
웹사이트에서 업데이트되는 데이터를 크롤링할 때 반드시 써야 하는 노드이다.
포트가 2개 있다. 노드의 앞과 뒤에 Inputs 포트와 Output 포트가 1개씩 있어 다른 노드와 이을 수 있다.
- Name
노드의 이름을 지을 수 있다.
- Method
내가 보내는 HTTP request의 데이터 처리 메서드를 고를 수 있다. - GET
서드파티 웹 서비스의 데이터를 가져온다. - POST
서드파티 웹 서비스에 데이터를 만든다. - PUT
서드파티 웹 서비스의 데이터에 값을 보내서 업데이트한다. - DELETE
서드파티 웹 서비스의 데이터를 지운다. - -set by msg.method-
메시지 오브젝트의 msg.method로 return된 값에 따라 http client 노드가 켜질 때 메서드를 새롭게 업데이트 받는다. 이 때 메서드는 Input 포트로 연결된 앞쪽의 노드에서 return 받은 메시지에 따라 결정된다. 따라서 http client 노드가 켜질 때마다 바뀔 수도 있다. - URL
HTTP request를 보낼 하이퍼링크를 쓸 수 있다. - Use basic authentication
HTTP 기본 인증으로 서드파티 웹 서비스에 인증 정보를 보낸다. HTTP 기본 인증을 쓰는 서드파티 웹 서비스인 케이스에는 Userrname과 Password를 써야 한다. - Username
HTTP 기본 인증의 Username을 쓸 수 있다. - Password
HTTP 기본 인증의 Password를 쓸 수 있다. - Return
서드파티 웹 서비스로부터 request 받은 데이터의 타입을 고를 수 있다. - a utf-8 string: 서드파티 웹 서비스로부터 request 받은 데이터를 UTF-8 문자열로 내보낸다.
- a binary buffer: 서드파티 웹 서비스로부터 request 받은 데이터를 이진 버퍼로 내보낸다.
- a parsed JSON object: 서드파티 웹 서비스로부터 request 받은 데이터를 JSON 오브젝트로 파싱해서 내보낸다.
6.3.6.3. template
template 노드는 사람이 알아들을 수 있는 데이터를 포스트 프로세싱을 거쳐서 컴퓨터가 알아들을 수 있도록 코드에서 다룰 수 있는 타입으로 바꾸는 노드이다.포트가 2개 있다. 노드의 앞과 뒤에 Inputs 포트와 Output 포트가 1개씩 있어 다른 노드와 이을 수 있다.
- Name
노드의 이름을 지을 수 있다.
- Set property
다음 노드로 return 해서 내보낼 메시지와 오브젝트을 고를 수 있다. Set property에 적은 메시지와 오브젝트대로 Template에 적은 데이터가 상속된다 - msg
- flow
- global
- Format
- Mustache template
- Plain text
- Template
사람이 알아들을 수 있으면서도 플로우가 다루게 만들고 싶은 데이터를 여기에 쓸 수 있다. 코드가 아닌 데이터도 알아들을 수 있다. Template에 적힌 데이터는 Format에서 고른 포맷으로 데이터를 컴퓨터가 알아들을 수 있는 타입으로 바꾸어 Set property에 적힌 메시지와 오브젝트에 return으로 보낸다.
- Output as
6.3.6.4. function
function 노드는 자바스크립트 코드로 데이터를 처리하고 바꿀 수 있는 노드이다. 자바스크립트 코드로 데이터를 다룸으로서 더 디테일한 로직을 만들고 다른 노드들에는 없는 새로운 오리지널 기능을 넣을 수 있다.function 노드는 메시지 객체의 변수를 받아 자바스크립트 코드를 돌린다. 자바스크립트 코드는 들어온 메세지 객체의 변수에 있는 데이터를 다루며 다음 노드로 보낼 메시지를 만들고, 이를 return 해서 보낸다.
function 노드가 쓰인 플로우는 노 코드 플로우에서 로우 코드 플로우로 바뀐다.
포트가 2개 있다. 노드의 앞과 뒤에 Inputs 포트와 Output 포트가 1개씩 있어 다른 노드와 이을 수 있다. Output 포트의 수는 Output 파라미터의 벨류값에 따라 동적으로 바뀐다.
- Name
노드의 이름을 지을 수 있다. - Function
자바스크립트 코드를 쓸 수 있다. Function 인풋필드에 쓰는 코드는 메세지로 페이로드 받은 value를 메세지로 리턴해서 이어지는 노드에 보내야 한다. - Outputs
Output 포트의 수를 고를 수 있다. 인풋필드에 쓴 수 만큼 Output 포트가 만들어진다.
6.3.7. Security
6.3.8. Extension
6.3.9. Decision
6.3.10. Parser
6.3.11. Lab
6.3.12. OpenAI
6.3.13. DataExtractor
6.4. 플로우
6.5. 앱스
7. 설치할 수 있는 스마트앱스 리스트
- (완성)디시 개념글 크롤링+갤럭시 홈 미니로 읽기 성공 ㅋㅋㅋ
- 갤럭시 홈 미니로 삼성전자 뉴스룸 읽는 법
- 갤럭시 홈 미니를 활용한 버스도착정보 안내시스템 만들기
- 비전공자 automation studio 아다뗐다...
- 스마트싱스 기상 루틴 자동화
- 삼성 오토메이션 스튜디오로 스마트앱스 만들기
- [SASM] 조명 밝기/색온도 자동화 스크립트
- 뉴비 에어컨 자동화 만들었음
- ThinQ 연동한 LG 공기청정기 미세먼지 제보 5분마다 갱신하기
- 삼성 오토메이션 스튜디오 개초보코딩:빅스비 커스텀 대본
- 삼성 오토메이션 스튜디오 개초보코딩:장문충 거르는 AI 만들기
8. 개발
8.1. 다른 사람의 스마트앱스를 나의 플로우에 가져오기
Import 버튼을 눌러서 쉽게 다른 사람이 만든 스마트앱스를 Samsung Automation Studio의 플로우로 가져올 수 있다.8.2. 내 스마트앱스를 다른 사람들에게 공유하기
Export 버튼을 눌러서 쉽게 내가 만든 스마트앱스를 공유할 수 있다.다른 사람은 Import 버튼을 눌러서 공유된 코드를 붙여넣으면 쉽게 스마트앱스를 가져올 수 있다.
8.3. Samsung Automation Studio 플로우를 Node-RED 서버로 옮기기
9. 기타
- 삼성의 개발자들은 Samsung Automation Studio의 줄임말인 SASM을 사슴이라고 읽는다. (...)