[alexa-fhem | Custom Skills] Eure Setups

Begonnen von prodigy7, 28 Januar 2017, 13:59:09

Vorheriges Thema - Nächstes Thema

ohosch

Könnte es daran liegen? das hat das Alxa Modul so gebaut. ich habe Deinen Vorschlag mit dem | im FhemIntent realisiert.

"slots" : [
            {
               "name" : "FHEMperlCodeIntent_preTemperature",
               "type" : "FHEMperlCodeIntent_preTemperature_Value"
            },
            {
               "name" : "preposition",
               "type" : "FHEM_preposition"
            },
            {
               "name" : "Room",
               "type" : "FHEM_Room"
            },
            {
               "type" : "FHEMperlCodeIntent_preTemperature_Value",
               "name" : "FHEMperlCodeIntent_preTemperature"
            },
            {
               "type" : "FHEM_Room",
               "name" : "Room"
            }
         ]
      },

ohosch

FHEM scheint das Interaction Model falsch zu bauen wenn mann ein oder "|" im Intent verwendet.

Ich habe den Code oben in das hier abgeändert und nun schluckt Amazon es. Zumindest beim Test konnte ich jetzt auch mit und ohne Präpositon arbeiten.

So Funktioniert es nun:

"slots" : [
            {
               "name" : "FHEMperlCodeIntent_preTemperature",
               "type" : "FHEMperlCodeIntent_preTemperature_Value"
            },
            {
               "name" : "preposition",
               "type" : "FHEM_preposition"
            },
            {
               "name" : "Room",
               "type" : "FHEM_Room"
            }
         ]
      },

justme1968

hab es im alexa modul repariert. ab morgen im update.

eine kleine einschränkung gibt es: ich war zu faul den fall zu berücksichtigen das gleiche slot namen mit unterschiedlichen values angegeben werden. deshalb werden nur die values des ersten vorkommen berücksichtigt. streng genommen kann man sogar die values der anderen dann weg lassen. d.h. z.b. beim zweiten preTemperature die warm;kalt aufzählung:{alexaRoomTemperature($preposition,$Room)}=wie {preTemperature:warm;kalt} ist es {preposition} {Room}|wie {preTemperature} ist es {Room}
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

ohosch

Cool, vielen Dank und ein riesen Lob für den super Support :)

Reinhart

Dank der guten Beschreibungen habe ich nun auch den Echo problemlos in Betrieb nehmen können. Natürlich habe ich gleich am Custom Skill herumgebastelt und bin sehr schnell an meine eBus Daten und Energiewerte vom Youless Device gekommen. Am einfachsten erscheint mir hier die 99_myUtils geeignet zu sein, da ich mir hier die Messdaten beliebig zusammen stellen kann.

2 FHEMIntents hinzugefügt
{alexaHeizung()}=heizungsstatus
{currentEnergy()}=energieverbrauch


Sample Utterances Skill
FHEMperlCodeIntentB heizungsstatus
FHEMperlCodeIntentC energieverbrauch


und etwas Code in der 99_myUtils.pm
sub currentEnergy() {
  my $title = ReadingsVal("LS110_2", "electricityPower", "");
  my $titleday = int(ReadingsVal("LS110_2", "electricityConsumed_EnergyDay", ""));
  my $titlespitze = int(ReadingsVal("LS110_2", "electricityConsumed_PowerDayMax", ""));
  my $titlekosten = int(ReadingsVal("LS110_2", "electricityConsumed_EnergyCostDay", ""));
  return "Die aktuelle Leistung beträgt $title Watt und der Tagesverbrauch ist $titleday Kilowatt. Die Spitze betrug $titlespitze Watt. Die Stromkosten betrugen heute $titlekosten Euro";
}

sub alexaHeizung() {
  my $titlevorlauf = ReadingsVal("Vorlauf", "temperature", "");
  $titlevorlauf =~ s/\./,/g;
  my $titlekurve = ReadingsVal("HKurve", "HKurve", "");
  $titlekurve =~ s/\./,/g;
  my $titletemp = ReadingsVal("HKurve", "Aussentemp", "");
  $titletemp =~ s/\./,/g;
  my $titlekueche = ReadingsVal("Kueche", "state", "");
  $titlekueche =~ s/on/ein/g;
  my $titlewohn = ReadingsVal("Wohnzimmer", "state", "");
  $titlewohn =~ s/on/ein/g;
  my $titleeg = ReadingsVal("PumpeEG", "state", "");
  $titleeg =~ s/on/ein/g;
  return "Der Vorlauf beträgt $titlevorlauf Grad und die Heizkurve ist auf $titlekurve eingestellt. Die Pumpe in der Küche ist $titlekueche im Wohnzimmer $titlewohn und im Erdgeschoss $titleeg ";
}

