2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-07 16:59:18 +00:00

37_echodevice.pm: add device A15996VY63BQ2D Echo Show 8 Gen2

add device A2WFDCBDEXOXR8 Bose Soundbar 700

git-svn-id: https://svn.fhem.de/fhem/trunk@24677 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
michael.winkler 2021-06-24 07:00:40 +00:00
parent dd40a5a67e
commit 0c5506c936

View File

@ -2,6 +2,10 @@
#
##############################################
#
# 2021.06.24 v0.2.12
# - FEATURE: Unterstützung A15996VY63BQ2D Echo Show 8 Gen2
# Unterstützung A2WFDCBDEXOXR8 Bose Soundbar 700
#
# 2021.05.18 v0.2.11
# - FEATURE: Unterstützung A1DL2DVDQVK3Q Fire Tab HD 10
#
@ -463,7 +467,7 @@ use Time::Piece;
use lib ('./FHEM/lib', './lib');
use MP3::Info;
my $ModulVersion = "0.2.11";
my $ModulVersion = "0.2.12";
my $AWSPythonVersion = "0.0.3";
my $NPMLoginTyp = "unbekannt";
my $QueueNumber = 0;
@ -559,25 +563,29 @@ sub echodevice_Define($$$) {
InternalTimer(gettimeofday() + 10 , "echodevice_GetSettings", $hash, 0);
}
else {
# Attribute
my $DeviceTyp = $a[2];
my $DeviceSerial = $a[3];
# Amazon ECHO Device
$hash->{STATE} = "INITIALIZED";
$hash->{model} = echodevice_getModel($a[2]);#$a[2];
$hash->{model} = echodevice_getModel($DeviceTyp);#$a[2];
readingsBeginUpdate($hash);
readingsBulkUpdate($hash, "model", $hash->{model}, 1);
readingsBulkUpdate($hash, "state", "INITIALIZED", 1);
readingsEndUpdate($hash,1);
$hash->{helper}{DEVICETYPE} = $a[2];
$hash->{helper}{".SERIAL"} = $a[3];
$hash->{helper}{DEVICETYPE} = $DeviceTyp;
$hash->{helper}{".SERIAL"} = $DeviceSerial;
$hash->{LOGINMODE} = "IODEV";
$modules{$hash->{TYPE}}{defptr}{$a[3]} = $hash;
$modules{$hash->{TYPE}}{defptr}{$DeviceSerial} = $hash;
my $account = $modules{$hash->{TYPE}}{defptr}{"account"};
Log3 $name, 0, "[echodevice] load ECHO Device $name";
Log3 $name, 0, "[echodevice_Define] load ECHO Devicename=$name Devicetype=" . $DeviceTyp . " Devicemodel=" . $hash->{model};
$hash->{IODev} = $account;
$attr{$name}{IODev} = $account->{NAME} if( !defined($attr{$name}{IODev}) && $account);
@ -2749,10 +2757,6 @@ sub echodevice_Parse($$$) {
# Device ID herausfiltern
my $sourceDeviceIds = "";
foreach my $cards (@{$card->{sourceDeviceIds}}) {
#next if (echodevice_getModel($cards->{deviceType}) eq "Echo Multiroom");
#next if (echodevice_getModel($cards->{deviceType}) eq "Sonos Display");
#next if (echodevice_getModel($cards->{deviceType}) eq "Echo Stereopaar");
#next if (echodevice_getModel($cards->{deviceType}) eq "unbekannt");
$sourceDeviceIds = $cards->{serialNumber};
}
@ -3557,6 +3561,7 @@ sub echodevice_Parse($$$) {
}
elsif($device->{deviceFamily} eq "ECHO") {
Log3 $name, 4, "[echodevice_GetSettings] SET 2 DEF=" . $hash->{DEF} . " TYPE=".$device->{deviceType} . 'SN Hash=' . $hash->{helper}{".SERIAL"} . ' SN Result=' . $device->{serialNumber} ;
$hash->{helper}{VERSION} = $device->{softwareVersion} if(!defined($hash->{helper}{VERSION}));
$hash->{helper}{".CUSTOMER"} = $device->{deviceOwnerCustomerId} if(!defined($hash->{helper}{".CUSTOMER"}));
$hash->{helper}{".SERIAL"} = $device->{serialNumber} if(!defined($hash->{helper}{".SERIAL"}));
@ -3594,6 +3599,7 @@ sub echodevice_Parse($$$) {
$devicehash->{helper}{".CUSTOMER"} = $device->{deviceOwnerCustomerId};
if ($device->{deviceFamily} eq "ECHO" || $device->{deviceFamily} eq "KNIGHT") {
Log3 $name, 4, "[echodevice_GetSettings] SET 4 DEF=" . $devicehash->{DEF} . " TYPE=".$device->{deviceType} . 'SN Hash=' . $devicehash->{helper}{".SERIAL"} . ' SN Result=' . $device->{serialNumber} ;
$hash->{helper}{".SERIAL"} = $device->{serialNumber};
$hash->{helper}{DEVICETYPE} = $device->{deviceType};
}
@ -3620,7 +3626,7 @@ sub echodevice_Parse($$$) {
next if( !defined($devicehash) );
$devicehash->{model} = echodevice_getModel($device->{deviceType});#$device->{deviceType};
Log3 $name, 4, "[echodevice_GetSettings] SET 6 DEF=" . $devicehash->{DEF} . " TYPE=".$device->{deviceType}. 'SN Hash=' . $devicehash->{helper}{".SERIAL"} . ' SN Result=' . $device->{serialNumber} . " Model=" .$devicehash->{model} ;
readingsBeginUpdate($devicehash);
readingsBulkUpdate($devicehash, "model", $devicehash->{model}, 1);
readingsBulkUpdate($devicehash, "presence", ($device->{online}?"present":"absent"), 1);
@ -3635,6 +3641,7 @@ sub echodevice_Parse($$$) {
$devicehash->{helper}{".CUSTOMER"} = $device->{deviceOwnerCustomerId};
if ($device->{deviceFamily} eq "ECHO" || $device->{deviceFamily} eq "KNIGHT") {
Log3 $name, 4, "[echodevice_GetSettings] SET 5 DEF=" . $devicehash->{DEF} . " TYPE=".$device->{deviceType}. 'SN Hash=' . $devicehash->{helper}{".SERIAL"} . ' SN Result=' . $device->{serialNumber} ;
$hash->{helper}{".SERIAL"} = $device->{serialNumber};
$hash->{helper}{DEVICETYPE} = $device->{deviceType};
}
@ -4025,6 +4032,8 @@ sub echodevice_GetSettings($) {
}
else {
Log3 $name, 4, "[echodevice_GetSettings] Devicename=$name DEF=" . $hash->{DEF} . " DEVICETYPE=" . $hash->{helper}{DEVICETYPE} . " Model=" . $hash->{model};
if ($hash->{model} eq "Reverb" || $hash->{model} eq "Sonos One" || $hash->{model} eq "Sonos Beam") {
if ($hash->{IODev}{STATE} eq "connected") {
readingsBeginUpdate($hash);
@ -4327,7 +4336,6 @@ sub echodevice_getModel($){
elsif($ModelNumber eq "A1RABVCI4QCIKC" || $ModelNumber eq "Echo Dot") {return "Echo Dot Gen3";}
elsif($ModelNumber eq "A3RMGO6LYLH7YN" || $ModelNumber eq "Echo Dot") {return "Echo Dot Gen4";}
elsif($ModelNumber eq "A2U21SRK4QGSE1" || $ModelNumber eq "Echo Dot") {return "Echo Dot Gen4";}
elsif($ModelNumber eq "A2H4LV5GIZ1JFT" || $ModelNumber eq "Echo Dot") {return "Echo Dot Gen4 with Clock";}
elsif($ModelNumber eq "A10A33FOX2NUBK" || $ModelNumber eq "Echo Spot") {return "Echo Spot";}
elsif($ModelNumber eq "A1NL4BVLQ4L3N3" || $ModelNumber eq "Echo Show") {return "Echo Show";}
@ -4335,6 +4343,7 @@ sub echodevice_getModel($){
elsif($ModelNumber eq "AIPK7MM90V7TB" || $ModelNumber eq "Echo Show") {return "Echo Show Gen3";}
elsif($ModelNumber eq "A4ZP7ZC4PI6TO" || $ModelNumber eq "Echo Show 5") {return "Echo Show 5";}
elsif($ModelNumber eq "A1Z88NGR2BK6A2" || $ModelNumber eq "Echo Show 8") {return "Echo Show 8";}
elsif($ModelNumber eq "A15996VY63BQ2D" || $ModelNumber eq "Echo Show 8") {return "Echo Show 8 Gen2";}
elsif($ModelNumber eq "A2M35JJZWCQOMZ" || $ModelNumber eq "Echo Plus") {return "Echo Plus";}
elsif($ModelNumber eq "A1JJ0KFC4ZPNJ3" || $ModelNumber eq "Echo Input") {return "Echo Input";}
elsif($ModelNumber eq "A18O6U1UQFJ0XK" || $ModelNumber eq "Echo Plus 2") {return "Echo Plus 2";}
@ -4350,7 +4359,7 @@ sub echodevice_getModel($){
elsif($ModelNumber eq "A7WXQPH584YP" || $ModelNumber eq "Echo Gen2") {return "Echo Gen2";}
elsif($ModelNumber eq "A3C9PE6TNYLTCH" || $ModelNumber eq "Echo Multiroom") {return "Echo Multiroom";}
elsif($ModelNumber eq "AP1F6KUH00XPV" || $ModelNumber eq "Echo Stereopaar") {return "Echo Stereopaar";}
elsif($ModelNumber eq "A1DL2DVDQVK3Q" || $ModelNumber eq "Fire Tab HD 10") {return "Fire Tab HD 10";}
elsif($ModelNumber eq "A1DL2DVDQVK3Q" || $ModelNumber eq "Fire Tab HD 10") {return "Fire Tab HD 10";}
elsif($ModelNumber eq "A3R9S4ZZECZ6YL" || $ModelNumber eq "Fire Tab HD 10") {return "Fire Tab HD 10";}
elsif($ModelNumber eq "A3L0T0VL9A921N" || $ModelNumber eq "Fire Tab HD 8") {return "Fire Tab HD 8";}
elsif($ModelNumber eq "A2M4YX06LWP8WI" || $ModelNumber eq "Fire Tab 7") {return "Fire Tab 7";}
@ -4388,6 +4397,7 @@ sub echodevice_getModel($){
elsif($ModelNumber eq "A17LGWINFBUTZZ" || $ModelNumber eq "Anker Roav Car Charger") {return "Anker Roav Car Charger";}
elsif($ModelNumber eq "A2XPGY5LRKB9BE" || $ModelNumber eq "FitBit watch") {return "FitBit watch";}
elsif($ModelNumber eq "A2Y04QPFCANLPQ" || $ModelNumber eq "Bose QC35 II") {return "Bose QC35 II";}
elsif($ModelNumber eq "A2WFDCBDEXOXR8" || $ModelNumber eq "Bose Soundbar") {return "Bose Soundbar";}
elsif($ModelNumber eq "A3BW5ZVFHRCQPO" || $ModelNumber eq "Alexa Car") {return "Alexa Car";}
elsif($ModelNumber eq "A303PJF6ISQ7IC" || $ModelNumber eq "Echo Auto") {return "Echo Auto";}
elsif($ModelNumber eq "A1ZB65LA390I4K" || $ModelNumber eq "Fire HD 10 Tablet") {return "Fire HD 10 Tablet";}
@ -4397,7 +4407,7 @@ sub echodevice_getModel($){
elsif($ModelNumber eq "A7S41FQ5TWBC9" || $ModelNumber eq "Sony WH-1000XM4") {return "Sony WH-1000XM4";}
elsif($ModelNumber eq "A2WN1FJ2HG09UN" || $ModelNumber eq "Ultimate Alexa") {return "Ultimate Alexa";}
elsif($ModelNumber eq "A23FPV4BT7FH68" || $ModelNumber eq "Yamaha YAS-209 Soundbar"){return "Yamaha YAS-209 Soundbar";}
elsif($ModelNumber eq "") {return "";}
elsif($ModelNumber eq "ACCOUNT") {return "ACCOUNT";}
else {return "unbekannt";}