[alexa-fhem | Custom Skills] Probleme mit euren Setups

Begonnen von prodigy7, 19 Februar 2017, 13:16:06

Vorheriges Thema - Nächstes Thema

justme1968

warum verknüpfen?

das eine ist zum ein und aus schalten. das andere zum lauter und leiser machen. die werden nicht verknüpft.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

d.stratmann

Mit verknüpft meinte ich, dass diese sozusagen beide in dem HomeBridge Attr stehen.

aber das klappt jetzt wunderbar.
On=state,cmdOn=on,cmdOff=off
RF=state,cmd=+


Funktion ist jetzt gegeben, jetzt kann ich das ganze noch für Zonen und Playlisten erweitern.
Vielen vielen Dank für die Unterstützung und Geduld.

jehu

Hallo Zusammen,

bei der Abfrage des Status eines Fenster anwortet Alexa immer:
"fenster der Batteriestand ist in ordnung und ist geschlossen"

Mit würde der geschlossen/offen Status reichen. Batteriestatus benötige ich nicht.

Wie kann ich das ggf. konfigieren?

Beste Grüße
Jens
FHEM on RPi 2,
HM-CFG-USB - HM-CC-RT-DN - HM-ES-PMSw1-Pl - HM-LC-Bl1PBU-FM - HM-LC-SW1-FM - HM-LC-Sw1PBU-FM - HM-SEC-SCo - MiLight - SONOS - Lacrosse Jeelink
FTUI auf ODYS GATE

jehu

Dank des FHEM-Wiki-Artikels von pah habe ich die Lösung selbst gefunden  :)
https://wiki.fhem.de/wiki/Alexa_und_Mappings  - Wäre vielleicht gut diesen Artikel auf im Alexa-Fhem-Wiki zu verlinken

Der richtige Eintrag muss heissen:

attr <meinSensor> clear homebridgeMapping ContactSensorState=state,values=closed:CONTACT_DETECTED;open:CONTACT_NOT_DETECTED

Wichtig ist dabei das "clear".

Grüße
Jens
FHEM on RPi 2,
HM-CFG-USB - HM-CC-RT-DN - HM-ES-PMSw1-Pl - HM-LC-Bl1PBU-FM - HM-LC-SW1-FM - HM-LC-Sw1PBU-FM - HM-SEC-SCo - MiLight - SONOS - Lacrosse Jeelink
FTUI auf ODYS GATE

Amenophis86

Ich bin dabei den Custom Skill zu lernen, habe aber noch Verständnisprobleme mit Homemapping und AlexaMapping.

Was will ich machen?
"Alexa, sage Smarti: Melde XY ab/an"

Was soll passieren?
Das Device XY (Aktuell ein Dummy Test, spätere mehrere Dummys) soll auf "anwesend"/"abwesend" gesetzt werden. (Aktuell test ich mit on/off um es einfacher zu verstehen)

Was habe ich bisher:
- Der Custom Skill funktioniert
- Im AlexaMapping habe ich folgendes ergänzt: TargetAnwesenheit=verb=melde,values=an:on;ab:off
- Im Custom Skill:
{
         "intent" : "TargetAnwesenheitIntent",
         "slots" : [
            {
               "name" : "article",
               "type" : "FHEM_article"
            },
            {
               "name" : "Device",
               "type" : "FHEM_Device"
            },
            {
               "type" : "FHEM_preposition",
               "name" : "preposition"
            },
            {
               "name" : "Room",
               "type" : "FHEM_Room"
            },
            {
               "type" : "TargetAnwesenheit_Value",
               "name" : "TargetAnwesenheit_Value"
            }
         ]
      },


TargetAnwesenheit_Value an | ab

TargetAnwesenheitIntent melde {Device} {TargetAnwesenheit_Value}
TargetAnwesenheitIntent melde {Device} {preposition} {Room} {TargetAnwesenheit_Value}
TargetAnwesenheitIntent melde {article} {Device} {TargetAnwesenheit_Value}
TargetAnwesenheitIntent melde {article} {Device} {preposition} {Room} {TargetAnwesenheit_Value}


