[37_echodevice] Amazon Echo Modul (nicht Alexa)

Begonnen von michael.winkler, 12 Januar 2018, 18:20:12

Vorheriges Thema - Nächstes Thema

sinus61

Zitat von: Abercrombie1892 am 14 März 2018, 17:28:59
wozu soll das denn gut sein? das kann man doch über die alexa app wesentlich besser aufteilen. ha bridge is doch nur dazu da, dinge in die alexa app einzubringen.

Die ha-bridge weiß aber bei "Licht an" nicht in welchem Zimmer sie Licht einschalten soll. Da muss man für jedes Zimmer einen eigenen Befehl definieren.

sw

@sinus61:
Den Text beim "voice" Reading hätte ich gar nicht ausgewertet, die Aktion (On/Off/Dim) bekomme ich ja ohnehin per habridge in Fhem rein.
Ich hätte "voice" von allen meinen Echo Devices verglichen, wer einen frischen Zeistempel hat. Damit wäre der Raum bekannt und ich könnte das richtige Licht schalten (oder dimmen).

sinus61

Hatte ich auch erst gedacht, aber es war dann schneller ein notify zu bauen als eine Funktion die alle Devices vergleicht. Außerdem hatte ich in der ha-bridge ja nur noch den get settings Befehl und kein On/Off/Dim mehr an FHEM ausgeliefert.

Markus M.

Zitat von: JoWiemann am 13 März 2018, 19:52:18
2. Es wäre schön, wenn die Liste der Set in Abhängigkeit von connected verändert wird. Also bei nicht connected nur Login und login2FACode angezeigt wird.

3. Für das Passwort würde ich auf die Logik von anderen Modulen wie 72_FB_CALLMONITOR umstellen. Damit würde dann eine gewisse Einheitlichkeit innerhalb der Modulwelten existieren.

2. Ist wegen den Eigenheiten von FHEMWEB keine gute Idee.
Um die Setlist zu aktualisieren muss die Seite nämlich komplett neu geladen werden.
Das ist im Zweifelsfall umständlicher als irgendwas zu sehen was dann nur nichts tut.

3. Du wirst wahrscheinlich mehr FHEM Module finden die das Passwort so handhaben, als welche die andere Logiken verwenden :)
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

michael.winkler

Zitat von: sw am 14 März 2018, 17:40:20
Hallo Michaael,
ich habe den Weg jetzt ausprobiert.
Nur "proof of concept": Neues Device in habridge angelegt, das in Fhem dann "get settings" auslöst.
Funktioniert wie erwartet.

Aber: Wenn habbridge Fhem triggert dauert es (bei meinen Tests) noch 3..5 Sekunden, bis das "voice" Reading aktuell ist. Das ist zum Schalten von Licht leider nicht praktikabel.

Im Script von http://blog.loetzimmer.de/2017/10/amazon-alexa-hort-auf-die-shell-echo.html wird auch nicht auf den erkannten Text gewartet, sondern der Das geht rasend schnell!

Natürlich kann ich meine Konfiguration mit dem Script aufbauen
(Datenfluss: Echo -> habridge -> Script, welches "lastalexa" benutzt und die tatsächlich zu schaltende Lampe bestimmt -> Fhem).

Schöner wäre natürliche eine Lösung ohne Script nur mit Fhem
(Datenfluss: Echo -> habridge -> Fhem 37_echodevice).

Deshalb noch einmal meine Frage bzw. Bitte: könntest Du Dir mal das Script ansehen? Die last_alexa() Funktion ist nur 8 Zeilen lang. Es wäre genial, wenn Du eine solche Funktion in Dein Modul einbauen könntest!
Ich schaue es mir mal an. Bin aber gerade an dem Thema Text2Speech  8)

Abercrombie1892

Zitat von: sinus61 am 14 März 2018, 17:43:10
Die ha-bridge weiß aber bei "Licht an" nicht in welchem Zimmer sie Licht einschalten soll. Da muss man für jedes Zimmer einen eigenen Befehl definieren.

