Zitat von gaert
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Netatmo | Edomi
Einklappen
X
-
Sonometer...im Fall von Netatmo...(zumindest lt. Herstellerangabe)Zitat von gaert Beitrag anzeigenMessen die Teile nur "Lärm" - oder auch "Ton"?!
Ein Cloud-Mikrofon im Wohnzimmer wäre mir nämlich irgendwie unheimlich...
Trotzdem kann einem manchmal etwas gruseln, was da in den Wohnzimmern so rumliegt/steht. Denken wir mal an unsere Smartphones (die auf Sprachbefehle lauschen), Fernseher (z.B. solche mit Sprachsteuerung und Internetanschluss), Amazon Echo, Google Home ...
Kommentar
-
Könnte vielleicht bitte jemand auf Basis von Fischs Vorschlag eine Netatmo Modulerweiterung für die max 3 Zusatzmodule machen. Ich bekomme es leider nicht wirklich zum laufen :-(Zitat von Fisch Beitrag anzeigenHallo,
Ich habe mir vom Basis Indoor/Outdoormodul-baustein von Timberland einen Zusatzmodulbaustein gebastelt.
habe den Modulindex jedoch direkt im Code hinterlegt. (habe nur 1 Zusatzmodul).PHP-Code:###[DEF]###
[name =Netatmo Zusatzmodul (v1.0) ]
[e#1 = Starten #init=1]
[e#2 = CLIENT_ID ]
[e#3 = CLIENT_SECRET ]
[e#4 = USERNAME ]
[e#5 = PASSWORD ]
[e#6 = debug #init=0]
[e#7 = Modulindex #init=4]
[a#1 =Name Modul ]
[a#2 =Temperature ]
[a#3 =min temp ]
[a#4 =min time ]
[a#5 =max temp ]
[a#6 =max time ]
[a#7 =temp trend ]
[a#8 =Humidity ]
[a#9 =CO2 ]
[a#10 =Battery ]
[a#11 =WiFi ]
[v#1 = 0 ]
[v#2 = 1.0 ] //Version
###[/DEF]###
###[HELP]###
NETATMO Zusatzmodul Baustein für zusaetzliches indoor modul
Diese Dateien mussen im Ordner /usr/local/edomi/main/include/php liegen.
-> Ordner /Netatmo/...
-> Utils.php
Der NETATMO Baustein wird automatisch gestartet, sobald EDOMI gestartet wird (E1 hat den Initialwert 1).
E1: Signal 1 = Startet Baustein (Dämon)
E2: CLIENT ID
E3: CLIENT SECRET
E4: Username
E5: Passwort
E6: Debug
E7: Modulindex
A1: Name Modul
A2: Temperatur
A3: min Temperatur
A4: min Temperarur Uhrzeit
A5: max Temperatur
A6: max Temperarur Uhrzeit
A7: Temperatur trend (stable / up / down)
A8: Humidity
A9: CO2
A10: Battery (full, high, medium, low, very low)
A11: WiFi
V1: Dämon
V2: Version
Changelog:
==========
v1.0: Initial version
###[/HELP]###
###[LBS]###
<?
function LB_LBSID($id) {
if ($E=getLogicEingangDataAll($id)) {
if ($E[1]['value']!=0 && $E[1]['refresh']==1) {
if (getLogicElementVar($id,1)!=1) {
setLogicElementVar($id,1,1);
callLogicFunctionExec(LBSID,$id);
}
}
}
}
?>
###[/LBS]###
###[EXEC]###
<?
require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
define('__ROOT__', dirname(dirname(__FILE__)));
require_once(dirname(__FILE__)."/../../../../main/include/php/Netatmo/src/Netatmo/autoload.php");
require_once (dirname(__FILE__)."/../../../../main/include/php/Utils.php");
set_time_limit(0);
sql_connect();
if ($E=getLogicEingangDataAll($id)) {
if($E[6]['value']==1){debug($id, "Netatmo - LBS : -> Netatmo EXEC started.");}
$client_id = $E[2]['value'];
$client_secret = $E[3]['value'];
$test_username = $E[4]['value'];
$test_password = $E[5]['value'];
}
while(getSysInfo(1)>=1) {
$scope = Netatmo\Common\NAScopes::SCOPE_READ_STATION;
$config = array("client_id" => $client_id,
"client_secret" => $client_secret,
"username" => $test_username,
"password" => $test_password);
$client = new Netatmo\Clients\NAWSApiClient($config);
$data = $client->getData(NULL, TRUE);
foreach($data['devices'] as $device)
{
foreach($device['modules'] as $module){
if ( isset( $module['type'] ) && $module['type'] == 'NAModule4' ) {
setLogicLinkAusgang($id,1,@$module['module_name']);
setLogicLinkAusgang($id,2,@$module['dashboard_data']["Temperature"]);
setLogicLinkAusgang($id,3,@$module['dashboard_data']["min_temp"]);
$date_min_out = @$device['dashboard_data']['date_min_temp'];
$date_min_out = date('H:i', $date_min_out);
setLogicLinkAusgang($id,4,@$date_min_out);
setLogicLinkAusgang($id,5,@$module['dashboard_data']["max_temp"]);
$date_max_out = @$device['dashboard_data']['date_max_temp'];
$date_max_out = date('H:i', $date_max_out);
setLogicLinkAusgang($id,6,@$date_max_out);
setLogicLinkAusgang($id,7,@$module['dashboard_data']["temp_trend"]);
setLogicLinkAusgang($id,8,@$module['dashboard_data']["Humidity"]);
setLogicLinkAusgang($id,9,@$module['dashboard_data']["CO2"]);
if ( $module['battery_vp'] ){
$b=$module['battery_vp'];
switch ($b)
{
case ($b >= 5500):
$c= 'full';
break;
case ($b>= 5000):
$c= 'high';
break;
case ($b>= 4500):
$c= 'medium';
break;
case ($b>= 4000):
$c= 'low';
break;
case ($b< 4000):
$c= 'very low';
break;
default:
$c= 'Error';
}
}
setLogicLinkAusgang($id,10,@$c);
setLogicLinkAusgang($id,11,@$module['rf_status']);
}
}
}
usleep(1000000*50);
}
sql_disconnect();
function debug($id,$msg)
{
$E=getLogicEingangDataAll($id);
$version = getLogicElementVar($id,2);
writeToTraceLog(0,true,"LBSLBSID($id): ".$msg.' [v'.$version.']');
}
?>
###[/EXEC]###
Mit einem eigenen Eingang für den Modulindex habe ich schon herumexperimentiert.
Habe es jedoch noch nicht hinbekommen. Bin auch kein Programmierer. Für einen, der sich auskennt, sollte das ein leichtes sein.
Grüsse
Franz
Kommentar
-
Ohne das jetzt testen zu können, aber versuch das damit. Auf E7 gibst dann das Modul an. NAModule4, NAModule5 oder NAModule6
PHP-Code:###[DEF]###
[name =Netatmo Zusatzmodul (v1.0) ]
[e#1 = Starten #init=1]
[e#2 = CLIENT_ID ]
[e#3 = CLIENT_SECRET ]
[e#4 = USERNAME ]
[e#5 = PASSWORD ]
[e#6 = debug #init=0]
[e#7 = Modulindex #init=NAModule4]
[a#1 =Name Modul ]
[a#2 =Temperature ]
[a#3 =min temp ]
[a#4 =min time ]
[a#5 =max temp ]
[a#6 =max time ]
[a#7 =temp trend ]
[a#8 =Humidity ]
[a#9 =CO2 ]
[a#10 =Battery ]
[a#11 =WiFi ]
[v#1 = 0 ]
[v#2 = 1.0 ] //Version
###[/DEF]###
###[HELP]###
NETATMO Zusatzmodul Baustein für zusaetzliches indoor modul
Diese Dateien mussen im Ordner /usr/local/edomi/main/include/php liegen.
-> Ordner /Netatmo/...
-> Utils.php
Der NETATMO Baustein wird automatisch gestartet, sobald EDOMI gestartet wird (E1 hat den Initialwert 1).
E1: Signal 1 = Startet Baustein (Dämon)
E2: CLIENT ID
E3: CLIENT SECRET
E4: Username
E5: Passwort
E6: Debug
E7: Modulindex
A1: Name Modul
A2: Temperatur
A3: min Temperatur
A4: min Temperarur Uhrzeit
A5: max Temperatur
A6: max Temperarur Uhrzeit
A7: Temperatur trend (stable / up / down)
A8: Humidity
A9: CO2
A10: Battery (full, high, medium, low, very low)
A11: WiFi
V1: Dämon
V2: Version
Changelog:
==========
v1.0: Initial version
###[/HELP]###
###[LBS]###
<?
function LB_LBSID($id) {
if ($E=getLogicEingangDataAll($id)) {
if ($E[1]['value']!=0 && $E[1]['refresh']==1) {
if (getLogicElementVar($id,1)!=1) {
setLogicElementVar($id,1,1);
callLogicFunctionExec(LBSID,$id);
}
}
}
}
?>
###[/LBS]###
###[EXEC]###
<?
require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
define('__ROOT__', dirname(dirname(__FILE__)));
require_once(dirname(__FILE__)."/../../../../main/include/php/Netatmo/src/Netatmo/autoload.php");
require_once (dirname(__FILE__)."/../../../../main/include/php/Utils.php");
set_time_limit(0);
sql_connect();
if ($E=getLogicEingangDataAll($id)) {
if($E[6]['value']==1){debug($id, "Netatmo - LBS : -> Netatmo EXEC started.");}
$client_id = $E[2]['value'];
$client_secret = $E[3]['value'];
$test_username = $E[4]['value'];
$test_password = $E[5]['value'];
$modulindex = $E[7]['value'];
}
while(getSysInfo(1)>=1) {
$scope = Netatmo\Common\NAScopes::SCOPE_READ_STATION;
$config = array("client_id" => $client_id,
"client_secret" => $client_secret,
"username" => $test_username,
"password" => $test_password);
$client = new Netatmo\Clients\NAWSApiClient($config);
$data = $client->getData(NULL, TRUE);
foreach($data['devices'] as $device)
{
foreach($device['modules'] as $module){
if ( isset( $module['type'] ) && $module['type'] == $modulindex ) {
setLogicLinkAusgang($id,1,@$module['module_name']);
setLogicLinkAusgang($id,2,@$module['dashboard_data']["Temperature"]);
setLogicLinkAusgang($id,3,@$module['dashboard_data']["min_temp"]);
$date_min_out = @$device['dashboard_data']['date_min_temp'];
$date_min_out = date('H:i', $date_min_out);
setLogicLinkAusgang($id,4,@$date_min_out);
setLogicLinkAusgang($id,5,@$module['dashboard_data']["max_temp"]);
$date_max_out = @$device['dashboard_data']['date_max_temp'];
$date_max_out = date('H:i', $date_max_out);
setLogicLinkAusgang($id,6,@$date_max_out);
setLogicLinkAusgang($id,7,@$module['dashboard_data']["temp_trend"]);
setLogicLinkAusgang($id,8,@$module['dashboard_data']["Humidity"]);
setLogicLinkAusgang($id,9,@$module['dashboard_data']["CO2"]);
if ( $module['battery_vp'] ){
$b=$module['battery_vp'];
switch ($b)
{
case ($b >= 5500):
$c= 'full';
break;
case ($b>= 5000):
$c= 'high';
break;
case ($b>= 4500):
$c= 'medium';
break;
case ($b>= 4000):
$c= 'low';
break;
case ($b< 4000):
$c= 'very low';
break;
default:
$c= 'Error';
}
}
setLogicLinkAusgang($id,10,@$c);
setLogicLinkAusgang($id,11,@$module['rf_status']);
}
}
}
usleep(1000000*50);
}
sql_disconnect();
function debug($id,$msg)
{
$E=getLogicEingangDataAll($id);
$version = getLogicElementVar($id,2);
writeToTraceLog(0,true,"LBSLBSID($id): ".$msg.' [v'.$version.']');
}
?>
###[/EXEC]###
Kommentar
-
coliflower testet meinen Netatmo LBS gerade ausgiebig. Danach werde ich den LBS zur Verfügung stellen. Dauert noch 2-3 Tage... bin momentan zeitlich sehr eingeschränkt.Zitat von BabylonYa Beitrag anzeigen
Könnte vielleicht bitte jemand auf Basis von Fischs Vorschlag eine Netatmo Modulerweiterung für die max 3 Zusatzmodule machen. Ich bekomme es leider nicht wirklich zum laufen :-(
- Likes 1
Kommentar
-
Könnt möglicherweise Interessant werden:
https://www.netatmo.com/product/security/presence
Hat jemand schon mit der Welcome Erfahrungen gemacht?
Kommentar
-
Sieht recht chic aus (mal was anderes) - mich würde rein optisch allerdings stören, dass die "Lampe" irgendwie schief hängen wird... Daher bevorzuge ich Dome-Kameras.EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)
Kommentar
-
Moin,
ich bekomme vom dem Baustein 19000291 täglich von 0.00 - ca. 0.05 Uhr täglich ein paar Meldungen im Fehler-Log:
Vermutlich liegen für den Zeitraum einfach keine gültigen Werte vor?!?Code:[TABLE="border: 0, cellpadding: 0, cellspacing: 0"] [TR] [TD]2016-09-27 00:00:55[/TD] [TD]328142[/TD] [TD]?[/TD] [TD]5534[/TD] [TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000291.php | Fehlercode: 8 | Zeile: 171 | Undefined index: sum_rain_24[/TD] [TD]ERROR[/TD] [/TR] [TR] [TD]2016-09-27 00:02:05[/TD] [TD]692859[/TD] [TD]?[/TD] [TD]5534[/TD] [TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000291.php | Fehlercode: 8 | Zeile: 171 | Undefined index: sum_rain_24[/TD] [TD]ERROR[/TD] [/TR] [TR] [TD]2016-09-27 00:03:16[/TD] [TD]014918[/TD] [TD]?[/TD] [TD]5534[/TD] [TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000291.php | Fehlercode: 8 | Zeile: 171 | Undefined index: sum_rain_24[/TD] [TD]ERROR[/TD] [/TR] [TR] [TD]2016-09-27 00:04:26[/TD] [TD]350852[/TD] [TD]?[/TD] [TD]5534[/TD] [TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000291.php | Fehlercode: 8 | Zeile: 171 | Undefined index: sum_rain_24[/TD] [TD]ERROR[/TD] [/TR] [TR] [TD]2016-09-27 00:05:36[/TD] [TD]671960[/TD] [TD]?[/TD] [TD]5534[/TD] [TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000291.php | Fehlercode: 8 | Zeile: 171 | Undefined index: sum_rain_24[/TD] [TD]ERROR[/TD] [/TR] [/TABLE]
Aber wie kann ich die Einträge im Fehler-Log vermeiden?
Viele Grüße,
Mucki
Kommentar
-
Das gleiche Problem habe ich auch mit dem 19000290 und 19000291. Da fehlen wohl Werte von der Netatmo Webseite.Zitat von MuckiLegden Beitrag anzeigenMoin,
ich bekomme vom dem Baustein 19000291 täglich von 0.00 - ca. 0.05 Uhr täglich ein paar Meldungen im Fehler-Log:
Vermutlich liegen für den Zeitraum einfach keine gültigen Werte vor?!?
Aber wie kann ich die Einträge im Fehler-Log vermeiden?
Viele Grüße,
Mucki
Vermeiden lassen sich die Fehler scheinbar nur wenn die LBS vom Code geändert würden. Leider fehlen mir die PHP Kenntnisse um genaueres sagen zu können. Vielleicht schaut sich Timberland (Ersteller) oder die anderen PHP Spezialisten mal an. Hatte die letzten 2 Tage mal so 800 Fehlermeldungen im Log.
Kommentar
-
Abhilfe könnte ein Prüfen des Array-Index auf Existenz bringen.Zitat von Robby Beitrag anzeigen
Das gleiche Problem habe ich auch mit dem 19000290 und 19000291. Da fehlen wohl Werte von der Netatmo Webseite.
Vermeiden lassen sich die Fehler scheinbar nur wenn die LBS vom Code geändert würden. Leider fehlen mir die PHP Kenntnisse um genaueres sagen zu können. Vielleicht schaut sich Timberland (Ersteller) oder die anderen PHP Spezialisten mal an. Hatte die letzten 2 Tage mal so 800 Fehlermeldungen im Log.
D.h. jedes
PHP-Code:setLogicLinkAusgang($id,15,@$module['dashboard_data']['XXXXXX']);
sollte ersetzt werden durch:
PHP-Code:if (array_key_exists('xxxxxx', $module['dashboard_data']) ($setLogicLinkAusgang($id,###,@$module['dashboard_data']['XXXXXX']);
else $setLogicLinkAusgang($id,###,'n/a');
Wobei XXXXXX der enstprechende Index ist und ### die Nummer des Ausgangs. Also z.B. "sum_rain_24" und "16".
Im "else" Teil des if Statements kann man natürlich auch etwas anderes ausgeben als "n/a". Fall das nichtvorhandensein des Index "sum_rain_24" bedeutet, dass dieser Wert 0 ist, dann ersetzt man das 'n/a' durch 0. Das müsste dann in der API Doku von Netatmo stehen.
Das "else" Statement kann man natürlich auch ganz weglassen, dann wird der entsprechende Ausgang nicht neu gesetzt und der letzte Wert bleibt erhalten.
Vielleicht hilft das ja ....
VG
AndréZuletzt geändert von jonofe; 28.09.2016, 13:41.
Kommentar
-
Bis jemand den Baustein überarbeitet hat hilft vielleicht auch dieser hierZitat von Robby Beitrag anzeigen
Das gleiche Problem habe ich auch mit dem 19000290 und 19000291. Da fehlen wohl Werte von der Netatmo Webseite.
Vermeiden lassen sich die Fehler scheinbar nur wenn die LBS vom Code geändert würden. Leider fehlen mir die PHP Kenntnisse um genaueres sagen zu können. Vielleicht schaut sich Timberland (Ersteller) oder die anderen PHP Spezialisten mal an. Hatte die letzten 2 Tage mal so 800 Fehlermeldungen im Log.
http://service.knx-user-forum.de/?co...ad&id=19000530
weiter.
Kommentar
-
....sind aber noch nicht im Downloadbereich? Da sehe ich noch vom 19000290 die Version 1.2.Zitat von timberland Beitrag anzeigen
Passt Du auch den 19000291 an? Bräuchte ich für Wind und Regen.
Vielen Dank im Vorraus
Kommentar
-
Müsste ich heute abend mal wenn ich wieder zu Hause bin mal schauen. Habe aber auch öfters die Fehlerlogs gelöscht. Es waren aber Fehlermeldungen wie Wettertendenz darunter. Die haben scheinbar an ihrer Webseite gearbeitet. Also kann es jede Variabel treffen.Zitat von timberland Beitrag anzeigenWelcher Ausgang macht beim 19000290 die Probleme? Dachte das ist nur der 19000291 mit dem sum_rain_24 Ausgang.
Kommentar


Kommentar