Mein Dummy:
Internals:
   CFGFN
   NAME       test
   NR         3092
   STATE      ???
   TYPE       dummy
Attributes:
   alexaName  Anja
   alexaRoom  Test
   genericDeviceType switch
   room       Z_alexa



Zum testen hatte ich mal genericDeviceType switch gesetzt

Alex Antwortet mir: "Ich habe Ich kann anja nicht auf ab schalten. ab gestellt"

Vermutlich muss ich jetzt noch irgendwie das homebridgeMapping im Dummy setzen, aber verstehe nicht wie.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

hajuerue

Mein Setup lief seit Wochen, nun hab ich seit gestern das Problem:

Alexa sagt als Antwort auf "Alexa frage Raspi schalte...": "Bei der Antwort des angeforderten Skill ist ein Problem aufgetreten"

Alexa sagt als Antwort auf "Alexa schalte Leinwand ein": "Leinwand reagiert gerade nicht"

Vorgestern hat es noch funktioniert.

Gabs in den letzten Tagen irgendein Update das mir was kaputt gemacht hat?
Ich wüsste nicht wo ich jetzt anfangen soll zu suchen :-(

Gruss
HaJueRue

sbiermann

Schau in die Lambda Console, dort findest du umfangreichere Fehlermeldungen die einen Hinweis geben sollten was nicht stimmt. Sehr wahrscheinlich stimmt etwas nicht mit der DNS Auflösung, sprich Alexa kann dein alexa-fhem nicht erreichen. Jedenfalls war das bei mir immer so wenn es Probleme mit der DNS Auflösung gab.

Romoker

Ich hoffe jemand hat den entscheidenden Tipp für mich, wie ich folgenden Befehl erfolgreich umsetzen kann:

"Alexa, sage James: mach die Haustür auf"

Dazu habe ich im Custom Skill die On-Characteristic im alexaMapping folgendermaßen erweitert:
#Characteristic==,...
On=verb=schalte;mach,valueOn=an;ein;auf,valueOff=aus;zu,valueToggle=um


Im Interaction-Modell wurden alle Anpassungen nachgezogen.

Die Haustür-Device-Konfiguration ist folgendermaßen:
Internals:
   DEF        4472D802
   NAME       HTUER_AL_Sw_02
   NOTIFYDEV  global
   NR         358
   NTFY_ORDER 50-HTUER_AL_Sw_02
   STATE      off
   TYPE       CUL_HM
   chanNo     02
   device     HTUER_AL_Switch
   peerList   self02,
   Readings:
     2017-07-11 22:20:27   CommandAccepted yes
     2016-05-14 18:12:08   R-self02-lgActionType jmpToTarget
     ...
     2017-07-11 22:20:27   deviceMsg       off (to myVCCU)
     2017-07-11 22:20:27   level           0
     2017-07-11 22:20:27   pct             0
     2017-07-03 17:55:12   peerList        self02,
     2017-07-11 22:20:27   recentStateType ack
     2017-07-11 22:20:27   state           off
     2017-07-11 22:20:27   timedOn         off
   Helper:
     dlvlCmd    ++A011123ABC4472D80202000000
     Expert:
       def        1
       det        1
       raw        0
       tpl        0
     Role:
       chn        1
     Shadowreg:
     Tmpl:
Attributes:
   alias      Haustür
   devStateIcon on:rc_REC:off off:control_home:on
   genericDeviceType switch
   icon       fts_door_open
   model      HM-LC-SW4-BA-PCB
   peerIDs    00000000,4472D802,
   room       Zentrale,alexa
   webCmd     statusRequest:toggle


Die Befehle
"Alexa, sage James: schalte die Haustür an"
"Alexa, sage James: schalte die Haustür ein"
"Alexa, sage James: mach die Haustür an"
"Alexa, sage James: mach die Haustür ein"

werden korrekt ausgeführt. Nur Befehle mit dem valueOn=auf werden nicht aufgeführt.

Folgendes sehe ich in der Konsole:
alexa-fhem-Identifizierung:
Ausgabe korrekt ausgeführter Befehl: "Alexa, sage James: schalte die Haustür an"
[7/11/2017, 9:33:42 PM] index: 0
[7/11/2017, 9:33:42 PM] characteristic: On
[7/11/2017, 9:33:42 PM] value: ein
[7/11/2017, 9:33:42 PM] type: undefined
[7/11/2017, 9:33:42 PM] room: undefined
[7/11/2017, 9:33:42 PM] name: haustür
[7/11/2017, 9:33:42 PM] device: [object Object]
[7/11/2017, 9:33:42 PM] [FHEM] HTUER_AL_Sw_02: executing set cmd for On with value 1
[7/11/2017, 9:33:42 PM] [FHEM]   executing: http://192.168.56.28:8083/fhem?cmd=set%20HTUER_AL_Sw_02%20on&XHR=1
response :{"version":"1.0","sessionAttributes":{},"response":{"outputSpeech":{"type":"PlainText","text":"Ich habe  haustür eingeschaltet."},"shouldEndSession":true}}

Ausgabe nicht erkannter Befehl: "Alexa, sage James: mach die Haustür auf"
7/11/2017, 8:30:31 PM] index: 1
[7/11/2017, 8:30:31 PM] characteristic: On
[7/11/2017, 8:30:31 PM] value: auf
[7/11/2017, 8:30:31 PM] type: undefined
[7/11/2017, 8:30:31 PM] room: undefined
[7/11/2017, 8:30:31 PM] name: haustür
[7/11/2017, 8:30:31 PM] device: [object Object]
response :{"version":"1.0","sessionAttributes":{},"response":{"outputSpeech":{"type":"PlainText","text":"Ich kann das Gerät mit Namen haustür nicht aufschalten."},"shouldEndSession":true}}