Hast du die devices die in der ja-Bridge angelegt werden, nicht in der Alexa App und diese dann entsprechend in den Räumen zugeordnet, wo dann immer der jeweilige dot ect steht? Da brauch ich ja auch nicht extra den rausnamen sagen.

Gruss

Thyraz

Zitat von: sinus61 am 14 März 2018, 17:43:10
Die ha-bridge weiß aber bei "Licht an" nicht in welchem Zimmer sie Licht einschalten soll. Da muss man für jedes Zimmer einen eigenen Befehl definieren.

Wenn man den entsprechenden Echo aus dem Zimmer mit den Lampen in eine Gruppe nimmt sollte das auch so gehen wie du willst:
https://www.echo-tests.de/amazon-alexa-licht-an/
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

JoWiemann

Schade, aber das mit 2FA läuft noch nicht so, wie ich es mir vorgestellt habe. Ich habe gestern gegen 17:00 eine neue Code SMS bekommen. Somit ist das Login etwas mehr als 24 Stunden aufrecht erhalten worden.

Beim einloggen mit 2FA kann ich zwei Checkboxen aktivieren.

1. Die Checkbox: "Angemeldet bleiben"


  <div class="a-row a-spacing-top-medium">
    <div class="a-section a-text-left">
      <label for="auth-remember-me" class="a-form-label">
        <div data-a-input-name="rememberMe" class="a-checkbox"><label><input type="checkbox" name="rememberMe" value="true" tabindex="4"><i class="a-icon a-icon-checkbox"></i><span class="a-label a-checkbox-label">
          Angemeldet bleiben.
          <span class="a-declarative" data-action="a-popover" data-a-popover="{&quot;activate&quot;:&quot;onclick&quot;,&quot;header&quot;:&quot;\&quot;Angemeldet bleiben\&quot; Kontrollkästchen&quot;,&quot;inlineContent&quot;:&quot;&lt;p&gt;Wenn Sie \&quot;Angemeldet bleiben\&quot; auswählen, werden Sie seltener aufgefordert, sich bei diesem Gerät anzumelden.&lt;\/p&gt;\r\n&lt;p&gt;Um Ihr Konto zu schützen, verwenden Sie diese Option nur auf Ihren persönlichen Geräten.&lt;\/p&gt;&quot;}">
            <a id="remember_me_learn_more_link" href="javascript:void(0)" class="a-popover-trigger a-declarative">
              Details
            <i class="a-icon a-icon-popover"></i></a>
          </span>
        </span></label></div>
      </label>
    </div>
  </div>


Somit könnte man ja rememberMe=true mit im Login übetragen.

Für das Zusenden des 2FA Code wird noch die Checkbox: "In diesem Browser nicht mehr nach Codes fragen."


        <div class="a-row a-spacing-medium">
          <div data-a-input-name="rememberDevice" class="a-checkbox"><label for="auth-mfa-remember-device"><input id="auth-mfa-remember-device" type="checkbox" name="rememberDevice" value=""><i class="a-icon a-icon-checkbox"></i><span class="a-label a-checkbox-label">
            In diesem Browser nicht mehr nach Codes fragen.
          </span></label></div>
        </div>


Mit ist allerdings schleierhaft welchen Wert man rememberDevice mitgeben muss, wenn value="" gesetzt ist.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

sw

Zitat von: Thyraz am 15 März 2018, 09:35:55
Wenn man den entsprechenden Echo aus dem Zimmer mit den Lampen in eine Gruppe nimmt sollte das auch so gehen wie du willst:
https://www.echo-tests.de/amazon-alexa-licht-an/

Danke für den Hinweis!
Um die Darstellung einfach zu halten, hatte im meinem ursprünglichen Post von "Licht" geschrieben. Dafür sind die Alexa-Gruppen tatsächlich eine super Lösung.

Leider mache ich in Wahrheit etwas Anderes:
Ich habe für jedes Zimmer Fhem Lightscenes definiert, z.B. "Hell", "Gemütlich" und einige andere.
Für jedes Zimme habe ich jede Szene als ein Device in der habridge angelegt, also z.B.
"Wohnzimmer Hell"
"Wohnzimmer Gemütlich"
"Esszimmer Hell"
"Esszimmer Gemütlich"
usw.

