From 792c7a5d2471fd6e97c00da882734dc4c5acb7c0 Mon Sep 17 00:00:00 2001 From: Dave Cross Date: Fri, 5 Jun 2015 16:18:44 +0100 Subject: [PATCH] Get infor about hubs and devices. --- gettemp | 4 ++-- lib/Hive.pm | 22 +++++++++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/gettemp b/gettemp index 6644cdc..be52867 100755 --- a/gettemp +++ b/gettemp @@ -15,6 +15,6 @@ my $hive = Hive->new({ password => $pass, }); -foreach (qw[get_temperature get_target_temperature]) { +foreach (qw[get_temperature get_target_temperature hubs devices]) { say Dumper $hive->$_; -} \ No newline at end of file +} diff --git a/lib/Hive.pm b/lib/Hive.pm index a273660..7de982b 100644 --- a/lib/Hive.pm +++ b/lib/Hive.pm @@ -75,6 +75,18 @@ sub _build_json { return JSON->new->utf8; } +has hubs => ( + is => 'ro', + isa => 'ArrayRef[HashRef]', + traits => ['Array'], + handles => { + all_hubs => 'elements', + }, +); + +has devices => ( + is => 'ro', +); sub BUILD { my $self = shift; @@ -82,7 +94,15 @@ sub BUILD { $self->post('/login', { username => $self->username, password => $self->password, - }) + }); + + $self->{hubs} = $self->get_and_decode('/hubs'); + + foreach ($self->all_hubs) { + $_->{data} = $self->get_and_decode("/hubs/$_->{id}"); + } + + $self->{devices} = $self->get_and_decode('/widgets/climate'); } sub get_temperature {