
Legrand Netatmo 제품을 위한 Pharo Netatmo API 구현.
지원되는 제품:
장치에서 직접 데이터에 액세스할 수 없습니다. Netatmo는 현재 이를 제공하지 않습니다. 데이터와 장치에 액세스하는 유일한 방법은 Netatmo 서버를 이용하는 것입니다. 장치에서 데이터를 가져오려면 인터넷에 연결되어 있어야 합니다.
액세스 토큰을 얻으려면 OAuth2 인증이 필요합니다. 이 토큰은 다른 인증 요청에 맞춰 새로 고쳐져야 합니다. 보안에 대한 자세한 내용은 이 페이지 하단에 있는 공식 Netatmo 문서 링크를 참조하세요.
OAuth2 인증은 Zinc를 사용하여 이 프로젝트에서 작동하며 데스크톱 또는 웹 애플리케이션에 사용할 수 있습니다.
토큰이 복구되면 토큰 유효 기간 동안 API를 사용하세요.
Metacello new
baseline: ' NetatmoAPI ' ;
repository: ' github://labordep/ PharoNetatmoAPI :main ' ;
onConflictUseIncoming;
ignoreImage;
load.client_id 및 client_secret 데이터를 얻으려면 Netatmo 연결 계정으로 애플리케이션 액세스를 생성하세요. 이 프로젝트에서 OAuth2 인증을 사용하려면 하단 섹션을 참조하세요.
자세한 내용은 공식 지침을 참조하세요.
이 섹션에서는 액세스 토큰을 인증하고 가져오는 방법을 설명합니다. 예를 들어 Netamo 계정 웹사이트나 다른 제공 라이브러리를 통해 직접 토큰을 받는 경우에는 이 단계가 필수가 아닙니다. 토큰을 받으면 API를 사용할 수 있습니다. 다음 섹션에서 몇 가지 예를 참조하세요.
먼저 client_id 및 client_secret 데이터를 사용하여 새 NetatmoAPIAuthentificator 인스턴스화합니다. 예를 들어 온도 조절기 온도, 습도 등 데이터 범위를 지정해야 합니다. 확실하지 않거나 모두 필요한 경우 NetatmoScopeEnum allReadScopes 사용하여 읽을 수 있는 모든 데이터를 가져옵니다.
authenticator := NetatmoAPIAuthentificator
clientId: ' myClientId '
clientSecret: ' myClientSecret '
scopes: ( NetatmoScopeEnum allReadScopes). 이제 인증을 요청하기 위해 새 세션을 생성합니다. 이 메소드는 OAuth2 연결 프로세스를 제공하는 ZnOAuth2Session 을 반환합니다.
session := authenticator createOAuth2Session. 토큰을 얻으려는 첫 번째 시도인 경우 세션이 라이브가 아닙니다. requestUserAuthentication 메소드를 호출하여 웹 브라우저를 열고 Netatmo 온라인 양식을 사용하여 인증을 검증하십시오.
session isLive ifFalse: [
authenticator requestUserAuthentication.
].이 단계에서 기본 웹 브라우저는 온라인 Netatmo 인증 양식을 엽니다.

동의하는지 확인하고 수락하세요. 올바른 인증을 확인하기 위한 기본 결과 페이지가 표시됩니다. 표시되면 이 페이지를 닫습니다.

토큰 받기:
token := session liveAccessToken. Instantciante NetatmoAPI API에서 데이터를 요청해야 합니다. 토큰을 사용하여 연결을 설정합니다.
| api |
api := NetatmoAPI new .
api token: ' yourAccess|tokenHere '데이터를 요청하려면 "api" 카테고리 메소드를 사용하세요.
모든 장치를 가져오고 NetatmoDevice 목록을 반환합니다. 목록은 세션 권한 부여에 따라 변경될 수 있습니다.
| devices |
devices := api getDevices. 모든 장치를 가져오고 NetatmoStation 장치 목록을 반환합니다.
| devices |
devices := api getStationDevices. mac 주소(id)에서 특정 장치를 가져오고 NetatmoStation 장치 목록을 반환합니다.
| devices |
devices := api getStationDevice:: ' 01:23:45:67:89:ab ' . 모든 장치를 가져오고 NetatmoHealthyHomeCoach 장치 목록을 반환합니다.
| devices |
devices := api getHealthyHomeCoachDevices. Mac 주소(ID)에서 특정 장치를 가져오고 NetatmoHealthyHomeCoach 장치 목록을 반환합니다.
| devices |
devices := api getHealthyHomeCoachDevice: ' 01:23:45:67:89:ab ' . API를 사용하여 장치에서 측정값을 가져오고 NetatmoMeasure 측정값 목록을 반환합니다. 각 NetatmoMeasure 에는 데이터(예: 56 ), 유형(예: 'humidity' ), 단위(예: '%' ), 데이터 단위(예: Number ) 및 측정값의 DateTime 포함됩니다. API에서 측정값을 요청하면 types: 사용하여 NetatmoMeasureType 목록을 전달하여 데이터 유형을 선택합니다.
장치에서 한 가지 유형의 데이터를 가져옵니다.
| measures |
measures := api getMeasures: (device id)
types: NetatmoMeasureType humidity.장치에서 여러 유형의 데이터를 가져옵니다.
| measures |
measures := api getMeasures: (device id)
types: ( OrderedCollection
with: NetatmoMeasureType temperature
with: NetatmoMeasureType humidity).샘플에 대한 척도와 함께 측정 날짜 시간 간격을 요청할 수 있습니다. 예: 지난 주의 현재 시간에 매일 온도를 가져옵니다.
| measures |
measures := api getMeasures: (device id)
types: NetatmoMeasureType temperature
scale: 1 day
dateTimeBegin: ( DateAndTime now - 7 day)
dateTimeEnd: DateAndTime now. NetatmoAPI-Examples 패키지에는 Spec 및 Roassal 사용하는 기본 사용자 인터페이스와 함께 일부 API 사용 예제가 포함되어 있습니다.
사용 가능한 장치 목록(하위 장치 포함):

지난 7일간 Healthy Home Coach 측정값 목록:

기상 관측소 대시보드:

A 기상 관측소의 지난 7일간 실내 및 실외 습도:

등.
Netatmo Connect API를 사용하면 매우 민감한 정보에 액세스할 수 있습니다. 이는 귀하의 앱이 카메라(실시간 스트림 또는 비디오)에 액세스하는 경우 특히 그렇습니다. 사용자의 개인정보를 존중하고 강력한 개인정보 보호정책을 갖고 있는지 확인하세요.
Netatmo Connect API 이용 약관
이 리소스는 이 API를 구현하기 위한 참조 자료입니다. API 제품 그룹에는 날씨/보안/에너지와 HomeCoach/Aircare의 두 가지 제품 그룹이 있습니다.
일반 Netatmo 문서
보다 구체적인 제품 API:
Netatmo Aircare API 문서
이 프로젝트는 개인적인 작업이며 저는 Legrand와 관련이 없습니다.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.