Wenn ich im Wohnzimmer bin, möchte ich z.B. nicht sagen müssen "schalte Wohnzimmer hell an", sondern eben nur "schalte hell an". Dito die anderen Szenen und die anderen Zimmer.

Durch die Alexa-Gruppen kann ich als einziges (raumsensitives) Schlüsselwort "Licht" verwenden, ich kann also eine Szene abbilden (habe ich gemacht, funktioniert); für die anderen Szenen (und noch einige weitere Spielereien ...) brauche ich aber das -lastalexa Kommando.

michael.winkler

Zitat von: sw am 15 März 2018, 16:14:11
Danke für den Hinweis!
Um die Darstellung einfach zu halten, hatte im meinem ursprünglichen Post von "Licht" geschrieben. Dafür sind die Alexa-Gruppen tatsächlich eine super Lösung.

Leider mache ich in Wahrheit etwas Anderes:
Ich habe für jedes Zimmer Fhem Lightscenes definiert, z.B. "Hell", "Gemütlich" und einige andere.
Für jedes Zimme habe ich jede Szene als ein Device in der habridge angelegt, also z.B.
"Wohnzimmer Hell"
"Wohnzimmer Gemütlich"
"Esszimmer Hell"
"Esszimmer Gemütlich"
usw.

Wenn ich im Wohnzimmer bin, möchte ich z.B. nicht sagen müssen "schalte Wohnzimmer hell an", sondern eben nur "schalte hell an". Dito die anderen Szenen und die anderen Zimmer.

Durch die Alexa-Gruppen kann ich als einziges (raumsensitives) Schlüsselwort "Licht" verwenden, ich kann also eine Szene abbilden (habe ich gemacht, funktioniert); für die anderen Szenen (und noch einige weitere Spielereien ...) brauche ich aber das -lastalexa Kommando.
Veränder mal im Code folgenden Zeilen, und schaue dann mal ob die Verzögerung von 3-5 Sekunden weg ist.

Diese Zeile einfach mal weiter nach oben schieben. "shutdown restart" nicht vergessen ;-)

echodevice_SendCommand($hash,"activities","");


Müsste dann ungefähr so aussehen.  Ab Zeilennummer 2514

if ($ConnectState eq "connected" && AttrVal($name,"disable",0) == 0) {

if($hash->{model} eq "ACCOUNT") {
echodevice_SendCommand($hash,"activities","");
echodevice_SendCommand($hash,"getnotifications","");
echodevice_SendCommand($hash,"alarmvolume","");
echodevice_SendCommand($hash,"bluetoothstate","");
echodevice_SendCommand($hash,"getdnd","");
echodevice_SendCommand($hash,"wakeword","");
echodevice_SendCommand($hash,"listitems_task","TASK");
echodevice_SendCommand($hash,"listitems_shopping","SHOPPING_ITEM");
echodevice_SendCommand($hash,"getdevicesettings","");
echodevice_SendCommand($hash,"getisonline","");
echodevice_SendCommand($hash,"account","");
#echodevice_SendCommand($hash,"homegroup","") if(defined($hash->{helper}{COMMSID}));
}else {



sw

Seltsam, wenn
echodevice_SendCommand($hash,"activities","");
nach vorne gezogen wird, dann bekomme ich mit
'get meinAccountEcho settings'
keine Updates des voice Readings.

(Ab und zu kommt ein Update, zeitlich unkorreliert, vmtl aus dem Polling)

michael.winkler

Zitat von: sw am 15 März 2018, 16:42:03
Seltsam, wenn
echodevice_SendCommand($hash,"activities","");
nach vorne gezogen wird, dann bekomme ich mit
'get meinAccountEcho settings'
keine Updates des voice Readings.

(Ab und zu kommt ein Update, zeitlich unkorreliert, vmtl aus dem Polling)
Die Readings werden nur aktualisiert, wenn sich auch etwas verändert hat. Wenn du x Mal das Gleiche zu alexa sagts ändert sich das Reading nicht.

sw

Schon klar  8) ich sage jedesmal etwas anderes, mein Dummy schaltet auch immer brav um.
Es kommen nur eben keine Updates mehr..