CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·아이포니앙 ·주식한당 ·MaClien ·방탄소년당 ·일본산당 ·소시당 ·개발한당 ·자전거당 ·이륜차당 ·AI당 ·안드로메당 ·골프당 ·소셜게임한당 ·패스오브엑자일당 ·나스당 ·바다건너당 ·곰돌이당 ·가상화폐당 ·콘솔한당 ·클다방 ·걸그룹당 ·키보드당 ·리눅서당 ·물고기당 ·전기자전거당 ·노젓는당 ·사과시계당 ·퐁당퐁당 ·디아블로당 ·찰칵찍당 ·라즈베리파이당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·날아간당 ·육아당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·e북본당 ·갖고다닌당 ·이브한당 ·패셔니앙 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·IoT당 ·KARA당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·PC튜닝한당 ·그림그린당 ·소풍간당 ·심는당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·여행을떠난당 ·터치패드당 ·트윗당 ·창업한당 ·VR당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

IoT당

팁.리뷰 IoT 스위치로 홈어시스턴트를 통해 Volumio 재생/멈춤/종료 조작하기(내용 추가)

2022-10-22 12:18:55 수정일 : 2022-12-11 19:06:06 49.♡.120.41
무재칠시

굳이 이렇게까지 해야하나 싶긴 하지만, 필요에 의해 이런 저런 작업을 해보았습니다. 


[의식의 흐름] 

  • 탁상용 스피커를 통해 영국에서 스트리밍하는 Classic FM을 듣고 싶습니다. 인터넷 라디오를 지원하는 대중적인  Volumio를 쓰기로 합니다. 
  • Volumio을 Odroid XU4에 설치하고 Wi-Fi에 연결합니다. 혹시 소리가 좋을까 싶어서 안쓰는 USB Audio 카드를 오드로이드에 연결합니다. 
  • 이제 껐다가 켰다가 해야 하는데, Volumio를 조작하려면 스마트폰이나 PC에서 로컬IP(예:192.168.1.96)로 접속해야 합니다. 그러나 전화오면 잠깐 멈추고 하는 작업들까지 그렇게 하려니 상당히 귀찮습니다. 
  • 일단 IoT 플러그를 꼽아서 오드로이드의 전원을 제어할 준비를 하고, IoT 스위치(아카라 스위치) 하나를 추가하여(연동에 필요한 Xiaomi Gateway3는 이미 보유) Play, Stop, 전원켜기/끄기를 스위치로 조작하기로 합니다.  


20221022_100730.jpg

(흰색 사각형 모양이 IoT 스위치)


[기능] 

  • 전원켜기 - IoT 스위치를 Click합니다. 그러면, Volumio가 설치된 Odroid는 IoT 플러그(Mi Smart Plug WiFi)를 이용하여 전원을 공급합니다.
  • 전원끄기 - IoT 스위치를 더블 클릭합니다. 그러면, (그냥 꺼도 되지만)Volumio가 설치된 Odroid에 SSH로 접속해서 shutdown을 해야 하는데, 홈어시스턴트의 Shell command를 활용하고, 50초 후에는 IoT 플러그의 전원을 차단합니다. 
  • Volumio의 음악 재생과 잠시 멈춤 -  Volumio가 켜진 상태에서 IoT 스위치를 Click하면 Play와 Stop이 토글됩니다. 


[전원 켜기] 

  • 전원 켜는 것은 (저의 경우에는 샤오미 생태계를 이용하므로) Mi Home앱에서 바로 설정할 수 있습니다. 