hier musste ich zusätzlich noch den Dezimalpunkt und den Text "Ein" korrigieren.

Danke an alle die das ermöglicht haben!

LG
Reinhart


FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

WumpE

Hier mal mein Setup

Alexa Sub
package main;
use strict;
use warnings;
use POSIX;

sub
Alexa_Sprache_Utils_Initialize($$)
{
  my ($hash) = @_;
}

sub get_alexa_skill_name(){

my @skillArray = (["XX","amzn1.ask.skill.www","allen"],
                   ["WZ","amzn1.ask.skill.xxx","wohnzimmer"],
                   ["K1","amzn1.ask.skill.yyy","charlotte"],
                   ["KU","amzn1.ask.skill.zzz","küche"],
                   ["K2","amzn1.ask.skill.ccc","johanna"],
                   ["FL","amzn1.ask.skill.vvv","flur"]);


my $skillID = ReadingsVal("Alexa_Device","fhemIntent",0);

my $ret = "";

for(my $i = 0; $i<@skillArray; $i++){
   if( $skillID =~ $skillArray[$i][1] ){
      $ret = $skillArray[$i][0]." ".$skillArray[$i][2];
      last;
   }
}
return $ret;
}

#####################################################################
#
# alexa_guten_morgen
#
#####################################################################
sub alexa_master($)
{
  my ($aktion) = @_;
  my ($skillName,$skillRoom) = split(m/\ /,get_alexa_skill_name());

  fhem "setreading Alexa_Device alexaSub master";
  fhem "setreading Alexa_Device skillName ".$skillName;
  fhem "setreading Alexa_Device skillRoom ".$skillRoom;
  fhem "setreading Alexa_Device aktion ".$aktion;
  fhem "setreading Alexa_Device szene ";
 
  if(lc($aktion) =~ m/hallo|guten.morgen/){
     if( $skillName eq "XX"){
       fhem "set SONOS_Kueche_STATUS on";
       fhem "set Rolladen_Gruppe_Alle pct 0";
       return $aktion.", ich habe in der Küche Sonos an geschalten und alle Rolladen geöffnet";
     }
     elsif ( $skillName eq "K1"){
       fhem "set K1_RA pct 0";
       return $aktion.", ich habe bei ".$skillRoom." das Rollo geöffnet";
     }
     elsif ( $skillName eq "K2"){
       fhem "set K2_RA pct 0";
       return $aktion.", ich habe bei ".$skillRoom." das Rollo geöffnet";
     }
     elsif ( $skillName eq "KU"){
       fhem "set SONOS_Kueche_STATUS on";
       return $aktion.", ich habe in der ".$skillRoom." das Radio an geschalten";
     }
     else {
       return "Für den Skill ".$skillRoom." gibt es keine Aktion ".$aktion ;
     }
  }elsif(lc($aktion) =~ m/tschüss|gute.nacht|auf.wiedersehen/){
     if( $skillName eq "XX"){
       fhem "set SONOS_Kueche_STATUS off";
   fhem "set Rolladen_Gruppe_Alle pct 100";
       return "Ich habe in der Küche das Radio aus geschalten. ".$aktion;
     }
     elsif ( $skillName eq "WZ"){
       fhem "set WZ_DA_R_SW off";
       fhem "set WZ_DA_L_SW off";
       fhem "set WZ_HUB activity PowerOff";
       return "Ich habe im ".$skillRoom." das Licht und den Fernseher aus geschalten. ".$aktion;
     }
     elsif ( $skillName eq "K1"){
       fhem "set K1_RA pct 100";
       return "Ich habe bei ".$skillRoom." das Rollo geschlossen.";
     }
     elsif ( $skillName eq "K2"){
       fhem "set K2_RA pct 100";
       return "Ich habe bei ".$skillRoom." das Rollo geschlossen.";
     }
     elsif ( $skillName eq "KU"){
       fhem "set SONOS_Kueche_STATUS off";
       return "Ich habe in der ".$skillRoom." das Radio aus geschalten. ".$aktion;
     }
     else {
       return "Für den Skill ".$skillRoom." gibt es keine Aktion ".$aktion ;
     }
  }elsif(lc($aktion) =~ m/ausschlafen|aus.schlafen/){
     if( $skillName eq "XX"){
       fhem "set Rollos_Automatik off";
       return "Ich habe die Rolladenautomatik aus geschalten. ";
     }
     else {
       return "Für den Skill ".$skillRoom." gibt es keine Aktion ".$aktion ;
     }
  }else{
     return "Für die Master Routine gibt es keine Aktion ".$aktion ;
  }
}

