본문 바로가기
IT/ETC

Tmall Elf 로 HomeAssistant로 제어하기 [스마트 홈 스킬 액세스]

by 아키다 2019. 2. 5.

Tmall Elf 로 HomeAssistant로 제어하기 [스마트 홈 스킬 액세스]

최근 Tmall Elf의 보급으로 Tmall Elf가 기장 장치의 연결을 지원합니까? Tmall Wizard가 Xiaomi Gateway를 제어 할 수 있습니까? Xiaomi가 Xiaoying의 직접 경쟁자 인 Tmall Elf에게 자신의 장비를 열지 않기 때문에 대답은 직접 제어 할 수 없습니다. Tale이 열려 있으면 어떻게 동그라미에 섞일 
수 있습니까 그러나 Tmall을 통해 간접적으로 제어 할 수 있습니다. Elf - HomeAssistant - 기장 장치, 완벽한 제어.

먼저 비디오를 보자.

비디오가 자신의 비디오 링크를 열 수 없습니다.

------- 2018년 11월 18일 업데이트 링크스 엘프 자기 게이트웨이 
한 다음 새로운 기기 카테고리 
마이크로파 전자 레인지 용 
히터 히터 
발수 무효화 한 모기의 
디딜 디딜 
스마트 게이트 (잠금) 스마트 게이팅 
지능형 스마트 밴드 팔찌 
랙 행거 
액세스 토큰과 legacy_api_password (이전 암호 인증) 긴 수명을 지원하면서 2, 
수명이 긴 액세스 토큰이 쓸 때 새로 생성 된 암호를 채울 
수명이 긴 액세스 토큰이 생성

인증에 추천, 하 기본이 api_password 방법을 제공하지 않은, 별도의 언급이 후속 직접 수명이 긴 액세스 토큰 방식

 

------- 2018.06.09 업데이트는 TV 튜닝 및 공조 제어를 지원 
합니다. 두 포럼 플러그 인 도킹 아래의 포럼을 기반으로 다른 플러그인은 테스트되지 않으며 문제가 있으면 피드백을주십시오

Bolian TV 플러그인

볼리 안 히타치 중앙 냉방 플러그인

------

앞에서 
작성된 이 프로그램에는 몇 가지 어려운 요구 사항이 있습니다. 1. 홈 어시스턴트 공용 네트워크에 액세스 할 수 있으며 자체 장비가
있습니까? HomeAssistant가 무엇인지 모릅니다. 
기술에 종사하는 사람은 기술없이 https://home-assistant.io/를 방문하십시오 
.이 기사를 통해 스마트 홈 의 첫 경험을 확인할 수 있습니다 그래도 이해가되지 않으면 HomeAssistant를 직접 찾으십시오.이 제안을 이해할 수 없다면 읽을 수 없습니다. 내 모든 콘텐츠는 기존의 HomeAssistant의 기초를 기반으로합니다. 배포되지 않은 경우 먼저 배포하고 게시물을 계속 읽으십시오. 思 彼岸 는 현재 중국에서 가장 규모가 큰 HomeAssistant 기술 교류 포럼이며, 이해하지 못하는 사람들은 먼저 배우고 이해할 수 있습니다. 홈 어시스턴트에 참여하는 데 도움이되는 모든 큰 길을 찾을 수 있습니다!)

2.php + mysql 또는 유사한 환경

3.이 방법은 단독으로 만 사용할 수 있습니다.


위의 조건 1과 2를 사용할 수없는 경우 Tmall 마법사에 연결하기 위해 무엇을하고 싶습니까?

 

이 문서를 이동하십시오 (물론이 프로그램도 조건 1에 따라 다릅니다. 가지고 있지 않다면 아래로 보지 마십시오) - >> Hassbian Forum 공식 기술 액세스

문제가있다, 당신은 Weibo에 메시지  남길 수 있습니다, 포워딩에주의를 기울이면 지원입니다, 감사합니다! !

또한, 서비스를 구축 할 수있는 능력이 있고 포럼에 자신의 계정을 호스팅하고 싶지 않다면, 계속 내려다 보면서 자기 빌드 된 프로그램이 Tmall 마법사에 대한 HomeAssistant 액세스를 완료하는 데 도움이 될 수 있습니다.

 