[전원 끄기 구현 과정]

  1. 우선 오드로이드를 꺼야 합니다. 
  2. "sudo shutdown -h now"명령을 홈어시스턴트(라즈베리파이에 설치)가 보내도록 해야하는데, id와 패스워드 없이 라즈베리파이(Home Assistant, 192.168.1.154)에서 오드로이드(Volumio, 192.168.1.96)로 접속하려면 미리 작업을 해야 합니다. 
  3. 홈어시스턴트의 설치 방법(수퍼바이즈드, 도커, 코어)에 따라 조금씩 다르겠지만, 홈어시스턴트가 어느 (리눅스) 계정을 사용하여 volumio@192.168.1.96으로 접속하는 지 생각해본 후, 다음 작업을 진행합니다. 
  4. 저는 수퍼바이즈드이므로 pi아이디로 접속 후 sudo명령으로 작업을 하면 되고, 도커로 설치했다면 sudo docker exec -it homeassistant bash로 쉘에 접속해서 작업을 해야 하겠습니다.  작업 위치는 config파일들이 있는 곳인데 configuration.yaml이 있는 위치입니다.  이곳에 .ssh폴더 밑에 id_rsa를 만들 것입니다. 
  5. ssh-keygen -t rsa 명령으로 만들고 ssh-copy-id volumio@192.168.1.96을 통해 id_rsa를 전달해 놓습니다. 그러면, 이후 ssh -i [id_rsa가 있는 폴더명] volumio@192.168.1.96을 해보면 패스워드 없이 접속 가능하게 되면 성공입니다.(How to Setup SSH Passwordless Login in Linux [3 Easy Steps] (tecmint.com)) 
  6. 보통 처음 접속할 때 다음 메시지가 한번 나오기 때문에 yes를 해주어야 홈어시스턴트가 다음에 접속할 때 문제가 없습니다. 물론 다른 방법도 있지만 귀차니즘이 있으므로,,, 
  7. ssh -i /config/.ssh/id_rsa volumio@192.168.1.96


    The authenticity of host '192.168.1.96 (192.168.1.96)' can't be established.
    ECDSA key fingerprint is SHA256:QVld0ZMcRRc78fO...
    This key is not known by any other names
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

  8. 최종적으로 configuration.yaml에 다음 내용이 추가됩니다. /config는 홈어시스턴트가 볼 때의 configuration.yaml 파일이 있는 폴더 위치이고 절대 위치는 /home/pi/homeassistant와 같이 다른 장소에 있습니다(설치 방법에 따라 다름). 
  9. shell_command:

       volumio_turn_off: sudo ssh -i /config/.ssh/id_rsa volumio@192.168.1.96 'sudo shutdown -h now'

  10. 이제 자동화 명령을 통해 shell_command를 보내고 50초 후 IoT 플러그를 끄며 다음과 같이 자동화 스크립트를 만들었습니다. 제가 타이핑하여 만든 거는 아니고, 홈어시스턴트에서 쉽게 사용할 수 있게 만들어진 UI를 통해서 하나씩 아이템과 작업을 선택하면 됩니다. 

  11. volumio:

      alias: Volumio 끄기

      sequence:

      - service: rest_command.volumio_stop_music

        data: {}

      - service: shell_command.volumio_turn_off

        data: {}

      - delay:

          hours: 0

          minutes: 0

          seconds: 50

          milliseconds: 0

      - type: turn_off

        device_id: 712d9be0af5c47

        entity_id: switch.chuangmi_m3_deba_switch

        domain: switch

      mode: single

  12. 이제 아래와 같이 자동화를 하면 끝입니다.


114137.png

(홈어시스턴트가 제공하는 UI로 자동화하는 모습, 버튼을 더블클릭하면 미리 만들어 놓은 스크립트를 호출합니다)


[Volumio를 홈어시스턴트에서 제어하기] 

  • 오래된 api로 제어가 가능하다고 하며, 잘 됩니다. 다음은 홈어시스턴트가 Volumio를 제어할 때 사용한 호출 방식이고 configuration.yaml에 추가하면 됩니다.  
  • rest_command:

       volumio_stop_music:

           url: 'http://192.168.1.96/api/v1/commands/?cmd=stop'

       volumio_play_music:

           url: 'http://192.168.1.96/api/v1/commands/?cmd=play'

  • 참고로 Classic FM은 다음과 같이 틀 수 있었습니다. 역시 configuration.yaml에 추가합니다. 

    • rest_command:

    •   volumio_play_classicfm:

    •       url: "http://192.168.1.96/api/v1/replaceAndPlay"

    •       method: post

    •       content_type: "application/json"

    •       payload: '{ "service":"webradio", "type":"webradio", "title":"Classic FM", "uri":"http://vis.media-ice.musicradio.com/ClassicFMMP3 Albumart: /albumart" }'


[IoT 스위치로 Volumio의 음악을 멈추었다가 다시 켜기]

  • 미리 Volumio도 Home Assistant의 기기로 추가해 놓아야 합니다. 상태를 읽을 수는 있는데 제어하는 기능은 없더라구요... 
  • 위쪽에 있는 그림에서 트리거와 동작에 대해서는 이해했다고 가정하고, 이제 조건이 필요한데요. 
  • 버튼을 한번 눌렀을 때 Volumio가 재생 중이라면, 재생을 멈추기를 해야 하기 때문입니다. 