#####################################################################
#
# alexa_licht
#
#####################################################################
sub alexa_licht($$){
  my ($aktion,$szene) = @_;
  my ($skillName,$skillRoom) = split(m/\ /,get_alexa_skill_name());

  fhem "setreading Alexa_Device alexaSub licht";
  fhem "setreading Alexa_Device skillName ".$skillName;
  fhem "setreading Alexa_Device skillRoom ".$skillRoom;
  fhem "setreading Alexa_Device aktion ".$aktion;
  fhem "setreading Alexa_Device szene ".$szene;

# LichtSzene WZ
  if(lc($aktion) eq "lichtszene" && $skillName eq "WZ"){
     if( $szene eq "essen" ){
       fhem "set WZ_LightSzene_RP Essen";
       return "Ich habe die ".$aktion." im ".$skillRoom." auf essen gestellt";
     }
     elsif( $szene eq "fernsehen" ){
       fhem "set WZ_LightSzene_RP TV";
       return "Ich habe die ".$aktion." im ".$skillRoom." auf fernsehen gestellt";
     }
     elsif( $szene eq "film" ){
       fhem "set WZ_LightSzene_RP Beamer";
       return "Ich habe die ".$aktion." im ".$skillRoom." auf Film schauen gestellt";
     }
     elsif( $szene eq "an" ){
       fhem "set WZ_LightSzene_RP An";
       return "Ich habe die ".$aktion." im ".$skillRoom." auf an gestellt";
     }
     elsif( $szene eq "aus" ){
       fhem "set WZ_LightSzene_RP Aus";
       return "Ich habe die ".$aktion." im ".$skillRoom." auf aus gestellt";
     }
     else {
       return "Für den Raum ".$skillRoom." gibt es keine ".$aktion." mit dem Namen ".$szene ;
     }
# Licht WZ
  }elsif(lc($aktion) eq "licht" && $skillName eq "WZ"){
     if( $szene eq "an" ){
       fhem "set WZ_LightSzene_RP An";
       return "Ich habe das ".$aktion." im ".$skillRoom." an gestellt";
     }
     elsif( $szene eq "aus" ){
       fhem "set WZ_LightSzene_RP Aus";
       fhem "set WZ_DA_R_SW off";
       fhem "set WZ_DA_L_SW off";
       return "Ich habe sämtliche Lichter im ".$skillRoom." aus gemacht";
     }
     else {
       return "Für den Raum ".$skillRoom." gibt es keine Aktion ".$aktion." mit der Funktion ".$szene ;
     }
# Licht Charlotte
  }elsif(lc($aktion) eq "licht" && $skillName eq "K1"){
     if( $szene eq "an" ){
       fhem "set K1_LE_Ball on";
       return "Ich habe das ".$aktion." bei ".$skillRoom." an gestellt";
     }
     elsif( $szene eq "aus" ){
       fhem "set K1_LE_Ball off";
       return "Ich habe das ".$aktion." bei ".$skillRoom." aus gemacht";
     }
     elsif( $szene eq "nacht" ){
       fhem "set K1_LE_Ball night";
       return "Ich habe das ".$aktion." bei ".$skillRoom." auf Nachtmodus gestellt";
     }
     else {
       return "Für den Raum ".$skillRoom." gibt es keine Aktion ".$aktion." mit der Funktion ".$szene ;
     }
# Licht Johanna
  }elsif(lc($aktion) eq "licht" && $skillName eq "K2"){
     if( $szene eq "an" ){
       fhem "set K2_LE_Ball on";
       return "Ich habe das ".$aktion." bei ".$skillRoom." an gestellt";
     }
     elsif( $szene eq "aus" ){
       fhem "set K2_LE_Ball off";
       return "Ich habe das ".$aktion." bei ".$skillRoom." aus gemacht";
     }
     else {
       return "Für den Raum ".$skillRoom." gibt es keine Aktion ".$aktion." mit der Funktion ".$szene ;
     }
# Licht Flur
  }elsif(lc($aktion) eq "licht" && $skillName eq "FL"){
     if( $szene eq "an" ){
       fhem "set FL_SA1_Licht on";
       fhem "set TA_SA2_Licht on";
       return "Ich habe das ".$aktion." im ".$skillRoom." an gestellt";
     }
     elsif( $szene eq "aus" ){
       fhem "set FL_SA1_Licht off";
       fhem "set TA_SA2_Licht off";
       return "Ich habe das ".$aktion." im ".$skillRoom." aus gemacht";
     }
     else {
       return "Für den Raum ".$skillRoom." gibt es keine Aktion ".$aktion." mit der Funktion ".$szene ;
     }
  }else{
     return "Für die Licht Routine gibt es keine Aktion ".$aktion." mit der Funktion ".$szene ;
  }
}