결국 포럼은 공익 유형이므로 과도한 자원 지원이 없기 때문에 공개 기술을 사용할 때 지연이나 다른 문제가 발생할 수 있으므로 Tmall 게이트웨이를 구축 할 수있는 방법을 제공합니다.

 

먼저 회로도를 보냅니다.

게이트웨이 코드는 6 월 10 일에 업데이트되었습니다.이 변경으로 인해 데이터베이스를 다시 작성해야하는 사용자는 이전 코드와 데이터베이스 및 Tmall 플랫폼의 모든 기술을 삭제하여 충돌이 발생하지 않도록하는 것이 좋습니다.

1. Oauth2 및 게이트웨이 PHP 코드 다운로드

자신의 PHP 버전을 확인하십시오 :
php -v 실행
PHP 5.3.3  (cli) (빌드 : Mar 22 2017 12:27:09)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, 저작권 (c) 1998-2010 Zend Technologies
PHP 5.3.3이 PHP 버전입니다. 버전에 따라 아래의 해당 구성표를 선택하십시오.
다음 버전의 php5.3.9는 직접 실행될 수 있습니다 :
힘내 클론  https://github.com/bshaffer/oauth2-server-php.git  -b php5.2-develop
Mv tmall-bot-x1 / *.
PHP 버전이 5.3.9 (5.3.9 포함) 이상인 경우 다음을 수행하십시오.
힘내 클론   https://github.com/c1pher-cn/tmall-bot-x1.git    -b php5.3
Mv tmall-bot-x1 / *.

2. 데이터베이스 구성 테이블

mysql 데이터베이스에 새 데이터베이스를 입력하고 mysql에서 다음의 빌드 테이블 명령을 실행한다.

CREATE TABLE oauth_clients ( client_id VARCHAR(80) NOT NULL, client_secret VARCHAR(80) NOT NULL, redirect_uri VARCHAR(2000) NOT NULL, CONSTRAINT client_id_pk PRIMARY KEY (client_id));

표 oauth_access_tokens 생성 (NULL NOT VARCHAR (40)는, NULL NOT VARCHAR (80) CLIENT_ID access_token은, 타임 스탬프 NULL NOT 만료) (255 VARCHAR를 USER_ID, 범위 VARCHAR (2000), PRIMARY KEY (access_token은) access_token_pk CONSTRAINT);

VARCHAR는 (255), NOT NULL redirect_uri로 VARCHAR (2000), 타임 스탬프 NULL NOT 만료 표 oauth_authorization_codes을 (authorization_code VARCHAR (40) NULL NOT은 VARCHAR (80 CLIENT_ID) CREATE NULL NOT 266 범위 VARCHAR (2000), 제약 (PRIMARY KEY를 auth_code_pk Authorization_code));

표 oauth_refresh_tokens 생성 (refresh_token도가 VARCHAR (40) NULL NOT, NULL NOT VARCHAR (80) CLIENT_ID, 소인 NULL NOT 만료) (255 VARCHAR를 USER_ID, 범위 VARCHAR (2000), 제약 PRIMARY KEY (refresh_token도)를 refresh_token_pk);

표 oauth_users를 CREATE (사용자 이름 NULL NOT VARCHAR (255), 비밀번호 VARCHAR (2000), FIRST_NAME VARCHAR (255), LAST_NAME VARCHAR (255) PRIMARY KEY (사용자 이름) username_pk, CONSTRAINT);

표는 CREATE (oauth_scopes 
범위 VARCHAR (80)이 NOT NULL, 
의 is_default BOOLEAN, 
기본 키 (범위) 
);

NOT은`oauth_devices` (`id`의 INT (11) NOT NULL AUTO_INCREMENT,`user_id`의 VARCHAR (255) NOT NULL로,`deviceId`의 VARCHAR (255) NOT NULL로,`deviceName`의 VARCHAR (255) NULL NOT을 존재하는 경우 테이블 만들기, `jsonData` 텍스트 NULL NOT,`텍스트 NULL NOT,`time` 타임 스탬프 NOT NULL DEFAULT의 CURRENT_TIMESTAMP, devices``del`의 INT (11) NOT NULL DEFAULT '0',`virtual` INT하지 NULL DEFAULT '0',`영역 `VARCHAR (255) NOT NULL DEFAULT '0'PRIMARY KEY (`id`)) ENGINE = 이노 DEFAULT CHARSET = UTF8 AUTO_INCREMENT = 2;