115212.png

(버튼을 눌렀을 때 조건을 추가해야 합니다)



  • 버튼을 눌렀을 때 대기 중이었다면, 재생을 하도록 합니다. 


115631.jpg

(조건을 추가합니다. 음악을 멈춘 상태라면~) 


그 외 아침에 시간이 되면 자동으로 틀고, LIFE360으로 위치를 공유하는 가족들이 모두 외출하면 자동으로 끄고, 홈어시스턴트가 인식하는 스마트TV를 켜면 자동으로 멈추는 기능들은 덤(위 작업을 해냈다면 쉬운 일)입니다...


끝으로, 홈어시스턴트가 어렵다고 느껴지는 이유는 UI가 점점 좋아지고 있음에도 불구하고 알아야할 제반 지식들이 쏠쏠하게 필요하기 때문입니다. 하나씩 알아가면서 하면 되긴 하겠지만, 예를 들면 리눅스를 다룰 줄 알고 있는 사람보다 두 세 배의 시간이 소요될 수 있습니다.


개인적으로는 Supervised, Docker, Core의 세 가지 방식으로 모두 설치해 보았는데, 다 나름대로의 고충이 있었습니다. 일단, 지속적으로 업데이트를 쉽게 할 수 있는 것은 Supervised인 듯하고, 도커가 설치는 편한데 도커라서 또 알아야 할 사항들이 조금 더 생깁니다.  


읽어주셔서 감사합니다~ 


2022-12-11 

  • 별도로 Odroid XU4에 설치한 Volumio를 썼던 이유가 오직 Classic FM(United Kingdom)을 트는 용도였습니다.
  • 홈어시스턴트 2022.3 버전부터는 Radio Browser가 지원이 되었다고 하여, 홈어시스턴트가 설치되어 있는 기기에서 틀기로 하였습니다.   
  • 방법은 아주 간단합니다. 자동화에서 동작 -> 미디어 재생 -> 대상(예: 구글 스피커 등)을 선택하고 -> 미디어 선택 -> Radio Browser를 선택하고 UK를 찾은 후 Classic FM Live를 추가하면 끝입니다. 
  • 이제 Volumio를 철거하고, IoT 버튼에 방금 자동화한 내용을 연결하면 끝입니다. 
  • 저는 MIBOX3를 늘 큰 스피커와 연결해 놓았고, 유튜브/넷플릭스 등을 보는 용도로 사용하고 있기 때문에, 평소에는 버튼으로 Classic FM을 틀어놓았다가 유튜브/넷플릭스를 볼 때에는 한번 더 눌러서 미디어를 STOP하면 되었습니다. 


190414.jpg 버튼을 누르면 Play중이 아니면 Classic FM을 틀고, Play 중이면 Stop하는 자동화 루틴 입력 모습입니다.


무재칠시 님의 게시글 댓글
SIGNATURE
황상(제자) 曰 "저는 머리도 나쁘고 앞뒤가 꽉 막히고 분별력도 모자랍니다."
다산 曰 "하지만, 넌 공부하는 자들이 갖고 있는 세가지 결점을 하나도 갖고 있지 않구나."

學子有大病三(학자유대병삼) : 배우는 자에게는 세가지 큰 병이 있을 수 있다. 

一敏於記誦(일민어기송)  : 첫째는 기억력이 뛰어난 결점 - 한번보면 척척 외우는 아이들은 그 뜻을 깊이 음미할 줄을 모른다.
二銳於述作(이예어술작) : 둘째는 글 짓는 재주가 좋은 결점 - 제목만 주면 글을 지어내지만 저도 모르게 경박하고 들뜨게 된다. 
三捷於悟解(삼첩어오해) : 세째는 이해가 빠른 결점 - 한마디만 말귀를 던져주면 금새 말귀를 알아듣지만 곱씹지 않으므로 깊이가 없다. 

둔하지만 공부에 파고드는 사람은 식견이 넓어지고 꽉 막혔지만 그것이 한번 뚫리면 거칠것이 없으며  답답하지만 꾸준히 연마하는 사람은 그 빛이 더욱 반짝인다.

저의 개인 블로그(소소한 리뷰) - http://imky.tistory.com
서명 더 보기 서명 가리기
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [0]
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.