Pharo Netatmo API-Implementierung für Legrand Netatmo-Produkte.
Unterstützte Produkte:
Sie können nicht direkt von den Geräten auf Daten zugreifen: Netatmo bietet dies derzeit nicht an. Der Zugriff auf die Daten und Geräte erfolgt ausschließlich über Netatmo-Server. Sie müssen mit dem Internet verbunden sein, um Daten von Ihren Geräten abzurufen.
Für den Zugriff ist eine OAuth2-Authentifizierung erforderlich, um ein Zugriffstoken zu erhalten. Dieses Token sollte rechtzeitig mit einer weiteren Authentifizierungsanforderung aktualisiert werden. Weitere Details zur Sicherheit finden Sie im Link zur offiziellen Netatmo-Dokumentation unten auf dieser Seite.
Die OAuth2-Authentifizierung funktioniert in diesem Projekt mit Zinc und kann für Desktop- oder Webanwendungen verwendet werden.
Wenn Ihr Token wiederhergestellt ist, verwenden Sie während der Gültigkeitsdauer des Tokens die API damit.
Metacello new
baseline: ' NetatmoAPI ' ;
repository: ' github://labordep/ PharoNetatmoAPI :main ' ;
onConflictUseIncoming;
ignoreImage;
load.
Erstellen Sie mit Ihrem Netatmo Connect-Konto einen Anwendungszugriff, um Ihre client_id- und client_secret-Daten abzurufen. Informationen zur Verwendung der OAuth2-Authentifizierung in diesem Projekt finden Sie im unteren Abschnitt.
Weitere Einzelheiten finden Sie in den offiziellen Richtlinien.
In diesem Abschnitt wird beschrieben, wie Sie sich authentifizieren und ein Zugriffstoken erhalten. Dieser Schritt ist nicht zwingend erforderlich, wenn Sie manuell ein Token erhalten, beispielsweise direkt von einer Netamo-Konto-Website oder einer anderen bereitstellenden Bibliothek. Wenn Sie ein Token erhalten, können Sie die API verwenden. Im nächsten Abschnitt finden Sie einige Beispiele.
Instanziieren Sie zunächst einen neuen NetatmoAPIAuthentificator
mit Ihren client_id- und client_secret-Daten. Sie müssen den Umfang Ihrer Daten angeben, zum Beispiel: Thermostattemperatur, Luftfeuchtigkeit usw. Wenn Sie sich nicht sicher sind oder alle benötigen, verwenden Sie NetatmoScopeEnum allReadScopes
um alle lesbaren Daten zu erhalten.
authenticator := NetatmoAPIAuthentificator
clientId: ' myClientId '
clientSecret: ' myClientSecret '
scopes: ( NetatmoScopeEnum allReadScopes).
Erstellen Sie nun eine neue Sitzung, um die Authentifizierung anzufordern. Diese Methode gibt eine ZnOAuth2Session
zurück, die den OAuth2-Verbindungsprozess bereitstellt.
session := authenticator createOAuth2Session.
Wenn dies der erste Versuch ist, ein Token zu erhalten, ist die Sitzung nicht aktiv. Rufen Sie die Methode requestUserAuthentication
auf, um Ihren Webbrowser zu öffnen und die Authentifizierung mithilfe des Netatmo-Onlineformulars zu validieren.
session isLive ifFalse: [
authenticator requestUserAuthentication.
].
In diesem Schritt öffnet Ihr Standard-Webbrowser das Online-Netatmo-Authentifizierungsformular:
Überprüfen Sie und akzeptieren Sie, ob Sie damit einverstanden sind. Zur Bestätigung der guten Authentifizierung wird eine einfache Ergebnisseite angezeigt. Schließen Sie diese Seite, wenn sie angezeigt wird:
Erhalten Sie Ihren Token:
token := session liveAccessToken.
Instanciante NetatmoAPI
muss Daten von der API anfordern. Verwenden Sie einen Token, um die Verbindung einzurichten.
| api |
api := NetatmoAPI new .
api token: ' yourAccess|tokenHere '
Verwenden Sie Methoden der Kategorie „API“, um Daten anzufordern.
Holen Sie sich alle Geräte und geben Sie eine Liste von NetatmoDevice
zurück. Die Liste kann sich je nach Sitzungsberechtigung ändern.
| devices |
devices := api getDevices.
Alle Geräte abrufen, eine Liste der NetatmoStation
-Geräte zurückgeben.
| devices |
devices := api getStationDevices.
Rufen Sie ein bestimmtes Gerät von der Mac-Adresse (ID) ab und geben Sie eine Liste der NetatmoStation
-Geräte zurück.
| devices |
devices := api getStationDevice:: ' 01:23:45:67:89:ab ' .
Alle Geräte abrufen, eine Liste der NetatmoHealthyHomeCoach
-Geräte zurückgeben.
| devices |
devices := api getHealthyHomeCoachDevices.
Erhalten Sie ein bestimmtes Gerät von der Mac-Adresse (ID) und geben Sie eine Liste der NetatmoHealthyHomeCoach
-Geräte zurück.
| devices |
devices := api getHealthyHomeCoachDevice: ' 01:23:45:67:89:ab ' .
Verwenden Sie die API, um Messwerte von einem Gerät abzurufen und eine Liste von NetatmoMeasure
-Messwerten zurückzugeben. Jede NetatmoMeasure
enthält Daten (z. B. 56
), Typ (z. B. 'humidity'
), Einheit (z. B. '%'
), Dateneinheit (z. B. „ Number
“) und eine DateTime
der Messung. Wenn eine Kennzahl von der API angefordert wird, verwenden Sie types:
um den Datentyp auszuwählen, indem Sie eine Liste von NetatmoMeasureType
übergeben.
Rufen Sie einen Datentyp von einem Gerät ab.
| measures |
measures := api getMeasures: (device id)
types: NetatmoMeasureType humidity.
Rufen Sie mehrere Datentypen von einem Gerät ab.
| measures |
measures := api getMeasures: (device id)
types: ( OrderedCollection
with: NetatmoMeasureType temperature
with: NetatmoMeasureType humidity).
Es ist möglich, ein Datum-Zeit-Intervall der Messung mit einer Skala für die Probe anzufordern. Beispiel: Temperatur jeden Tag zur aktuellen Zeit in der letzten Woche abrufen.
| measures |
measures := api getMeasures: (device id)
types: NetatmoMeasureType temperature
scale: 1 day
dateTimeBegin: ( DateAndTime now - 7 day)
dateTimeEnd: DateAndTime now.
Das Paket NetatmoAPI-Examples
enthält einige API-Anwendungsbeispiele mit grundlegenden Benutzeroberflächen unter Verwendung von Spec
und Roassal
.
Eine Liste der verfügbaren Geräte (mit Untergeräten):
Eine Liste der Healthy Home Coach-Maßnahmen der letzten 7 Tage:
Ein Dashboard der Wetterstation:
Eine Wetterstation misst die Luftfeuchtigkeit im Innen- und Außenbereich der letzten 7 Tage:
Usw.
Mithilfe der Netatmo Connect-APIs haben Sie Zugriff auf sehr vertrauliche Informationen. Dies gilt insbesondere dann, wenn Ihre App auf unsere Kameras zugreift (Livestream oder Videos). Stellen Sie sicher, dass Sie die Privatsphäre der Benutzer respektieren und strenge Datenschutzrichtlinien haben.
Nutzungsbedingungen für Netatmo Connect APIs
Diese Ressourcen sind meine Referenz zur Implementierung dieser API. Es gibt zwei API-Produktgruppen: Wetter/Sicherheit/Energie und HomeCoach/Aircare.
Allgemeine Netatmo-Dokumentation
Spezifischere Produkt-API:
Netatmo Aircare API-Dokumentation
Dieses Projekt ist eine persönliche Arbeit, ich bin nicht mit Legrand verbunden.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der LIZENZ-Datei.