Der SSL Fehler war ja auch von der Antwort oberhalb gemeint. Da bin ich nicht alleine mit der SSL Fehlermeldung, oder hat die jeder?
@tasmanie:
Hast du die Client ID und das Client Secret richtig eingetragen, denn sonst funktioniert nichts.
Der SSL Fehler war ja auch von der Antwort oberhalb gemeint. Da bin ich nicht alleine mit der SSL Fehlermeldung, oder hat die jeder?
@tasmanie:
Hast du die Client ID und das Client Secret richtig eingetragen, denn sonst funktioniert nichts.
Ja hab mir auch ein neues generieren lassen und es eingetragen, es hat ja auch die ganze Zeit funktioniert.
Probier einfach mal das Script, wenn das funktioniert kannst du ja erweitern anfangen:
<?php
require_once("NAApiClient.php");
$config = array();
$config['client_id'] = 'YOUR_APP_ID'; // ersetzen
$config['client_secret'] = 'YOUR_APP_SECRET'; // ersetzen
//application will have access to station and theromstat
$config['scope'] = 'read_station read_thermostat write_thermostat';
$client = new NAApiClient($config);
$username = "YOUR_USERNAME"; // ersetzen
$pwd = "YOUR_PWD"; // ersetzen
$client->setVariable("username", $username);
$client->setVariable("password", $pwd);
try
{
$tokens = $client->getAccessToken();
$refresh_token = $tokens["refresh_token"];
$access_token = $tokens["access_token"];
}
catch(NAClientException $ex)
{
echo "An error happend while trying to retrieve your tokens
";
}
// First retrieve user device list
try
{
$deviceList = $client->api("devicelist");
if(isset($deviceList["devices"][0]))
{
$device_id = $deviceList["devices"][0]["_id"];
// Ok display dashboard_data
if(isset($deviceList["devices"][0]["dahsboard_data"]))
print_r($deviceList["devices"][0]["dashboard_data"]);
// Ok now retrieve current mean day temperature,humidity
$params = array("scale" =>"1day",
"type"=>"Temperature,Humidity",
"date_end"=>"last",
"device_id"=>$device_id);
$res = $client->api("getmeasure", $params);
if(isset($res[0]) && isset($res[0]["beg_time"]))
{
$time = $res[0]["beg_time"];
$t = $res[0]["value"][0][0];
$h = $res[0]["value"][0][1];
echo "Temperature is $t Celsius @".date('c', $time)."
";
echo "Humidity is $h % @".date('c', $time)."
";
}
}
}
catch(NAClientException $ex)
{
echo "User does not have any devices
";
}
?>
Du brauchst dafür noch die NAApiClient.php und die AppliCommonPublic.php. Diese glaub ich im Script Verzeichnis ablegen.
gruß garfi
Hallo zusammen,
Hat jemand die Skripte mit dem Regensensor erweitert? Wäre für ein paar PHP-Zeilen sehr dankbar.
Aussenfühler und Innenstation laufen bei mir super.
Gruss, Philipp
Hi,
gibt es hier im Forum.
Hab die bei mir am laufen.
Ich müsste auch suchen.
Hi,
habe das Script in #1 ergänzt um:
// Ok now retrieve Regen
$params = array("scale" =>"1week",
"type"=>"sum_rain",
"date_end"=>"last",
"device_id"=>$device_id,
"module_id"=>"05:00:00:01:9f:9c");
$res = $client->api("getmeasure", $params);
if(isset($res[0]) && isset($res[0]["beg_time"]))
{
$time = $res[0]["beg_time"];
$sum_rain = $res[0]["value"][0][0];
echo "Regen: ".$sum_rain;
SetValueInteger(28718 /*[NetAtmo\Regen diese Woche]*/, $sum_rain);
Die Regen Variable selbst anlegen und letzte Zeile entsprechend abändern. Regen ist immer ein Integer-Wert mit Milimeter.
Module_id: für Regensensor am Anfang „05:’“, die letzten drei Werte sind auf dem Sensor angegeben, bzw. Anzeige Serien-Nr. in Netatmo ohne „k“.
Alternativen:
scale = max, dann type= Rain;
bei allen anderen scale-Werten, z.B. 30min, 1hour, 3hours, 1day, 1month ist type immer „sum_rain“.
Sie auch https://dev.netatmo.com/doc/methods/getmeasure
Hope that helps!
H1
ansonsten kann man auch im Code vom Modul „klauen“
da ist alles drin: dapor2000/IPS_MODULES · GitHub
Hallo,
ich habe nun schon einige Stunden damit verbracht meinen Regensensor und zweites Innenmodul zu Integrieren.
Leider ohne erfolg.
Ich nutze bereits schon seit einem halben Jahr das Script aus Beitrag 1 erfolgreich für Basis und Außenmodul.
Jetzt habe ich ein zweites Innenmodul und nen Regensensor.
Gibt es von euch eine aktualisierte Anleitung? Folgendes hat sich glaub ich geändert:
Die Links zu den von Netatmo bereitgestellten PHP Dateien:
GitHub - Netatmo/Netatmo-API-PHP: Netatmo Weather Station API client implementation - PHP SDK
Diese sind mittlerweile aktualisiert worden. Daher passen diese nicht mehr zu der Anleitung aus dem ersten Beitrag.
Was ich schon rausgefunden habe muss man folgendermaßen das SSL Deaktivieren:
curl_setopt_array($ch, $opts);
$result = curl_exec($ch);
$errno = curl_errno($ch);
// CURLE_SSL_CACERT || CURLE_SSL_CACERT_BADFILE
if ($errno == 60 || $errno == 77)
{
echo "WARNING ! SSL_VERIFICATION has been disabled since ssl error retrieved. Please check your certificate http://curl.haxx.se/docs/sslcerts.html
";
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$result = curl_exec($ch);
}
if ($result === FALSE)
{
$e = new NACurlErrorType(curl_errno($ch), curl_error($ch));
curl_close($ch);
throw $e;
…
So bekomme ich zumindest das Script hin, dass das Außenmodul und die Basisstations Daten kommen.
Regen und zweites Innenmodul fehlen mir noch.
Wäre um eine neue aktualisierte Anleitung (Bitte so ausführlich wie im #1 )
Danke
Hallo
wenn mich nicht alles täuscht, so beziehen sich die bisherigen Kommentare auf eine ältere Version.
Die neue v2.1.x der API ist anscheinend nicht mehr kompatibel.
Hat sich schon mal jemand die Mühe genommen, die IPS-Einbindung auf diese Version anzupassen?
(oder ist das bereits besprochen worden und ich seh’s einfach nicht - in dem Fall Sorry…)
Dieter
Hallo,
habe auch das Problem, dass ich seit dem 27.10.2016 keine Daten mehr von Netatmo bekomme. Wäre prima wenn es wieder damit funktionieren würde. Vielleicht ist es nur eine „Kleinigkeit“?
Vielen Dank!
Grüße Maik
Hi,
kann das nicht bestätigen.
Bei mir laufen alle Module einwandfrei.
ich hab es in den anderen Thread verschoben - kann gelöscht werden.
Du bist irgendwie falsch.
Das Modul wird in diesem Thema behandelt:
Modul: Netatmo
Michael
PS: nimm das ß mal raus aus dem Namen… Dann wird es zu 99% funktionieren.