테이블에게 사용자 _ (CREATE 
ID BIGINT NULL이 아닌 AUTO_INCREMENT를, 
VARCHAR (255)에 NOT NULL, USER_ID 
homeassistantURL VARCHAR (255)에 NOT NULL, 
homeassistantPASS VARCHAR는 (255)는 NOT NULL, 
USER_NAME VARCHAR는 (255)는 NOT NULL은 
이메일에서 VARCHAR (255), 
소인 만기 NOT NULL, 
fromwhere하는 VARCHAR NOT NULL (20 임) 
기본 키 (ID), 
UNIQUE KEY inx_user_id (USER_ID) 
);

그런 다음 새 계정과 암호를 만듭니다 (XXXXXXclientid, XXXXXXsecret, 직접 설정하고 Tmall 개방형 플랫폼에서 작성해야 함)

삽입에  oauth_clients (CLIENT_ID, client_secret 상기 redirect_uri로)  값  ( "XXXXXXclientid"  "XXXXXXsecret" https://open.bot.tmall.com/oauth/callback );

3. 구성 파일 수정

자신의 데이터베이스 구성에 따라 homeassistant_conf.php를 수정하십시오.

새로운 기술 4. Lynx는 개방형 플랫폼 에 Taobao의 계정을 https://open.bot.tmall.com 착륙, 새로운 기술, 능력, 스마트 홈의 유형을 선택 사진을 업로드하고 기술을 게시 할 수 없기 때문에 (일부 설명, 어떻게 여기하기 당신은) 무료 계정 인증 링크  https://yourhost.com/authorize.php 된 ClientID         XXXXXXclientid 클라이언트 비밀  XXXXXXsecret XXXXXXclientid, XXXXXXsecret의 자신의 세트의 앞)에서 액세스 토큰의 URL   https://yourhost.com/token.php 개발자 게이트웨이 주소         https://yourhost.com/gate.php (모든 yourhost.com 자신의 도메인 이름의 웹 사이트로 대체 이상)













구성한 후, 다음을 클릭하십시오. 실제 시스템 테스트는 아래의 실제 시스템 테스트를 열고, 하단 행에서 H5 구성 페이지를 볼 수 있습니다. 

계정 구성을 클릭하면 이전에 구성된 계정 인증 연결로 이동합니다. https://yourhost.com/authorize.php 
물론 간단히 썼습니다. 확인 버튼 만 만들었습니다.

인증이 성공한 후 오류가 없다면, Tmall 플랫폼 페이지는 현재 장치 목록 (gate.php에 구성된 장치)을 표시합니다. 동시에 휴대폰 Tmall Wizard 클라이언트는 이러한 장치를 볼 수 있습니다. 확인을 위해 기본 장치 목록을 참조하십시오. 
---------------------------------------- 
여기있을 경우 : "잘못된의 Oauth 토큰 반환 , "또는"매개 변수 값이 잘못되었는지 확인하십시오., 3 초 후에 장치 목록으로 돌아 가기 "

Oauth2-PHP-Server의 관련 파일을 수정하십시오. 
OAuth2를-서버 PHP / SRC / OAuth2를 에서 Server.php  'require_exact_redirect_uri은'=> 사실, 
수정 
'require_exact_redirect_uri'=> FALSE로를, 
(require_exact_redirect_uri false로 매개 변수를 변경)
----------- ------------------------- 
코드로 토큰을 얻으면 인증이 성공한 후에 구성한 장치 목록을 볼 수 있습니다.

 

5. 자체 장치 목록 구성

장치를 구성하는 방법은 이제 통합 된 코드는 포럼, 여러 가상 장치에 대한 지원이다 (센서) 
여기 HASS 주소와 암호를 변경하려면 : 도메인 이름 /information.php을 
여기에 장치 목록을 관리 할 수 : 도메인 이름 /discovery.php을

원래 계정 시스템이 제거되었으므로 처음 방문 할 때 로그인 버튼이 표시되고 클릭하면 패스됩니다. 
아무 문제만큼 HASS 도메인 암호 구성 확인 기능을 완료 한 후에는 디렉토리에 넣을 수 있습니다 / 이 페이지를 통해 얻을 수 있도록 외부를 방지 information.php.back 같은 다른 이름으로 변경은 add.php 다른 문서를 discovery.php, information.php 귀하의 hass 암호로 이동하거나 귀하의 페이지를보십시오. 그러면 더 이상 장비를 추가하지 않아도됩니다!

참고 장치를 추가 :

1. 동일한 위치에있는 여러 센서는 가상 장치를 사용해야하며 가상 센서의 장치 ID는 수동으로 접미사를 사용해야합니다.

2. 장치 유형 및 이름 정보 : deviceType Tmall Wizard가 실제로 제어 할 때 제어 할 장치 이름을 선택하십시오. 예를 들어, 엘프의 컨트롤이 냉장고의 살쾡이 공개 [위치]를 호출 할 때 여기에, '냉장고'를 선택, '냉장고'의 형태로 장치를 작동합니다. deviceName (장치 이름) 이 위치는 사용자가 입력 할 수있게 해주지 만 장치 유형과 동일한 이름을 입력하십시오! Tmall Elf는 지침을 듣지 않고 나에게 오지 않습니다. 별칭을 변경하려면 Tmall 마법사 응용 프로그램에서 직접 변경할 수 있습니다.

3. 운영 및 속성 정보

    작업 (지원되는 작업) 작업 작업은 주로 장치에서 지원되는 작업을 확인하는 데 사용되며, ha의 기능에 따라 추가 할 수 있습니다

볼륨 명령 설정 : (거실) (텔레비전) 볼륨을 80 % [범위 0-100]으로 조정합니다.

색상 명령을 설정합니다. (거실) (플로어 램프)를 (흰색)

밝기 명령을 설정하십시오 : (거실) (천장 조명)의 밝기를 (80) [범위 0-100]

열기 명령 : 오픈 (부엌) (커튼)

닫기 명령 : close (욕실) (샹들리에)

소리는 단계 크기에 따라 조정됩니다      .  (거실) (텔레비전) 큰 소리 (media_player 만 지원)

소리는 단계 크기에 따라 조정됩니다      .  (거실) (텔레비전) 작은 소리 (media_player에서만 지원됨)

다음 또는 다음    명령 :  (거실) (TV) 다음 (media_player 지원 전용)

이전 또는 이전    명령 :  (거실)의 (TV) (media_player 지원 전용)

채널 선택 명령 : (TV, 셋톱 박스)에서 (Zhejiang Satellite TV, Central One)

나는 중앙역, 절강 위성 TV를보고 싶다 (단 하나의 조정 가능한 테이블 장치가 이런 식으로 사용될 수있다)

(media_player에서만 지원됨)

일시 중지, 계속 명령 : (레스토랑) (로봇 휩쓸 기) 일시 중지 (media_player, 진공)

설정 모드 명령 : (침실) 냉방 모드, 공기 공급 모드, 난방 모드, 제습 모드 (기후)

온도 명령 설정 : (두 번째 침실) 공조 온도가 25도

풍속 조정 명령 : (주 침실) 공조 풍속 조정 (1 차, 2 차, 3 차)

검색어 온도

쿼리 밝기

습도 확인

Query pm2.5

쿼리 전원 스위치

등록 정보 (지원되는 속성 상태)는 주로 센서 및 장치 상태에 사용되며 조회가 필요한 장치의 경우 해당 속성을 선택하십시오.

전원 공급 장치 (거실) (천장 조명)가 켜져 있습니까? PM2.5 (거실)의 (센서) (PM2.5)는 무엇입니까? 습도          (거실)의 (습도)는 얼마입니까? 온도          (거실)는 (온도)는 얼마입니까? 밝기          (거실)의 (밝기)는 얼마입니까?     




- 1 월 8 일 새로운 조명 색상 제어 - 6 월 1 일 TV 관련 제어, 통합 멀티 센서 쿼리, 구성 관리 페이지 
- 6 월 10 일 TV 관련 제어, 새로운 에어컨 (기후 지원)

내 코드를 배포하는 사람에 따르면 이후의 모든 업데이트는 
gate.php 에 다른 브랜치의 두 파일 만 업데이트하면됩니다 .
aligenies_request.php 
add.php 
addVirtualDevice.php

아래의 Php5.3.9 는 5.3.9 (5.3.9 포함) 의 master branch 
php 버전을 선택합니다.




댓글