Samsung Automation Studio

덤프버전 :


파일:smartthingsicon.png
파일:1px 투명.svg



파일:1px 투명.svg파일:1px 투명.svg



파일:Samsung Automation Studio_Icon.png
삼성 오토메이션 스튜디오
Samsung Automation Studio

파일:1px 투명.svg

    소프트웨어 정보파일:1px 투명.svg

  개발 및 유통파일:1px 투명.svg
  엔진파일:1px 투명.svg
  웹사이트파일:1px 투명.svg



1. 개요
2. 상세
2.1. 플로우 프로그래밍
2.2. 기획 의도
2.3. 만들 수 있는 것
2.3.1. 스마트앱스(SmartApp)
2.3.2. 나만의 서비스
2.3.3. 빅스비의 오토메이션 스튜디오 캡슐 커스텀
3. 런타임
3.1. Node-RED 기반 플로우 프로그래밍
3.2. 프레임워크
3.2.1. SmartThings REST API
4. Samsung Automation Studio 웹앱
5. 메뉴
5.1. 캔버스
5.1.1. 앱 툴
5.1.2. 편집 툴
5.2. 불러오기 (Import)
5.2.1. 템플릿
5.2.2. 플로우
5.3. 노드
5.3.1. Bixby
5.3.1.1. Capsule label
5.3.1.2. Capsule result
5.3.1.3. Bixby endpoint
5.3.1.4. Bixby responce
5.3.1.5. Metadata
5.3.2. SmartThings
5.3.2.1. My Device
5.3.2.2. Automation
5.3.2.3. Event
5.3.2.4. Status
5.3.3. Smart TV
5.3.3.1. Smart TV
5.3.4. Start
5.3.5. End
5.3.6. Process
5.3.7. Security
5.3.8. Extension
5.3.9. Decision
5.3.10. Parser
5.3.11. Lab
5.3.12. OpenAI
5.3.13. DataExtractor
5.4. 플로우
5.5. 앱스
6. 설치할 수 있는 스마트앱스 리스트
7. 개발
7.1. 스마트앱스를 내 Samsung Automation Studio의 플로우에 가져오기
7.2. 내 스마트앱스를 다른 사람들에게 공유하기
7.3. 빅스비의 오토메이션 스튜디오 캡슐로 Samsung Automation Studio를 구독하기
7.4. Samsung Automation Studio 플로우를 Node-RED 서버로 옮기기
8. 기타



파일:Samsung Automation Studio_Wordmark_logo.png




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는 블럭 코딩 타입의 비주얼 프로그래밍 가운데에서도 노드를 이어 붙여서 코드를 짜는 플로우 프로그래밍을 지원한다.

Samsung Automation Studio에서 길게 짜여진 플로우를 보면서 마우스의 클릭으로 노드들의 끝에 달린 포트를 누르면 라인이 나온다. 이 라인을 드래그 앤 드롭하여 다른 노드의 포트에 이어 붙이면 여러가지의 노드와 엮을 수 있다. 이렇게 스마트앱스를 만들어 쉽게 빌드할 수 있게 되면서, 마우스 클릭만으로 SmartThings의 스마트앱스(SmartApp)나 나만의 서비스를 만들 수 있다.

자동화 플로우는 암호화된 클라우드 컨테이너에 저장되었다가, 자동화가 켜질 때 격리된 컨테이너 서버에서 외부로 코드가 불러와져서 돌아간다. 이 서버는 유저가 직접 바꾸거나 고칠 수 있다.

자동화 플로우의 노드와 템플릿을 써서 이어 붙이고 고치면서 유저는 큰 자동화 플로우의 흐름을 다루고, 원하는대로 IoT 제품과 서비스를 움직일 수 있다.


2.2. 기획 의도[편집]


Samsung Automation Studio(삼성 오토메이션 스튜디오)은 외부 개발자들이 삼성전자의 서비스를 보다 쉽게 개발할 수 있는 도구를 제공하기 위한 목적으로 만들어졌다.

Samsung Automation Studio를 주도적으로 만든 삼성전자 무선사업부 클라우드 운영그룹의 김대선 프로와 김선학 프로에 따르면 Samsung Automation Studio는 대학생과 같이 영세한 개발자를 지원하기 위해 만든 개발 도구이다. 개발자가 직접 빅스비의 캡슐을 만들어 등록시키고 뒷단의 애플리케이션을 연결시키기에 앞서, 미리 만들어놓은 캡슐을 통해 쉽게 ‘하이 빅스비’와 같은 명령어을 통해 개발자 본인이 만든 애플리케이션을 쉽게 호출할 수 있다.누구나 삼성 IoT 서비스 개발 더 쉽게 ‘SASM’…“오픈소스 없었더라면”