Die richtige Charakteristik "On" wird angezogen, der richtige Wert "auf" erkannt, aber das Mapping auf "on" wird nicht durchgeführt.
Meine alexa-fhem version ist 0.3.4

Für jeden hilfreichen Hinweis bin ich dankbar.

Viele Grüße
BeagleBoneBlack & Raspberry Pi 4; FB7490; div. Homematic Komponenten; CUL433: CUL_TX, Conbee II, SOMFY, 1-Wire, Z-Wave, Zigbee, SmartPlugs von Sonoff und Shelly mit MQTT

justme1968

bitte bitte bitte: die On charakteristik ist NUR zum ein und aus schalten von etwas. zu nichts anderem. es ist wirklich wichtig geräte und aktionen sinnvoll und eindeutig zu halten. es hilft niemandem eine eigenschaft auf etwas komplett anderes umzubiegen. das macht jede möglichkeit der automatischen zuordnung und kategorisierung kaputt. du willst ja auch nicht das deine tür plötzlich auf geht wenn du sagt schalte das licht im erdgeschoss ein. deine tür ist kein schalter.

bitte für andere dinge eine passende andere vorhandene characteristic verwenden oder eine eigene anlegen (oder wenn es kein zugehöriges fhem device gibt einen fhemIntent verwenden).

für eine tür bietet es sich an TargetDoorState oder LockTargetState zu verwenden. dann wird das ganze sogar automatisch funktionieren sobald amazon den door service auch in deutsch implementiert hat.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Romoker

Danke für die Erläuterung - langsam dämmert es mir. Meine Haustür ist natürlich kein Schalter, aber das Gerät, mit dem ich die Haustür öffne, ist ein Schalter. Ich muss also eine Tür-Charakteristik ansprechen, die "auf" versteht und nicht die Schalter-Charakteristik des Türöffners, die nur "an" und "ein" versteht. Das war mein Denkfehler. Dann macht es also keinen Sinn in der On-Charakteristik etwas anderes als valueOn=an;ein für den Einschaltbefehl zu definieren.

