sub
nestprotect_Set($$@)
{
my ($hash, $name, $cmd) = @_;
my $list = "update";
my $json = JSON->new->allow_nonref;
if( $cmd eq 'update' ) {
my $output = `AUFRUF VON CURL`;
my $result = $json->decode($output);
print Dumper($result);
Log3 $name, 1, "nestprotect update done";
return undef;
}
return "Unknown argument $cmd, choose one of $list";
}
2017.05.16 11:56:27 1: nestprotect update done
}
}
}
}
}
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLsphSlBV5SNg'
'name' => 'Driveway',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLsphSlBV5SNg' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLkCJj2If5Cgg'
'name' => 'Downstairs',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLkCJj2If5Cgg' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLRQGIV3EzkYg'
'name' => 'Family Room',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLRQGIV3EzkYg' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLHdP5uCq0BFQ'
'name' => 'Office',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLHdP5uCq0BFQ' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLCFiB8N_58aA'
'name' => 'Basement',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLCFiB8N_58aA' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvL0QAyCdyzugQ'
'name' => 'Entryway',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvL0QAyCdyzugQ' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKytZg_XieD5g'
'name' => 'Outside',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKytZg_XieD5g' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKxXrVNNxxsqw'
'name' => 'Front Yard',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKxXrVNNxxsqw' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvK__bLSo2sogg'
'name' => 'Upstairs',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvK__bLSo2sogg' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKEKZWtwvMEbA'
'name' => 'Den',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKEKZWtwvMEbA' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJxx9YRGw6Ccg'
'name' => 'Hallway',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJxx9YRGw6Ccg' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJifA15JewUnw'
'name' => 'Master Bedroom',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJifA15JewUnw' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJesGvetXrhpw'
'name' => 'Bedroom',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJesGvetXrhpw' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJSQ_DmLkBZ0g'
'name' => 'Dining Room',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJSQ_DmLkBZ0g' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJDa8Oc0DXjVA'
'name' => 'Backyard',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJDa8Oc0DXjVA' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIVxTsdicxhmw'
'name' => 'Living Room',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIVxTsdicxhmw' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPtCUKg21e8A'
'name' => 'Kids Room',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPtCUKg21e8A' => {
},
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPJuRui1UoPQ'
'name' => 'Kitchen',
'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPJuRui1UoPQ' => {
'wheres' => {
'time_zone' => 'Europe/Berlin',
'structure_id' => 'cAGFUR8BWMnKqvGZJbvkZ1yfb7LDqRqiKoYh_oAUtUBO6A3lfyA00g',
],
'EcGWQj0ttd81RSC0ZyyUvji38A4Bj6n8'
'smoke_co_alarms' => [
'smoke_alarm_state' => 'ok',
'name' => 'Zweigstrasse',
'country_code' => 'DE',
'co_alarm_state' => 'ok',
'away' => 'home',
'cAGFUR8BWMnKqvGZJbvkZ1yfb7LDqRqiKoYh_oAUtUBO6A3lfyA00g' => {
'structures' => {
},
'client_version' => 2
'access_token' => 'c.hYwZ8Yddwe3iRXiLBuBcWigWMThMZlPwfwGZbkkzje70mUa6MJJQWer7ItdxqHOzxet8kcE5UbLEBSqBZHbvV2Yggkk7Q07w3g9OhQlb8sfNFZJkDPQuLvjYI2SN23uKmbCaF5kjK8ARZxre',
'metadata' => {
},
}
}
'where_name' => 'Living Room'
'where_id' => 'x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIVxTsdicxhmw',
'ui_color_state' => 'green',
'structure_id' => 'cAGFUR8BWMnKqvGZJbvkZ1yfb7LDqRqiKoYh_oAUtUBO6A3lfyA00g',
'software_version' => '3.1.2rc1',
'smoke_alarm_state' => 'ok',
'name_long' => 'Living Room Nest Protect',
'name' => 'Living Room',
'locale' => 'de-DE',
'last_manual_test_time' => '2017-05-12T05:47:43.000Z',
'last_connection' => '2017-05-15T11:44:07.326Z',
'is_online' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
'is_manual_test_active' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
'device_id' => 'EcGWQj0ttd81RSC0ZyyUvji38A4Bj6n8',
'co_alarm_state' => 'ok',
'battery_health' => 'ok',
'EcGWQj0ttd81RSC0ZyyUvji38A4Bj6n8' => {
'smoke_co_alarms' => {
'devices' => {
{
sub
nestprotect_Set($$@)
{
my ($hash, $name, $cmd) = @_;
my $list = "update";
my $json = JSON->new->allow_nonref;
if( $cmd eq 'update' ) {
my $output = `AUFRUF VON CURL`;
my $result = $json->decode($output);
return $result;
Log3 $name, 1, "nestprotect update done";
return undef;
}
return "Unknown argument $cmd, choose one of $list";
}
HASH(0xa9438f8)
ZitatWie bekomme ich denn die Daten "sauber" aus dem JSON?Hast Du doch schon. Die Keys/Values aus dem JSON String hast Du nun in einem Hash (associative array). Wenn Du die Struktur kennst, dann kannst Du Dir die Werte rauspicken, die Du benötigst. zB:
my value = $result->{key1}{key2}{key3};
Internals:
NAME NestWozi
NR 811
STATE active
TYPE nestprotect
Helper:
Dblog:
State:
Mydblog:
TIME 1494936012.002
VALUE update
Readings:
2017-05-16 14:55:20 Batteriestatus ok
2017-05-16 14:55:20 CO-Status ok
2017-05-16 14:55:20 Letzter Kontakt zur Cloud 2017-05-16T10:44:08.025Z
2017-05-16 14:55:20 Name Living Room
2017-05-16 14:55:20 Nest ist online 1
2017-05-16 14:55:20 Rauch-Status ok
2017-05-16 14:55:20 Softwareversion 3.1.2rc1
2017-05-16 14:55:20 Sprache de-DE
Attributes:
my $output = `curl -s -L -H "Content-Type: application/json" -H "Authorization: Bearer xxxxxx" -X GET "https://developer-api.nest.com/"`;
my $output = `curl -s -L -H "Content-Type: application/json" -H "Authorization: Bearer '$token'" -X GET "https://developer-api.nest.com/"`;
my $output = 'curl -s -L -H "Content-Type: application/json" -H "Authorization: Bearer ' . $token . '" -X GET "https://developer-api.nest.com/"';
my $output = qx("curl -s -L -H \"Content-Type: application/json\" -H \"Authorization: Bearer $token\" -X GET \"https://developer-api.nest.com/\"");
qx(curl -s -L -H \"Content-Type: application/json\" -H \"Authorization: Bearer $token\" -X GET \"https://developer-api.nest.com/\")
my $command='curl -s -L -H \"Content-Type: application/json\" -H \"Authorization: Bearer '. $token.'\" -X GET \"https://developer-api.nest.com/\';
my $output=qx($command);
Internals:
DEF 60 xxxx
NAME NestWozi
NR 811
STATE Status-Rauch: ok - Status-CO: ok - Batterie: ok
TOKEN xxxx
TYPE nestprotect
Readings:
2017-05-17 08:42:56 battery ok
2017-05-17 08:42:56 co_status ok
2017-05-17 08:42:56 last_seen 2017-05-16T10:44:08.025Z
2017-05-17 08:42:56 name Living Room
2017-05-17 08:42:56 online 1
2017-05-17 08:42:56 smoke_status ok
2017-05-17 08:42:56 softwareversion 3.1.2rc1
2017-05-17 08:42:56 sprache de-DE
2017-05-17 08:42:56 state okay
Attributes:
group Rauchmelder
room Zentrale
stateFormat Status-Rauch: smoke_status - Status-CO: co_status - Batterie: battery
Zitat von: Mitch am 17 Mai 2017, 08:45:16Du kannst so etwas auch per telnet oder in der FHEMWEB Eingabezeile testen, in dem Du den Perlausdruck in geschweifte Klammern setzt.
Leider bekomme ich das mit der Token-Übergabe immer noch nicht hin.
my $command = 'curl -s -L -H "Content-Type: application/json" -H "Authorization: Bearer '. $token.'" -X GET "https://developer-api.nest.com/"'
Zitat von: Mitch am 17 Mai 2017, 10:51:59
Ist halt immer ein Zeitproblem....fhem...Familie...Arbeit....
syntax error at ./FHEM/39_testprotect.pm line 144, near "Log3 " Global symbol "$tokenrequest" requires explicit package name (did you forget to declare "my $tokenrequest"?) at ./FHEM/39_testprotect.pm line 146. syntax error at ./FHEM/39_testprotect.pm line 194, near "Log3 " Global symbol "$result" requires explicit package name (did you forget to declare "my $result"?) at ./FHEM/39_testprotect.pm line 197. Global symbol "$deviceid" requires explicit package name (did you forget to declare "my $deviceid"?) at ./FHEM/39_testprotect.pm line 197. Global symbol "$result" requires explicit package name (did you forget to declare "my $result"?) at ./FHEM/39_testprotect.pm line 198. Global symbol "$result" requires explicit package name (did you forget to declare "my $result"?) at ./FHEM/39_testprotect.pm line 199. Global symbol "$result" requires explicit package name (did you forget to declare "my $result"?) at ./FHEM/39_testprotect.pm line 200. Global symbol "$result" requires explicit package name (did you forget to declare "my $result"?) at ./FHEM/39_testprotect.pm line 201. Global symbol "$result" requires explicit package name (did you forget to declare "my $result"?) at ./FHEM/39_testprotect.pm line 202. Global symbol "$result" requires explicit package name (did you forget to declare "my $result"?) at ./FHEM/39_testprotect.pm line 203. Global symbol "$name" requires explicit package name (did you forget to declare "my $name"?) at ./FHEM/39_testprotect.pm line 205. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 216. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 218. Global symbol "$nestname" requires explicit package name (did you forget to declare "my $nestname"?) at ./FHEM/39_testprotect.pm line 218. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 219. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 220. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 221. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 222. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 223. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 224. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 225. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 227. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 230. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 232. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 235. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 236. Global symbol "$hash" requires explicit package name (did you forget to declare "my $hash"?) at ./FHEM/39_testprotect.pm line 236. syntax error at ./FHEM/39_testprotect.pm line 240, near "}" ./FHEM/39_testprotect.pm has too many errors.
sub
nestprotect_Get($$@)
{
my ($hash, $name, $cmd) = @_;
my $list = "token:noArg update:noArg";
if( $cmd eq 'update' ) {
nestprotect_Update();
} elsif ( $cmd eq 'token') {
nestprotect_Token();
}
return "Unknown argument $cmd, choose one of $list";
}
sub nestprotect_Get($$@)
my ($hash, $name, $cmd) = @_;
$r = nestprotect_Get("hash xyz", "myParameter1", "subvalue to get", "default value", "timeout");
my ($hash, $name, $cmd) = @_;
my ($hash, $name, $cmd, @args) = @_;
my ($hash, $name, @a) = @_;
my $cmd = $a[0];
get $name $cmd
my ($hash, $name, $cmd) = @_;
ZitatEntweder brauchst Du doch zusätzliche Argumente, und machst so:hat leider auch nicht funktioniert.Code Auswählenmy ($hash, $name, $cmd, @args) = @_;
sub
nestprotect_Set($$@)
{
my ($hash, $name, $cmd) = @_;
my $token = $hash->{TOKEN};
my $list = "update";
if( $cmd eq 'update' ) {.....}
printf $cmd;
my $result = decode_json $output;
Log3 $name, 5, "$output";
my $nestname = $result->{devices}->{smoke_co_alarms}->{$deviceid}->{name};
my $nestlocale = $result->{devices}->{smoke_co_alarms}->{$deviceid}->{locale};
my $nestsoftware = $result->{devices}->{smoke_co_alarms}->{$deviceid}->{software_version};
my $nestisonline = $result->{devices}->{smoke_co_alarms}->{$deviceid}->{is_online};
my $nestconection = $result->{devices}->{smoke_co_alarms}->{$deviceid}->{last_connection};
my $nestbattery = $result->{devices}->{smoke_co_alarms}->{$deviceid}->{battery_health};
my $nestco = $result->{devices}->{smoke_co_alarms}->{$deviceid}->{co_alarm_state};
my $nestsmoke = $result->{devices}->{smoke_co_alarms}->{$deviceid}->{smoke_alarm_state};
Log3 $name, 3, "nestprotect update done";
# my $reading1 = "Hash";
my $reading2 = "name";
my $reading3 = "language";
my $reading4 = "softwareversion";
my $reading5 = "online";
my $reading6 = "last_seen";
my $reading7 = "battery";
my $reading8 = "co_status";
my $reading9 = "smoke_status";
readingsBeginUpdate($hash);
#readingsBulkUpdate($hash, $reading1, $result);
readingsBulkUpdate($hash, $reading2, $nestname);
readingsBulkUpdate($hash, $reading3, $nestlocale);
readingsBulkUpdate($hash, $reading4, $nestsoftware);
readingsBulkUpdate($hash, $reading5, $nestisonline);
readingsBulkUpdate($hash, $reading6, $nestconection);
readingsBulkUpdate($hash, $reading7, $nestbattery);
readingsBulkUpdate($hash, $reading8, $nestco);
readingsBulkUpdate($hash, $reading9, $nestsmoke);
readingsEndUpdate($hash, 1);
my $result = decode_json ($output);
Log3 $name, 5, "$output";
my $deviceid = $result->{devices}->{smoke_co_alarms};
readingsSingleUpdate($hash, "device_id", $deviceid, 0);
Log3 $name, 5, "device id fuer $name lautet $deviceid";
{"devices":{"smoke_co_alarms":{"xxxxxxxxxxxx":{"name":"Living Room","locale":"de-DE","structure_id":"cAGFUR8BWMnKqvGZJbvkZ1yfb7LDqRqiKoYh_oAUtUBO6A3lfyA00g","software_version":"3.1.2rc1","where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIVxTsdicxhmw","device_id":"xxxxxxxxxxxx","where_name":"Living Room","name_long":"Living Room Nest Protect","is_online":true,"last_connection":"2017-05-10T16:44:08.419Z","battery_health":"ok","co_alarm_state":"ok","smoke_alarm_state":"ok","ui_color_state":"green","is_manual_test_active":false}}},"structures":{"cAGFUR8BWMnKqvGZJbvkZ1yfb7LDqRqiKoYh_oAUtUBO6A3lfyA00g":{"smoke_co_alarms":["EcGWQj0ttd81RSC0ZyyUvji38A4Bj6n8"],"name":"Zweigstrasse","country_code":"DE","time_zone":"Europe/Berlin","structure_id":"cAGFUR8BWMnKqvGZJbvkZ1yfb7LDqRqiKoYh_oAUtUBO6A3lfyA00g","co_alarm_state":"ok","smoke_alarm_state":"ok","wheres":{"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJDa8Oc0DXjVA":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJDa8Oc0DXjVA","name":"Backyard"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLCFiB8N_58aA":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLCFiB8N_58aA","name":"Basement"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJesGvetXrhpw":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJesGvetXrhpw","name":"Bedroom"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKEKZWtwvMEbA":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKEKZWtwvMEbA","name":"Den"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJSQ_DmLkBZ0g":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJSQ_DmLkBZ0g","name":"Dining Room"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLkCJj2If5Cgg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLkCJj2If5Cgg","name":"Downstairs"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLsphSlBV5SNg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLsphSlBV5SNg","name":"Driveway"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvL0QAyCdyzugQ":
my $deviceid = $result->{devices}{smoke_co_alarms};
my $deviceid = (keys($result->{devices}{smoke_co_alarms}))[0];
Experimental keys on scalar is now forbidden at ./FHEM/39.......
my $deviceid = (keys(%{$result->{devices}{smoke_co_alarms}}))[0];
my $deviceid = (keys(%{$result->{devices}{smoke_co_alarms}}))[0];
my @devices = keys(%{$result->{devices}{smoke_co_alarms}});
{"devices":{"smoke_co_alarms":{"i3Q9WrnLuarTSAAuNRix3YQ5_ztseNbF":{"name":"Hallway (Mitte)","locale":"de-DE","structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w","software_version":"3.1.2rc1","where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtLTHUNZ8-Ujg","device_id":"i3Q9WrnLuarTSAAuNRix3YQ5_ztseNbF","where_name":"Hallway","name_long":"Hallway Nest Protect (Mitte)","is_online":true,"last_connection":"2017-05-21T00:41:41.281Z","battery_health":"ok","co_alarm_state":"ok","smoke_alarm_state":"ok","ui_color_state":"green","is_manual_test_active":false,"last_manual_test_time":"2017-04-11T15:27:26.000Z"},"i3Q9WrnLuaqFnbtyiwe0loQ5_ztseNbF":{"name":"Kids Room (Jklyxcv)","locale":"en-US","structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w","software_version":"3.1.2rc1","where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv6EqumGp7RpA","device_id":"i3Q9WrnLuaqFnbtyiwe0loQ5_ztseNbF","where_name":"Kids Room","name_long":"Kids Room Nest Protect (Jklyxcv)","is_online":true,"last_connection":"2017-05-21T00:06:44.857Z","battery_health":"ok","co_alarm_state":"ok","smoke_alarm_state":"ok","ui_color_state":"green","is_manual_test_active":false,"last_manual_test_time":"2017-04-11T15:27:26.000Z"},"i3Q9WrnLuaqNs6aehSKhmIQ5_ztseNbF":{"locale":"de-DE","structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w","software_version":"3.1.2rc1","where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtHHETzLKydlA","device_id":"i3Q9WrnLuaqNs6aehSKhmIQ5_ztseNbF","where_name":"Downstairs","name":"Downstairs","name_long":"Downstairs Nest Protect","is_online":true,"last_connection":"2017-05-21T00:22:03.780Z","battery_health":"ok","co_alarm_state":"ok","smoke_alarm_state":"ok","ui_color_state":"green","is_manual_test_active":false,"last_manual_test_time":"2017-04-11T15:27:07.000Z"},"i3Q9WrnLuapZVcf3bKa-f4Q5_ztseNbF":{"name":"Kids Room (Asdfgh)","locale":"de-DE","structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w","software_version":"3.1.2rc1","where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv6EqumGp7RpA","device_id":"i3Q9WrnLuapZVcf3bKa-f4Q5_ztseNbF","where_name":"Kids Room","name_long":"Kids Room Nest Protect (Asdfgh)","is_online":true,"last_connection":"2017-05-21T09:30:18.631Z","battery_health":"ok","co_alarm_state":"ok","smoke_alarm_state":"ok","ui_color_state":"green","is_manual_test_active":false,"last_manual_test_time":"2017-04-11T15:27:26.000Z"},"i3Q9WrnLuarEMNRfkC1YJ4Q5_ztseNbF":{"name":"Bedroom","locale":"de-DE","structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w","software_version":"3.1.2rc1","where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv72ZVhXryWmQ","device_id":"i3Q9WrnLuarEMNRfkC1YJ4Q5_ztseNbF","where_name":"Bedroom","name_long":"Bedroom Nest Protect","is_online":true,"last_connection":"2017-05-21T00:01:28.380Z","battery_health":"ok","co_alarm_state":"ok","smoke_alarm_state":"ok","ui_color_state":"green","is_manual_test_active":false,"last_manual_test_time":"2017-04-11T15:27:26.000Z"},"i3Q9WrnLuaqtIkUElLM01YQ5_ztseNbF":{"name":"Hallway (Oben)","locale":"de-DE","structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w","software_version":"3.1.2rc1","where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtLTHUNZ8-Ujg","device_id":"i3Q9WrnLuaqtIkUElLM01YQ5_ztseNbF","where_name":"Hallway","name_long":"Hallway Nest Protect (Oben)","is_online":true,"last_connection":"2017-05-21T03:52:09.450Z","battery_health":"ok","co_alarm_state":"ok","smoke_alarm_state":"ok","ui_color_state":"green","is_manual_test_active":false,"last_manual_test_time":"2017-04-11T15:27:26.000Z"}}},"structures":{"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w":{"smoke_co_alarms":["i3Q9WrnLuaqtIkUElLM01YQ5_ztseNbF","i3Q9WrnLuarEMNRfkC1YJ4Q5_ztseNbF","i3Q9WrnLuapZVcf3bKa-f4Q5_ztseNbF","i3Q9WrnLuaqFnbtyiwe0loQ5_ztseNbF","i3Q9WrnLuaqNs6aehSKhmIQ5_ztseNbF","i3Q9WrnLuarTSAAuNRix3YQ5_ztseNbF"],"name":"Home","country_code":"DE","time_zone":"Europe/Berl100 6931 100 6931 0 0 4391 0 0:00:01 0:00:01 --:--:-- 10177o_alarm_state":"ok","smoke_alarm_state
* Closing connection 1
* SSLv3, TLS alert, Client hello (1):
} [data not shown]
":"ok","wheres":{"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuS9zLoOoYuyQ":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuS9zLoOoYuyQ","name":"Backyard"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuSBG1reETGIw":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuSBG1reETGIw","name":"Basement"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv72ZVhXryWmQ":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv72ZVhXryWmQ","name":"Bedroom"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RvSArzsAdr2fQ":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RvSArzsAdr2fQ","name":"Den"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RubmyXmQ-hIfw":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RubmyXmQ-hIfw","name":"Dining Room"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtHHETzLKydlA":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtHHETzLKydlA","name":"Downstairs"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RsqYF6wACg-ZQ":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RsqYF6wACg-ZQ","name":"Driveway"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuDAuF5Ph-EwA":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuDAuF5Ph-EwA","name":"Entryway"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtaOgB4ytHeww":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtaOgB4ytHeww","name":"Family Room"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv1G_-Ns8EYKQ":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv1G_-Ns8EYKQ","name":"Front Yard"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtLTHUNZ8-Ujg":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtLTHUNZ8-Ujg","name":"Hallway"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv6EqumGp7RpA":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv6EqumGp7RpA","name":"Kids Room"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RsQYdWL7WAbwQ":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RsQYdWL7WAbwQ","name":"Kitchen"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv1C-9IIanigw":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv1C-9IIanigw","name":"Living Room"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtXPdkhtA535A":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtXPdkhtA535A","name":"Master Bedroom"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv5TzBxN-XOBA":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv5TzBxN-XOBA","name":"Office"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rt7RoSrZ3eSWA":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rt7RoSrZ3eSWA","name":"Outside"},"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Ru-yoHhS-lZCQ":{"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Ru-yoHhS-lZCQ","name":"Upstairs"}}}},"metadata":{"access_token":"c.XXXXXXXXXXXXXXXXXXXXXXXXXXXX","client_version":1}}
{
"devices":{
"smoke_co_alarms":{
"i3Q9WrnLuarTSAAuNRix3YQ5_ztseNbF":{
"name":"Hallway (Mitte)",
"locale":"de-DE",
"structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w",
"software_version":"3.1.2rc1",
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtLTHUNZ8-Ujg",
"device_id":"i3Q9WrnLuarTSAAuNRix3YQ5_ztseNbF",
"where_name":"Hallway",
"name_long":"Hallway Nest Protect (Mitte)",
"is_online":true,
"last_connection":"2017-05-21T00:41:41.281Z",
"battery_health":"ok",
"co_alarm_state":"ok",
"smoke_alarm_state":"ok",
"ui_color_state":"green",
"is_manual_test_active":false,
"last_manual_test_time":"2017-04-11T15:27:26.000Z"
},
"i3Q9WrnLuaqFnbtyiwe0loQ5_ztseNbF":{
"name":"Kids Room (Jklyxcv)",
"locale":"en-US",
"structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w",
"software_version":"3.1.2rc1",
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv6EqumGp7RpA",
"device_id":"i3Q9WrnLuaqFnbtyiwe0loQ5_ztseNbF",
"where_name":"Kids Room",
"name_long":"Kids Room Nest Protect (Jklyxcv)",
"is_online":true,
"last_connection":"2017-05-21T00:06:44.857Z",
"battery_health":"ok",
"co_alarm_state":"ok",
"smoke_alarm_state":"ok",
"ui_color_state":"green",
"is_manual_test_active":false,
"last_manual_test_time":"2017-04-11T15:27:26.000Z"
},
"i3Q9WrnLuaqNs6aehSKhmIQ5_ztseNbF":{
"locale":"de-DE",
"structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w",
"software_version":"3.1.2rc1",
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtHHETzLKydlA",
"device_id":"i3Q9WrnLuaqNs6aehSKhmIQ5_ztseNbF",
"where_name":"Downstairs",
"name":"Downstairs",
"name_long":"Downstairs Nest Protect",
"is_online":true,
"last_connection":"2017-05-21T00:22:03.780Z",
"battery_health":"ok",
"co_alarm_state":"ok",
"smoke_alarm_state":"ok",
"ui_color_state":"green",
"is_manual_test_active":false,
"last_manual_test_time":"2017-04-11T15:27:07.000Z"
},
"i3Q9WrnLuapZVcf3bKa-f4Q5_ztseNbF":{
"name":"Kids Room (Asdfgh)",
"locale":"de-DE",
"structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w",
"software_version":"3.1.2rc1",
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv6EqumGp7RpA",
"device_id":"i3Q9WrnLuapZVcf3bKa-f4Q5_ztseNbF",
"where_name":"Kids Room",
"name_long":"Kids Room Nest Protect (Asdfgh)",
"is_online":true,
"last_connection":"2017-05-21T09:30:18.631Z",
"battery_health":"ok",
"co_alarm_state":"ok",
"smoke_alarm_state":"ok",
"ui_color_state":"green",
"is_manual_test_active":false,
"last_manual_test_time":"2017-04-11T15:27:26.000Z"
},
"i3Q9WrnLuarEMNRfkC1YJ4Q5_ztseNbF":{
"name":"Bedroom",
"locale":"de-DE",
"structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w",
"software_version":"3.1.2rc1",
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv72ZVhXryWmQ",
"device_id":"i3Q9WrnLuarEMNRfkC1YJ4Q5_ztseNbF",
"where_name":"Bedroom",
"name_long":"Bedroom Nest Protect",
"is_online":true,
"last_connection":"2017-05-21T00:01:28.380Z",
"battery_health":"ok",
"co_alarm_state":"ok",
"smoke_alarm_state":"ok",
"ui_color_state":"green",
"is_manual_test_active":false,
"last_manual_test_time":"2017-04-11T15:27:26.000Z"
},
"i3Q9WrnLuaqtIkUElLM01YQ5_ztseNbF":{
"name":"Hallway (Oben)",
"locale":"de-DE",
"structure_id":"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w",
"software_version":"3.1.2rc1",
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtLTHUNZ8-Ujg",
"device_id":"i3Q9WrnLuaqtIkUElLM01YQ5_ztseNbF",
"where_name":"Hallway",
"name_long":"Hallway Nest Protect (Oben)",
"is_online":true,
"last_connection":"2017-05-21T03:52:09.450Z",
"battery_health":"ok",
"co_alarm_state":"ok",
"smoke_alarm_state":"ok",
"ui_color_state":"green",
"is_manual_test_active":false,
"last_manual_test_time":"2017-04-11T15:27:26.000Z"
}
}
},
"structures":{
"26aEsMcxJ20UCFdBhEEh-SBjN3FgmKveyvDd-oAxsew5zdgR_NO81w":{
"smoke_co_alarms":[
"i3Q9WrnLuaqtIkUElLM01YQ5_ztseNbF",
"i3Q9WrnLuarEMNRfkC1YJ4Q5_ztseNbF",
"i3Q9WrnLuapZVcf3bKa-f4Q5_ztseNbF",
"i3Q9WrnLuaqFnbtyiwe0loQ5_ztseNbF",
"i3Q9WrnLuaqNs6aehSKhmIQ5_ztseNbF",
"i3Q9WrnLuarTSAAuNRix3YQ5_ztseNbF"
],
"name":"Home",
"country_code":"DE",
"time_zone": "Europe/Berl100 6931 100 6931 0 0 4391 0 0:00:01 0:00:01 --:--:-- 10177o_alarm_state":"ok",
"smoke_alarm_state
* Closing connection 1
* SSLv3, TLS alert, Client hello (1):
} [data not shown]
":"ok",
"wheres":{
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuS9zLoOoYuyQ":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuS9zLoOoYuyQ",
"name":"Backyard"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuSBG1reETGIw":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuSBG1reETGIw",
"name":"Basement"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv72ZVhXryWmQ":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv72ZVhXryWmQ",
"name":"Bedroom"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RvSArzsAdr2fQ":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RvSArzsAdr2fQ",
"name":"Den"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RubmyXmQ-hIfw":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RubmyXmQ-hIfw",
"name":"Dining Room"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtHHETzLKydlA":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtHHETzLKydlA",
"name":"Downstairs"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RsqYF6wACg-ZQ":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RsqYF6wACg-ZQ",
"name":"Driveway"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuDAuF5Ph-EwA":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RuDAuF5Ph-EwA",
"name":"Entryway"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtaOgB4ytHeww":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtaOgB4ytHeww",
"name":"Family Room"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv1G_-Ns8EYKQ":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv1G_-Ns8EYKQ",
"name":"Front Yard"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtLTHUNZ8-Ujg":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtLTHUNZ8-Ujg",
"name":"Hallway"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv6EqumGp7RpA":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv6EqumGp7RpA",
"name":"Kids Room"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RsQYdWL7WAbwQ":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RsQYdWL7WAbwQ",
"name":"Kitchen"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv1C-9IIanigw":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv1C-9IIanigw",
"name":"Living Room"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtXPdkhtA535A":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6RtXPdkhtA535A",
"name":"Master Bedroom"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv5TzBxN-XOBA":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rv5TzBxN-XOBA",
"name":"Office"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rt7RoSrZ3eSWA":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Rt7RoSrZ3eSWA",
"name":"Outside"
},
"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Ru-yoHhS-lZCQ":{
"where_id":"nZa_SyyqAH-15lpeWpXjlTJ1tiYaPaqKt7z_O1Sv6Ru-yoHhS-lZCQ",
"name":"Upstairs"
}
}
}
},
"metadata":{
"access_token":"c.XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"client_version":1
}
}
{"devices":{"smoke_co_alarms":{"EcGWQj0ttd81RSC0ZyyUvji38A4Bj6n8":{"name":"Living Room","locale":"de-DE","structure_id":"cAGFUR8BWMnKqvGZJbvkZ1yfb7LDqRqiKoYh_oAUtUBO6A3lfyA00g","software_version":"3.1.2rc1","where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIVxTsdicxhmw","device_id":"EcGWQj0ttd81RSC0ZyyUvji38A4Bj6n8","where_name":"Living Room","name_long":"Living Room Nest Protect","is_online":true,"last_connection":"2017-05-21T05:44:09.501Z","battery_health":"ok","co_alarm_state":"ok","smoke_alarm_state":"ok","ui_color_state":"green","is_manual_test_active":false,"last_manual_test_time":"2017-05-12T05:47:43.000Z"}}},"structures":{"cAGFUR8BWMnKqvGZJbvkZ1yfb7LDqRqiKoYh_oAUtUBO6A3lfyA00g":{"smoke_co_alarms":["EcGWQj0ttd81RSC0ZyyUvji38A4Bj6n8"],"name":"Zweigstrasse","country_code":"DE","time_zone":"Europe/Berlin","away":"home","structure_id":"cAGFUR8BWMnKqvGZJbvkZ1yfb7LDqRqiKoYh_oAUtUBO6A3lfyA00g","co_alarm_state":"ok","smoke_alarm_state":"ok","wheres":{"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJDa8Oc0DXjVA":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJDa8Oc0DXjVA","name":"Backyard"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLCFiB8N_58aA":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLCFiB8N_58aA","name":"Basement"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJesGvetXrhpw":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJesGvetXrhpw","name":"Bedroom"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKEKZWtwvMEbA":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKEKZWtwvMEbA","name":"Den"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJSQ_DmLkBZ0g":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJSQ_DmLkBZ0g","name":"Dining Room"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLkCJj2If5Cgg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLkCJj2If5Cgg","name":"Downstairs"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLsphSlBV5SNg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLsphSlBV5SNg","name":"Driveway"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvL0QAyCdyzugQ":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvL0QAyCdyzugQ","name":"Entryway"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLRQGIV3EzkYg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLRQGIV3EzkYg","name":"Family Room"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKxXrVNNxxsqw":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKxXrVNNxxsqw","name":"Front Yard"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJxx9YRGw6Ccg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJxx9YRGw6Ccg","name":"Hallway"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPtCUKg21e8A":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPtCUKg21e8A","name":"Kids Room"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPJuRui1UoPQ":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPJuRui1UoPQ","name":"Kitchen"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIVxTsdicxhmw":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIVxTsdicxhmw","name":"Living Room"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJifA15JewUnw":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJifA15JewUnw","name":"Master Bedroom"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLHdP5uCq0BFQ":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLHdP5uCq0BFQ","name":"Office"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKytZg_XieD5g":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKytZg_XieD5g","name":"Outside"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvK__bLSo2sogg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvK__bLSo2sogg","name":"Upstairs"}}},"KP91IdqQxAREhoub37mk8Fyfb7LDqRqiKoYh_oAUtUBO6A3lfyA00g":{"name":"Structure 1","country_code":"US","time_zone":"America/Los_Angeles","away":"home","structure_id":"KP91IdqQxAREhoub37mk8Fyfb7LDqRqiKoYh_oAUtUBO6A3lfyA00g","wheres":{"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJDa8Oc0DXjVA":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJDa8Oc0DXjVA","name":"Backyard"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLCFiB8N_58aA":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLCFiB8N_58aA","name":"Basement"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJesGvetXrhpw":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJesGvetXrhpw","name":"Bedroom"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKEKZWtwvMEbA":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKEKZWtwvMEbA","name":"Den"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJSQ_DmLkBZ0g":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJSQ_DmLkBZ0g","name":"Dining Room"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLkCJj2If5Cgg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLkCJj2If5Cgg","name":"Downstairs"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLsphSlBV5SNg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLsphSlBV5SNg","name":"Driveway"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvL0QAyCdyzugQ":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvL0QAyCdyzugQ","name":"Entryway"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLRQGIV3EzkYg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLRQGIV3EzkYg","name":"Family Room"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKxXrVNNxxsqw":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKxXrVNNxxsqw","name":"Front Yard"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJxx9YRGw6Ccg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJxx9YRGw6Ccg","name":"Hallway"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPtCUKg21e8A":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPtCUKg21e8A","name":"Kids Room"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPJuRui1UoPQ":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIPJuRui1UoPQ","name":"Kitchen"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIVxTsdicxhmw":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvIVxTsdicxhmw","name":"Living Room"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJifA15JewUnw":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvJifA15JewUnw","name":"Master Bedroom"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLHdP5uCq0BFQ":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvLHdP5uCq0BFQ","name":"Office"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKytZg_XieD5g":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvKytZg_XieD5g","name":"Outside"},"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvK__bLSo2sogg":{"where_id":"x-temEyTZjFyNsR7u-mlevey9slX8u0rcFnLz8vLFvK__bLSo2sogg","name":"Upstairs"}}}},"metadata":{"access_token":"c.hYwZ8Yddwe3iRXiLBuBcWigWMThMZlPwfwGZbkkzje70mUa6MJJQWer7ItdxqHOzxet8kcE5UbLEBSqBZHbvV2Yggkk7Q07w3g9OhQlb8sfNFZJkDPQuLvjYI2SN23uKmbCaF5kjK8ARZxre","client_version":2}}
time_zone": "Europe/Berl100 6931 100 6931 0 0 4391 0 0:00:01 0:00:01 --:--:-- 10177o_alarm_state":"ok",
"smoke_alarm_state
* Closing connection 1
* SSLv3, TLS alert, Client hello (1):
} [data not shown]
":"ok",
"wheres":{
Zitat von: CoolTux am 23 Mai 2017, 22:47:11Es gibt ein inoffizielles Mentorenprogramm. Frage einen Entwickler der Dir zu sagt, ob er Dich unterstützen kann/möchte.Das war mir auch neu. Wer weiß denn davon?
ZitatWarum nicht per Token anmelden und dann push sie einfach zurück.Und push... wohin? Irgendwo muss eine Logik bei dir liegen, die dieses push fängt. Das macht dein Browser Prozess in einer Weboberfläsche. Aber für eine API würdest Du ein "Kanal" brauchen: etwas wie bei alexa-fhem / nodejs, das auf einem Port lauscht (standardmässig port 3000 für Alexa) und entspr. reagiert. In anderen Worten: eine API beantwortet Requests. Für ein Rückkanal brauchst Du eine API auf deiner Seite..... und das ist rudimentär, was Du mit einem Poll Prozess machst.
Zitat von: Mitch am 24 Mai 2017, 09:47:17
Ich habe mal wieder eine Frage ;D
Habe nochmal mit der API gespielt und würde gerne das Modul neu machen und zwar so, dass es nicht mehr pollt.
Dazu müßte ich einen Systembefehl (wieder cURL) ausführen und im Hintergrund laufen lassen.
Solange der Befehl läuft, meldet er regelmäßig zurück (event: keep-alive data: null). Auf diese Meldungen muß dann entsprechend reagiert werden.
Geht soetwas überhaupt?
PS: die API von Nest finde ich echt komisch. Warum nicht per Token anmelden und dann push sie einfach zurück. ???
2017.07.19 19:19:35 1: define Rauchmelder.Poll at +*interval set Rauchmelder update: Wrong timespec interval: either HH:MM:SS or {perlcode} 2017.07.19 19:19:35 3: define Rauchmelder.Poll at +*interval set Rauchmelder update : Wrong timespec interval: either HH:MM:SS or {perlcode} 2017.07.19 19:19:35 3: nestprotect (Rauchmelder) defined 2017.07.19 19:19:35 3: Rauchmelder.Poll mit interval interval defined (could be changed) |
{"locale":"de-DE","structure_id":"xxxx","software_version":"3.1.4rc3","where_id":"xxxx","device_id":"xxxx","where_name":"Upstairs","name":"Upstairs","name_long":"Upstairs Nest Protect","is_online":true,"last_connection":"2019-04-01T01:03:50.806Z","battery_health":"ok","co_alarm_state":"ok","smoke_alarm_state":"ok","ui_color_state":"green","is_manual_test_active":false,"last_manual_test_time":"2017-06-20T07:51:31.000Z"}
defmod Nest_Wohnzimmer HTTPMOD https://firebase-apiserver13-tah01-iad01.dapi.production.nest.com:9553/devices/smoke_co_alarms/UNIQUE-ID?auth=TOKEN 60
attr Nest_Wohnzimmer enableControlSet 1
attr Nest_Wohnzimmer enableCookies 1
attr Nest_Wohnzimmer enforceGoodReadingNames 1
attr Nest_Wohnzimmer extractAllJSON 1
attr Nest_Wohnzimmer group Rauchmelder
attr Nest_Wohnzimmer handleRedirects 1
attr Nest_Wohnzimmer icon WWN-Smoke-Badge_Blue_RGB_32x32_1x
attr Nest_Wohnzimmer room Zentrale
attr Nest_Wohnzimmer stateFormat Rauchalarm: smoke_alarm_state - CO Alarm: co_alarm_state - Online: is_online - Batterie: battery_health