#####################################################################
#
# alexa_media
#
#####################################################################
sub alexa_media($$){
  my ($aktion,$szene) = @_;
  my ($skillName,$skillRoom) = split(m/\ /,get_alexa_skill_name());

  fhem "setreading Alexa_Device alexaSub media";
  fhem "setreading Alexa_Device skillName ".$skillName;
  fhem "setreading Alexa_Device skillRoom ".$skillRoom;
  fhem "setreading Alexa_Device aktion ".$aktion;
  fhem "setreading Alexa_Device szene ".$szene;

# Media KU
  if(lc($aktion) eq "radio" && $skillName eq "KU"){
     if( $szene eq "an" ){
       fhem "set SONOS_Kueche_STATUS on";
       return "Ich habe das ".$aktion." in der ".$skillRoom." an gestellt";
     }
     elsif( $szene eq "aus" ){
       fhem "set SONOS_Kueche_STATUS off";
       return "Ich habe das ".$aktion." in der ".$skillRoom." aus gemacht";
     }
     else {
       return "In dem Raum ".$skillRoom." gibt es kein ".$aktion ;
     }
# Media WZ
  }elsif(lc($aktion) eq "fernseher" && $skillName eq "WZ"){
     if( $szene eq "an" ){
       fhem "set WZ_HUB activity FernsehenTV";
       return "Ich habe den ".$aktion." im ".$skillRoom." an gestellt";
     }
     elsif( $szene eq "aus" ){
       fhem "set WZ_HUB activity PowerOff";
       return "Ich habe den ".$aktion." im ".$skillRoom." aus gemacht";
     }
     else {
       return "Für den Raum ".$skillRoom." gibt es keine Aktion ".$aktion." mit der Funktion ".$szene ;
     }
# Media XX
  }elsif(lc($aktion) eq "klingel" && $skillName eq "XX"){
     if( $szene eq "an" ){
       fhem "set XX_LA_Klingel off";
       return "Ich habe die ".$aktion." an gestellt";
     }
     elsif( $szene eq "aus" ){
       fhem "set XX_LA_Klingel on";
       return "Ich habe die ".$aktion." stumm geschalten";
     }
     else {
       return "Für den Skill ".$skillRoom." gibt es keine ".$aktion." mit der Funktion ".$szene ;
     }
  }else{
     return "Für die Media Routine gibt es keine Aktion ".$aktion." mit der Funktion ".$szene ;
  }
}

1;



fhemIntends im AlexaDevice
{ alexa_master($AKTION)       }={AKTION:hallo;guten+morgen;tschüss;gute+nacht;auf+wiedersehen}
{ alexa_licht($AKTION,$SZENE) }={AKTION:licht;lichtszene} {SZENE:essen;fernsehen;film;an;aus}
{ alexa_media($AKTION,$SZENE) }={AKTION:radio;fernseher;klingel} {SZENE:an;aus}
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9

Amenophis86

#66
Edit:
Eintrag in den richtigen Thread verschoben
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...

prodigy7

Zitat von: Amenophis86 am 15 Juni 2017, 16:44:31
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.
[alexa-fhem | Custom Skills] Probleme mit euren Setups

Amenophis86

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...

hummeruli

Hi,

leider kann ich machen was ich will. Ich versuche meine MAX! Tür und Fenster Kontakte mit Alexa abzufragen, doch leider kommt immer nur "Der Status von Fenster im ... ist geschlossen" obwohl es auf ist.


