alexa-fhem: amazon alexa smart home skill für fhem

Begonnen von justme1968, 05 November 2016, 23:21:32

Vorheriges Thema - Nächstes Thema

cyvr1

#1800
@thunder1902

Wenn du dir eine Gruppe "Rolläden im Wohnzimmer" einrichtest, sollte das gehen. Bei mir funktioniert die Gruppe aber nicht sauber, wenn ich "Rolläden" oder "Rolladen" im Gruppennamen habe, ich vermute wegen der gewählten Gerätenamen. Mit dem Namen "Rollos im Wohnzimmer" funktioniert es dann. Zumindest wenn man einen Prozentwert angibt, also z.B. 100% für hoch und 0% für runter.
Hoch, Rauf und Runter versteht der Smart Home Skill nicht. Das geht dann nur mit dem Custom Skill.

Auch wenn es etwas umständlicher ist, weil die Aufforderung an Alexa etwas länger ist, benutze ich nur noch den Custom Skill. Da hat man einfach mehr möglichkeiten und kann meiner Meinung nach "natürlicher" bzw. intuitiver sprechen.

----------
Stephan Krätzschmar

Prof. Dr. Peter Henning

Viele der Fragen hier drehen sich im Kreis. Zu empfehlen ist daher folgende Vorgehensweise:
1. Nicht den Custom Skill ausprobieren, wenn der SmarHome Skill noch nicht läuft.
2. Bei Einrichtung des Custom Skill erst eines der einfachen Beispiele ausprobieren.
3. Erst wenn das läuft; Fragen nach neuen Speziallösungen stellen.

LG

pah

dl6kbg

#1802
Nachdem ich nun den Bock mit dem ContactSensorState geschossen hatte (ich hatte ein CurrentSensorState daraus gemacht), ist mir einiges mehr klar geworden. Heute war unsere Haltestelle dran, deren Daten ich bisher immer über httpmod und tablet-ui dargestellt hatte. Das Tablet kann bald weg.


if( device.mappings['A863F19D-379E-45FF-8F27-000000000001'] ) {

            state += 'Die nächste Abfahrt ist in  '+ device.fhem.cached(device.mappings['A863F19D-379E-45FF-8F27-000000000001'].informId) +' Minuten';
          }
          if( device.mappings['A863F19D-379E-45FF-8F27-000000000002'] ) {

            state += 'Linie '+ device.fhem.cached(device.mappings['A863F19D-379E-45FF-8F27-000000000002'].informId) +'';
          }
          if( device.mappings['A863F19D-379E-45FF-8F27-000000000003'] ) {

            state += 'in Richtung '+ device.fhem.cached(device.mappings['A863F19D-379E-45FF-8F27-000000000003'].informId) +'';
          }




[2017-02-06 20:43:18] [FHEM] homebridgeMapping: A863F19D-379E-45FF-8F27-000000000001=Ankunft,name=Ankunft,format=UINT8
A863F19D-379E-45FF-8F27-000000000002=Linie,name=Linie,format=UINT8
A863F19D-379E-45FF-8F27-000000000003=Richtung,name=Richtung
[2017-02-06 20:43:18] [FHEM] DVB.Haltestelle is speaker
[2017-02-06 20:43:18] [FHEM] DVB.Haltestelle has
[2017-02-06 20:43:18] [FHEM]   Custom Ankunft [Ankunft]
[2017-02-06 20:43:18] [FHEM]   Custom Linie [Linie]
[2017-02-06 20:43:18] [FHEM]   Custom Richtung [Richtung]
  2017-02-06 20:43:18 caching: DVB.Haltestelle-Ankunft: 0
[2017-02-06 20:43:18] [FHEM]     caching: Custom Ankunft: 0 (as number; from '0')
  2017-02-06 20:43:18 caching: DVB.Haltestelle-Linie: 7