Samsung Softwere Developer Conference 2022 (SSDC 2022)의 공유와 경쟁의 갈등 속에서 오픈소스 'ONE'과 'SASM'을 배우다 세션에 따르면 또다른 기획 의도로는 플로우 시각화와 자유로운 커스터마이징, 다양한 기기 제어의 의도도 있다고 한다.


2.3. 만들 수 있는 것[편집]



2.3.1. 스마트앱스(SmartApp)[편집]


Webhook 베이스의 스마트앱스(SmartApp)를 쉽게 빌드할 수 있다. 스마트앱스(SmartApp)로는 SmartThings의 플로우를 IoT 기기와 섞어서 스마트홈의 자동화 시스템을 만들 수 있다.

2.3.2. 나만의 서비스[편집]


SmartThings빅스비 마켓플레이스에서 제공하는 캡슐을 써서 나만의 서비스를 만들거나 오토메이션 스튜디오에서 유저에게 오픈한 캡슐을 커스텀해서 나만의 캡슐로 만들어서 쓸 수도 있다.


2.3.3. 빅스비의 오토메이션 스튜디오 캡슐 커스텀[편집]


빅스비 마켓플레이스에 있는 오토메이션 스튜디오 캡슐을 커스텀해서 쓸 수 있다. 빅스비가 플로우를 트리거하면 플로우가 돌아가면서 자동화를 돌리게 되며, 플로우가 끝난 뒤의 빅스비 피드백 페이지도 만들어서 보여줄 수 있다.


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를 처음 켜면 나오는 큰 곳이다. 스크린에서 가운데와 오른 쪽에 있다.

캔버스의 밑그림으로는 모눈 그리드가 있다.

키보드의 Shift 키를 누른 다음에 노드를 마우스로 끌어보면 그리드 맞춰서 어질러진 노드들을 한 줄에 맞춰 바로 잡을 수 있다.

5.1.1. 앱 툴[편집]


새로운 플로우를 만들 수 있다.

5.1.2. 편집 툴[편집]



5.2. 불러오기 (Import)[편집]



5.2.1. 템플릿[편집]





Samsung Automation Studio에서 모든 유저에게 쓸 수 있도록 주는 템플릿이다.

팔레트에 있는 템플릿을 더블 클릭하거나 마우스로 잡아서 캔버스에 끌어오면 이미 있는 플로우에 템플릿을 끌어올 수 있다.

5.2.2. 플로우[편집]





플로우는 노드끼리 이어져서 만들어진 로직의 흐름이다.

플로우 메뉴에서는 유저가 만든 플로우의 리스트를 볼 수 있다.

팔레트에 있는 플로우를 더블 클릭하거나 마우스로 잡아서 캔버스에 끌어오면 유저의 삼성계정에 있는 플로우를 끌어올 수 있다.

5.3. 노드[편집]





노드 메뉴에는 Samsung Automation Studio에서 쓸 수 있는 많은 노드가 카테고리로 묶여서 보여진다. 노드의 생김새는 동그라미이며, 가운데에 노드를 알려주는 아이콘이 있다. 노드의 끝에는 라인을 뽑고 다른 노드와 엮을 수 있는 회색 포트가 있다.

5.3.1. Bixby[편집]



5.3.1.1. Capsule label[편집]

Capsule label 노드는 Samsung Automation Studio로 만드는 빅스비 캡슐과, 캡슐의 프로필을 만들 수 있다.

Capsule label 노드로 만들어진 캡슐은 오토메이션 스튜디오 노드 안에 있는 작은 캡슐의 개념이다.

그리고 빅스비 안에서 여러 작은 캡슐의 리스트가 있는 Conversation Drivers의 생김새로 보여져서 캡슐의 프로필과 이름을 보고 원하는 플로우의 앱을 골라서 켤 수 있다.

5.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의 형태로 그려낼 수 있다.

5.3.1.3. Bixby endpoint[편집]


5.3.1.4. Bixby responce[편집]


5.3.1.5. Metadata[편집]


5.3.2. SmartThings[편집]



5.3.2.1. My Device[편집]

My Device 노드는 SmartThings에 붙은 IoT 제품을 Samsung Automation Studio에 불러오는 노드이다.

Samsung Automation Studio를 시작할 때 반드시 플로우에 먼저 넣어야 하는 노드이기도 하다. 삼성계정에 등록된 SmartThings의 장소와 방에 있는 IoT 제품을 원하는 만큼 체크해서 가져올 수 있다. 다른 노드에서는 My Device노드에서 체크한 IoT 제품을 써서 플로우를 만들어낼 수 있다.

My Device 노드를 쓰려면 SmartThings 개인 권한 토큰이 있어야한다.

파일:나무위키상세내용.png   자세한 내용은 SmartThings/개발 문서를 참고하십시오.


  • Name
노드의 이름을 지을 수 있다.

  • Personal Acces Token