Internals:
   CFGFN      ./FHEM/Raumklima.cfg
   CHANGED
   CULMAX_MSGCNT 23
   CULMAX_TIME 2017-07-12 00:29:57
   DEF        ShutterContact 0a5455
   IODev      CULMAX
   LASTInputDev CULMAX
   MSGCNT     23
   NAME       KU_Fenster
   NR         815
   RSSI       -70.5
   STATE      opened
   TYPE       MAX
   addr       0a5455
   backend    CULMAX
   rferror    0
   type       ShutterContact
   READINGS:
     2017-07-12 00:29:57   RSSI            -70.5
     2017-07-12 00:29:57   battery         ok
     2017-07-12 00:29:57   onoff           1
     2017-07-12 00:29:57   state           opened
   internals:
     interfaces switch_active;battery
Attributes:
   IODev      CULMAX
   alexaName  fenster
   alexaRoom  küche
   alias      Fenster-Küche
   devStateIcon opened:fts_window_2w_open@red closed:fts_window_2w@green
   event-on-change-reading state
   genericDeviceType contact
   homebridgeMapping clear ContactSensorState=state,values=opened:CONTACT_DETECTED,closed:CONTACT_NOT_DETECTED
   room       Alarm,Alexa,Raumklima


Das Logging gibt folgendes aus:


[2017-07-10 23:32:04] [Alexa_Custom_Skill] BU_Fenster is ContactSensor
[2017-07-10 23:32:04] [Alexa_Custom_Skill] BU_Fenster has
[2017-07-10 23:32:04] [Alexa_Custom_Skill]   StatusLowBattery [battery]
[2017-07-10 23:32:04] [Alexa_Custom_Skill]   ContactSensorState [state]
[2017-07-10 23:32:04] [Alexa_Custom_Skill]   CurrentDoorState [state]
[2017-07-10 23:32:04] [Alexa_Custom_Skill] { reading: 'battery',
  values: [ 'ok:BATTERY_LEVEL_NORMAL', '/.*/:BATTERY_LEVEL_LOW' ],
  device: 'BU_Fenster',
  informId: 'BU_Fenster-battery',
  characteristic_type: 'StatusLowBattery',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'Alexa_Custom_Skill' },
  value2homekit: { ok: 'BATTERY_LEVEL_NORMAL' },
  value2homekit_re: [ { re: '.*', to: 'BATTERY_LEVEL_LOW' } ] }
  2017-07-10 23:32:04 caching: BU_Fenster-battery: ok
[2017-07-10 23:32:04] [Alexa_Custom_Skill] { reading: 'state',
  values: [ 'closed:CONTACT_DETECTED', '/.*/:CONTACT_NOT_DETECTED' ],
  device: 'BU_Fenster',
  informId: 'BU_Fenster-state',
  characteristic_type: 'ContactSensorState',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'Alexa_Custom_Skill' },
  value2homekit: { closed: 'CONTACT_DETECTED' },
  value2homekit_re: [ { re: '.*', to: 'CONTACT_NOT_DETECTED' } ] }
  2017-07-10 23:32:04 caching: BU_Fenster-state: closed
[2017-07-10 23:32:04] [Alexa_Custom_Skill] { reading: 'state',
  values: [ 'closed:CLOSED', '/.*/:OPEN' ],
  device: 'BU_Fenster',
  informId: 'BU_Fenster-state',
  characteristic_type: 'CurrentDoorState',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'Alexa_Custom_Skill' },
  value2homekit: { closed: 'CLOSED' },
  value2homekit_re: [ { re: '.*', to: 'OPEN' } ] }


Auch muss ich dazu sagen, dass der "state" bei diesen Geräten opened und closed annehmen kann. Als weiteres Reading gibt es noch "onoff", dieses kann "0" und "1" annehmen.
Meine Vermutung ist dass an Stelle von "open" eben "opened" zu Verfügung gestellt wird. Habe das mit dem "onoff" auch schon versucht zu nutzen. Als genericdevice habe ich schon diverse versucht, ohne Erfolg.

Ich hoffe, dass mir von Euch Profis jemand helfen kann.

Danke

Uli
Beim Erstellen dieser Nachricht kamen weder Tiere zu Schaden, noch wurde Papier verschwendet. Alles von mir geschriebene ist biologisch abbaubar.


FHEM auf Debian Buster in einr Proxmox VM , LaCrosseGateway, AVR-NET-IO, Homematic, Alexa, S300TH, Signalduino..........

justme1968

das device listing ist von KU_Fenster, das alexa log von BU_Fenster. kann es sein das du beim falschen device bist?

die max kontakte sollten auch komplett automatisch erkannt werden. ohne das genericDeviceType und homebridgeMapping gesetzt werden muss.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

hummeruli