[2017-02-06 20:43:18] [FHEM]     caching: Custom Linie: 7 (as number; from '7')
  2017-02-06 20:43:18 caching: DVB.Haltestelle-Richtung: Pennrich
[2017-02-06 20:43:18] [FHEM]     caching: Custom Richtung: Pennrich (as string; from 'Pennrich')


Das klappt schon einmal:


Die nächste Abfahrt ist in  0 Minuten Linie 7 in Richtung Pennrich"


Die schaffe ich nicht mehr :-)

Pennrich wird hier in Englisch gesprochen. (caching: Custom Richtung: Pennrich (as string; from 'Pennrich'))

Lässt sich eine andere Aussprache erzwingen? Alle anderen Orte werden richtig ausgesprochen.

Schönen Abend, Grüße, Oliver

justme1968

mach dir nicht zu viel mühe die ganzen abfragen und antworte einzubauen.

in der nächsten version kannst du das direkt über die fhem intents und eine perl routine konfigurieren ohne das auf alexa-fhem seite etwas geändert werden muss.

zur aussprache: statt plain text kann man alexa auch ssml als antworten schicken (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/speech-synthesis-markup-language-ssml-reference). das habe ich aber noch nicht verwendet und man müsste es im skill einbauen.

schau mal ob du nicht vielleicht eine andere schreibweise findest die besser klingt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

dl6kbg

Zitat von: justme1968 am 06 Februar 2017, 21:21:59
mach dir nicht zu viel mühe die ganzen abfragen und antworte einzubauen.

in der nächsten version kannst du das direkt über die fhem intents und eine perl routine konfigurieren ohne das auf alexa-fhem seite etwas geändert werden muss.

Ja, sagtest Du. Bin schon gespannt das zu testen. Irgend eine Knobelaufgabe brauche ich abends. Ansonsten funktioniert ja alles :-)

Zitat
zur aussprache: statt plain text kann man alexa auch ssml als antworten schicken (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/speech-synthesis-markup-language-ssml-reference). das habe ich aber noch nicht verwendet und man müsste es im skill einbauen.

Danke für den Tip.

Zitat
schau mal ob du nicht vielleicht eine andere schreibweise findest die besser klingt.

Was meinst Du genau? Der Ort heisst Pennrich, der wird ja über httpmod gezogen.

Grüße, Oliver

Fixel2012

#1805
Guten Abend,
Ich habe vorhin fast alle Lampen in 2 meiner Räume umbenannt, so das sie mehrmals vorhanden sind.
Anschließend habe ich sie, um sie zu unterscheiden in verschiedene gruppen gepackt.

Alexa sagt auf meine Frage diese Geräte im Raum schlafzimmer einzuschalten nur immer: "sorry ich konnte kein Gerät oder Gruppe "Stehlampe Schlafzimmer" in felix's Konto finden.

Wenn ich keinen Raum dazu sage, sagt sie das es zwei Geräte gibt und sie nicht weiß welches sie schalten soll.


Da sie zwischen Stehlampe und Schlafzimmer kein "im" in der Rückmeldung sagt, vermute ich das sie es als ein Wort erkennt und nicht als Gerät + Raum?

Hat jemand einen Tipp?

Andere Geräte kann ich mit Alexa noch normal Benutzen.

Sorry falls das hier etwas ungenau ist, der Computer ist schon aus und ich schreibe vom Handy ;-)

Morgen kann ich gerne mehr Infos liefern, sorry!

PS: in der app zur Erkennung steht komischer Weise nichts.

Edit: Mein Fehler, habe es gefunden. Das "im" zwischen Gerät und Raum wird durch die Spracherkennung erkannt!
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

cyvr1

#1806
Hallo,

nach etwas Bastelei und Ausprobieren habe ich den CustomSkill so laufen, wie es für meine Konfiguration passt. Ist schon eine klasse Sache, wenn man sich mal etwas eingearbeitet hat.