Dann werde ich jetzt meinem Türöffnerschalter den Typ lock zuweisen und mit homebridgeMapping die Türeigenschaften auf Schalterkommandos mappen.
BeagleBoneBlack & Raspberry Pi 4; FB7490; div. Homematic Komponenten; CUL433: CUL_TX, Conbee II, SOMFY, 1-Wire, Z-Wave, Zigbee, SmartPlugs von Sonoff und Shelly mit MQTT

justme1968

ja. zumindest fast. das gerät mit dem du die tür öffnest ist auch kein schalter sondern ein türöffner oder ein schloss. das ist zumindest der aktor. dieser aktor kann (je nach installation) über einen schalter gesteuert oder getriggert werden. das wäre dann der sensor der auf deine berührung reagiert. im alexa fall gibt es diesen schalter aber nicht. bzw. er ist nicht relevant da alexa direkt (über fhem) den aktor steuert.

je nach system sind die grenzen zwischen aktor und sensor etwas unscharf im namen (z.b. hm schaltaktor -> kein schalter sondern nur aktor) oder der funktion (z.b marken taster -> sensor und aktor in einem) aber es ist hilfreich sich das selber klar zu trennen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Romoker

In meinem Fall ist der Aktor, der die Tür öffnet, ein Schalter, konkret ein HomeMatic HM-LC-SW4-PCB 4-Kanal Schaltaktor. Er wird von alexa-fhem auch automatisch als Typ switch erkannt.
BeagleBoneBlack & Raspberry Pi 4; FB7490; div. Homematic Komponenten; CUL433: CUL_TX, Conbee II, SOMFY, 1-Wire, Z-Wave, Zigbee, SmartPlugs von Sonoff und Shelly mit MQTT

justme1968

ja. das ist der default für die generischen devices die alles mögliche sein können. es hängt dann vom konkreten einsatzzweck ab was das ding für jeden kanal 'wirklich' ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Romoker

so - jetzt funzt es. Das war eine schwierige Geburt.

Mein Versuch mit Charakteristik LockTargetState und Typ lock funktionierte nicht:
Definitionen:
alexaMapping LockTargetState=verb=mach,values=auf:on;zu:off

genericDeviceType lock
homebridgeMapping clear LockTargetState=state,values=on:UNSECURED


Alexa Antwort: "Ich habe die haustür auf gemacht"
Aktor wurde aber nicht geschaltet. Der Schaltbefehl wurde falsch generiert: cmd=set HTUER_AL_Sw_02 undefined on
Auch ohne das homebridgeMapping wurde der obige falsche set-Befehl generiert.

Den Versuch mit Charakteristik TragetDoorState und Gerätetyp garage konnte ich nicht testen, da die alexa-fhem-Initialisierung mit der garage-Typ-Zuweisung mit einem Fehler abbricht.

Erfolgreich war ich mit einer neuen Charakteristik Door.
Definitionen:
alexaMapping Door=verb=mach,values=on:auf;off:zu

genericDeviceType Door
homebridgeMapping Door=state,cmd=+


Alexa-Antwort: "Ich habe die haustür auf gemacht"
Aktor wurde korrekt geschaltet mit dem Befehl cmd=set HTUER_AL_Sw_02 on

Vollständig habe ich die alexa-fhem/homebridge-Mapping- und Charakteristik-Logiken noch nicht durchdrungen. Aber immerhin konnte ich mit Deiner Hilfe jetzt eine Lösung für meine Anforderung finden. Danke nochmal.
BeagleBoneBlack & Raspberry Pi 4; FB7490; div. Homematic Komponenten; CUL433: CUL_TX, Conbee II, SOMFY, 1-Wire, Z-Wave, Zigbee, SmartPlugs von Sonoff und Shelly mit MQTT

justme1968

in deinem ersten versuch mit lock hast du das cmd=+ vergessen. damit sollte es genau so gehen wie mit deiner custom Door characteristic.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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