Oh sorry, habe nur einen Ausschnitt kopiert, die sind alle identisch. Es ist aber schon komisch dass er bei mir keinen einzigen Kontakt erkennt. Ich hatte es zuerst ohne jegliche Einträge in den genericDeviceTypes und homebridgeMappings versucht.
Würde eventuell ein Dummy bzw. Notify helfen?


Uli
Beim Erstellen dieser Nachricht kamen weder Tiere zu Schaden, noch wurde Papier verschwendet. Alles von mir geschriebene ist biologisch abbaubar.


FHEM auf Debian Buster in einr Proxmox VM , LaCrosseGateway, AVR-NET-IO, Homematic, Alexa, S300TH, Signalduino..........

justme1968

zeig mal ein jsonlist2 von einem der max devices.

dummys und notifys sind nichtnötig.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

hummeruli

Hier ein Jsonlist2 vom Bürofenster:


{
    "Name":"BU_Fenster",
    "PossibleSets":"wakeUp factoryReset groupid associate:WZ_Termostat deassociate:WZ_Termostat",
    "PossibleAttrs":"alias comment:textField-long eventMap group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 IODev do_not_notify:1,0 ignore:0,1 dummy:0,1 showtime:1,0 keepAuto:0,1 scanTemp:0,1 event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading alexaName alexaRoom cmdIcon devStateIcon devStateStyle fm_fav fm_groups fm_name fm_order fm_type fm_view genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon room_map sortby structexclude webCmd widgetOverride userattr",
    "Internals": {
      "CFGFN": "./FHEM/Raumklima.cfg",
      "CHANGED": "null",
      "CULMAX_MSGCNT": "14",
      "CULMAX_TIME": "2017-07-13 06:42:59",
      "DEF": "ShutterContact 1511a5",
      "LASTInputDev": "CULMAX",
      "MSGCNT": "14",
      "NAME": "BU_Fenster",
      "NR": "881",
      "RSSI": "-55.5",
      "STATE": "closed",
      "TYPE": "MAX",
      "addr": "1511a5",
      "backend": "CULMAX",
      "rferror": "0",
      "type": "ShutterContact"
    },
    "Readings": {
      "RSSI": { "Value":"-55.5", "Time":"2017-07-13 06:42:59" },
      "battery": { "Value":"ok", "Time":"2017-07-13 06:42:59" },
      "onoff": { "Value":"0", "Time":"2017-07-13 06:42:59" },
      "state": { "Value":"closed", "Time":"2017-07-13 06:42:59" }
    },
    "Attributes": {
      "IODev": "CULMAX",
      "alexaName": "fenster",
      "alexaRoom": "büro",
      "alias": "Fenster-Büro",
      "devStateIcon": "opened:fts_window_2w_open@red closed:fts_window_2w@green",
      "event-on-change-reading": "state",
      "room": "Alarm,Alexa,Raumklima"
    }
  },



Ich hoffe dass Du da etwas findest.

Danke

Uli
Beim Erstellen dieser Nachricht kamen weder Tiere zu Schaden, noch wurde Papier verschwendet. Alles von mir geschriebene ist biologisch abbaubar.


FHEM auf Debian Buster in einr Proxmox VM , LaCrosseGateway, AVR-NET-IO, Homematic, Alexa, S300TH, Signalduino..........

Marlen

Hallo, vielen dank an die super Beschreibungen und Beispiele!

Ich hab nir auch eine 99_Alexa_Sprache_Utils.pm gebastelt!

package main;
use strict;
use warnings;
use POSIX;
sub
Alexa_Sprache_Utils_Initialize($$)
{
   my ($hash) = @_;
}
##### Start Warmwasser
sub
alexa_warmwasser()
{
my $wwasser = ReadingsVal("WarmWasser","alexatemp","");; #Value("Ww_Floorplan");
if ($wwasser >= 42) {
return "Die Warmwassertemperatur beträgt $wwasser °C, wenn du baden oder duschen möchtest ist das kein Problem!";
}elsif ($wwasser >= 35) {
return "Die Warmwassertemperatur beträgt $wwasser °C, wenn du duschen möchtest ist das kein Problem!";
}else{
return "Die Warmwassertemperatur beträgt $wwasser °C.";
}
}

#####Ende Warmwasser
1;


Kann man damit aber auch einen schaltbefehl abarbeiten?

Ich möchte sagen "Alexe, sage Smart Home, lade Warmwasser!"

geht das?

Oder das Alexa gleich fragt, wenn das Wasser unter 35C ist ob ich das Wasser nachladen möchte!

LG
  Marlen