Change all, use hass websocket.

This commit is contained in:
Hans Karlinius
2026-03-20 22:19:43 +01:00
parent aa46e7d4bf
commit 0c907922e8
17 changed files with 772 additions and 413 deletions

50
Handlers.pm Normal file
View File

@@ -0,0 +1,50 @@
package Plugins::Assistant::Handlers;
use strict;
our %entities = (
a => sub {
my ($data) = @_;
my @results;
foreach my $entity (keys %{$data->{a}}) {
push @results, {
entity => $entity,
name => $data->{a}->{$entity}->{a}->{friendly_name} // $entity,
icon => $data->{a}->{$entity}->{a}->{icon},
state => $data->{a}->{$entity}->{s}
}
}
return \@results;
},
c => sub {
my ($data) = @_;
my @results;
foreach my $entity (keys %{$data->{c}}) {
push @results, {
entity => $entity,
state => $data->{c}->{$entity}->{'+'}->{s}
}
}
return \@results;
}
);
our %service = (
light => sub {
my ($state) = @_;
my $results = $state eq 'off' ? 'turn_on' : 'turn_off';
return $results;
},
switch => sub {
my ($state) = @_;
my $results = $state eq 'off' ? 'turn_on' : 'turn_off';
return $results;
},
cover => sub {
my ($state) = @_;
my $results = $state eq 'open' ? 'close_cover' : 'open_cover';
return $results;
}
);
1;