Eine Frage hat sich noch ergeben, als ich meine Geräte zu Alexa hinzugefügt habe: Ist es möglich/wäre es möglich, Geräte per Alexa-Befehl für eine begrenzte Zeit einzuschalten? Also z.B. 'Alexa schalte Gartenbewässerung für 15 Minuten ein'.

Wir haben ein Gartenbewässerungssystem, welches über eine Zisternenpumpe versorgt wird, die mit einer Homematic Steckdose geschaltet wird. Mit einer solchen Steuerung könnte man je nach Wetterlage die Bewässung flexibel steuern.

----------
Stephan Krätzschmar

thunder1902

@cyvr1: Ich als Anfänger würde dein Szenario mit 'nem Dummy machen. In diesem dann on-for-timer..? Aber vielleicht gibt's ja noch was eleganteres... :-)

Fixel2012

Zitat von: thunder1902 am 07 Februar 2017, 13:13:39
@cyvr1: Ich als Anfänger würde dein Szenario mit 'nem Dummy machen. In diesem dann on-for-timer..? Aber vielleicht gibt's ja noch was eleganteres... :-)

Oder ein DOIF was auf on des devices triggeed und automatisch nach 15 Min das Gerät wieder ausschaltet.

Nachteil: Man ist nicht flexibel sondern hat diese festen 15 Minuten nachdem die Bewässerung wieder ausgeht.


Die beste Lösung wäre natürlich alexa zu sagen Geräte für einen gewisse Zeitspanne an zu schalten. Vielleicht sogar so, das ein Timer in alexa läuft und dann nach den x Minuten greift und das Gerät mit Ansage wieder ausschaltet.
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Prof. Dr. Peter Henning

Aber das ist doch als Sicherheitsfaktor für die Bewässerung eminent wichtig !

Es sollte jedem klar sein, dass eine Bewässerung, die manuell ausgeschaltet werden muss, ein erhebliches Risiko darstellt.

LG

pah

sbiermann

Zitat von: Fixel2012 am 07 Februar 2017, 13:26:41
Die beste Lösung wäre natürlich alexa zu sagen Geräte für einen gewisse Zeitspanne an zu schalten. Vielleicht sogar so, das ein Timer in alexa läuft und dann nach den x Minuten greift und das Gerät mit Ansage wieder ausschaltet.

Indeed, das wäre es. Leider geht das derzeit nicht. Es gibt aber Featurerequests in die Richtung im Alexa Developer Forum bei Amazon. Die Antwort war das es auf der Roadmap stehen würde aber kein Datum wann Release...

justme1968

du musst doch nur im homebridgeMapping cmd auf on-for-timer mappen.

und das ganze ist so sicherheits kritisch das ich das nicht ohne einen aktor machen würde der das nicht nativ in hardware unterstützt.

auch die fhem eigene on-for-timer emulation wäre mir nicht gut genug. ganz zu schweigen von einem cloud dienst der sonst wo läuft.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Fixel2012

Zitat von: sbiermann am 07 Februar 2017, 14:21:17
Indeed, das wäre es. Leider geht das derzeit nicht. Es gibt aber Featurerequests in die Richtung im Alexa Developer Forum bei Amazon. Die Antwort war das es auf der Roadmap stehen würde aber kein Datum wann Release...

Ich dachte mir schon, das das (noch) nicht möglich ist. Aber es wäre in meinen Augen die beste Lösung. :)
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

justme1968

mit dem custom skill und einer passenden konfiguration geht das natürlich.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

sbiermann

Ja nur die Antwort das nun nach Ablauf der Zeit X das Gerät ausgeschaltet wird funktioniert nicht. Sprich Alexa bleibt stumm.
Hier ist der Beitrag im Forum von Amazon: https://forums.developer.amazon.com/questions/53127/is-there-a-way-to-set-a-timealarm-with-text-to-say.html

Ich fand die Idee ganz cool um das First World Problem: "Wann muss ich gehen um die Straßenbahn zu erreichen ohne in der Kälte warten zu müssen" zu lösen.