This commit is contained in:
Nicolas Leclercq 2015-09-11 17:14:09 +02:00
parent dbb64a439a
commit 82ab0252b0

View file

@ -5,70 +5,72 @@ Currently tested only with one weather station, outdoor and indoor modules. Let
## Quickstart
[Create a new netatmo app](https://dev.netatmo.com/dev/createapp)
- [Create a new netatmo app](https://dev.netatmo.com/dev/createapp)
- Download module ```go get github.com/exzz/netatmo-api-go```
- Try below example (do not forget to edit auth credentials)
## Example
```go
import (
"fmt"
"os"
"fmt"
"os"
"github.com/exzz/netatmo-api-go"
"github.com/exzz/netatmo-api-go"
)
func main() {
n, err := netatmo.NewClient(netatmo.Config{
n, err := netatmo.NewClient(netatmo.Config{
ClientID: "YOUR_APP_ID",
ClientSecret: "YOUR_APP_SECRET",
Username: "YOUR_CREDENTIAL",
Password: "YOUR_PASSWORD",
})
if err != nil {
fmt.Println(err)
os.Exit(1)
}
})
if err != nil {
fmt.Println(err)
os.Exit(1)
}
dc, err := n.GetDeviceCollection()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
dc, err := n.GetDeviceCollection()
if err != nil {
fmt.Println(err)
os.Exit(1)
}
for _, station := range dc.Stations() {
fmt.Printf("Station : %s\n", station.StationName)
for _, station := range dc.Stations() {
fmt.Printf("Station : %s\n", station.StationName)
for _, module := range station.Modules() {
fmt.Printf("\tModule : %s\n", module.ModuleName)
for _, module := range station.Modules() {
fmt.Printf("\tModule : %s\n", module.ModuleName)
ts, data := module.Data()
for dataType, value := range data {
fmt.Printf("\t\t%s : %s (%d)\n", dataType, value, ts)
}
}
}
ts, data := module.Data()
for dataType, value := range data {
fmt.Printf("\t\t%s : %s (%d)\n", dataType, value, ts)
}
}
}
}
```
Output should looks like this :
Output should look like this :
```
Station : Home
Module : Outside
Temperature : %!s(float32=20.2) (1440302379)
Humidity : %!s(int32=86) (1440302379)
Module : Bedroom 1
CO2 : %!s(int32=500) (1441981664)
Humidity : %!s(int32=69) (1441981664)
Temperature : %!s(float32=21.2) (1441981664)
Module : Bedroom 2
Temperature : %!s(float32=21) (1441981632)
CO2 : %!s(int32=508) (1441981632)
Humidity : %!s(int32=68) (1441981632)
Module : Living room
Temperature : %!s(float32=22.1) (1441981633)
CO2 : %!s(int32=516) (1441981633)
Humidity : %!s(int32=67) (1441981633)
Module : Outside
Temperature : %!s(float32=20.2) (1440302379)
Humidity : %!s(int32=86) (1440302379)
Module : Bedroom 1
CO2 : %!s(int32=500) (1441981664)
Humidity : %!s(int32=69) (1441981664)
Temperature : %!s(float32=21.2) (1441981664)
Module : Bedroom 2
Temperature : %!s(float32=21) (1441981632)
CO2 : %!s(int32=508) (1441981632)
Humidity : %!s(int32=68) (1441981632)
Module : Living room
Temperature : %!s(float32=22.1) (1441981633)
CO2 : %!s(int32=516) (1441981633)
Humidity : %!s(int32=67) (1441981633)
Module : Dining room
Humidity : %!s(int32=75) (1441982895)
Noise : %!s(int32=36) (1441982895)
@ -78,5 +80,5 @@ Station : Home
```
## Tips
- Only GetDeviceCollection() method actually do an API call ands refresh all data at once
- Only GetDeviceCollection() method actually do an API call and refresh all data at once
- Main station is handle as a module, it means that Modules() method returns list of additional modules and station itself.