스마트싱스 개인 권한 토큰을 붙여넣는 곳이다. 스마트싱스 개인 권한 토큰을 붙여넣으면 토큰에서 골라진 장소, 방, IoT 제품을 불러온다.

  • Note
스마트싱스 개인 권한 토큰을 만들 수 있는 SmartThings 토큰 페이지로 들어갈 수 있는 링크가 있다.

  • X devices, X selected
SmartThings 클라우드에 있는 방, 장소, IoT 제품을 고를 수 있다. 여기서 고른 방, 장소, IoT 제품은 Samsung Automation Studio에서 쓸 수 있게 된다.

5.3.2.2. Automation[편집]

Automation 노드는 Samsung Automation Studio의 플로우 및 스마트앱스를 SmartThings에 스마트앱스로 붙이는 노드이다.

Automation 노드로 SmartThings에 붙은 스마트앱스는 SmartThings의 자동화 탭에서 오른쪽 위의 추천을 누르면 스마트앱스 카테고리에서 내가 만든 스마트앱스를 추가하여 SmartThings 대시보드 에서도 보여지도록 할 수 있다.

  • Name
노드의 이름을 지을 수 있다.

  • Endpoint
SmartThings Developer Workspace에서 만든 스마트앱스로부터 호출되어야 하는 링크 주소이다. SmartThings Developer Workspace에서 스마트앱스를 만들고 엔드포인트를 받아올 수 있는 url 링크를 Automation 노드의 Endpoint에 url 링크로 붙여 넣으면, 삼성 오토메이션 스튜디오에서 만든 스마트앱스를 SmartThings에 붙일 수 있다.


5.3.2.3. 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만을 불러와 이벤트를 만들어내서 플로우를 만들 수 있다는 장점이 있다.

또한 느슨한 커플링으로 추상화한다는 점에서 인터페이스와 닮은 곳이 있다.

  • Name
노드의 이름을 지을 수 있다.

  • Device
Device Profile에서 만든 가상 디바이스의 디바이스 타입, 혹은 SmartThings에 붙은 IoT 제품을 고를 수 있다.

가상 디바이스의 타입에서 쓸 수 있는 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
새로운 필터를 만들 수 있다.

5.3.2.4. 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를 고를 수 있다.

따라서 강한 커플링과 닮은 곳이 있다.

  • Name
노드의 이름을 지을 수 있다.

  • Device
Device Profile에서 만든 가상 디바이스의 디바이스 타입, 혹은 SmartThings에 붙은 IoT 제품을 고를 수 있다.

가상 디바이스의 타입에서 쓸 수 있는 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
새로운 필터를 만들 수 있다.

5.3.3. Smart TV[편집]



5.3.3.1. Smart TV[편집]


5.3.4. Start[편집]



5.3.5. End[편집]



5.3.6. Process[편집]



5.3.7. Security[편집]



5.3.8. Extension[편집]



5.3.9. Decision[편집]



5.3.10. Parser[편집]



5.3.11. Lab[편집]



5.3.12. OpenAI[편집]



5.3.13. DataExtractor[편집]



5.4. 플로우[편집]



5.5. 앱스[편집]




6. 설치할 수 있는 스마트앱스 리스트[편집]



7. 개발[편집]



7.1. 스마트앱스를 내 Samsung Automation Studio의 플로우에 가져오기[편집]


Import 버튼을 눌러서 쉽게 다른 사람이 만든 스마트앱스를 Samsung Automation Studio의 플로우로 가져올 수 있다.


7.2. 내 스마트앱스를 다른 사람들에게 공유하기[편집]


Export 버튼을 눌러서 쉽게 내가 만든 스마트앱스를 공유할 수 있다.

다른 사람은 Import 버튼을 눌러서 공유된 코드를 붙여넣으면 쉽게 스마트앱스를 가져올 수 있다.


7.3. 빅스비의 오토메이션 스튜디오 캡슐로 Samsung Automation Studio를 구독하기[편집]


빅스비를 Samsung Automation Studio에 연결하려면 빅스비의 오토메이션 스튜디오 캡슐에서 Samsung Automation Studio를 구독해야한다.

"하이 빅스비 오토메이션 스튜디오 시작"이라고 말하면 뜨는 창을 눌러서 구독할 수 있다.

'오토메이션 스튜디오가 빅스비에 성공적으로 연결되었습니다!'라는 글이 뜨면 구독이 시작되고 빅스비의 오토메이션 스튜디오 캡슐이 Samsung Automation Studio에 연결된다.


7.4. Samsung Automation Studio 플로우를 Node-RED 서버로 옮기기[편집]



8. 기타[편집]


  • 삼성의 개발자들은 Samsung Automation Studio의 약자인 SASM을 사슴이라고 읽는다. (...)
파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-29 07:27:11에 나무위키 Samsung Automation Studio 문서에서 가져왔습니다.