"Alexa, starte X für Y Minuten" via homeBridgeMapping?

Begonnen von FHEMAN, 29 Juni 2020, 12:19:51

Vorheriges Thema - Nächstes Thema

FHEMAN

Hallo zusammen,

kann ich mitttels homeBridgeMapping aus einem dim-Befehl einen on-for-timer Befehl machen?
Da der Aufruf aus dem Thread Titel nicht funktioniert, möchte ich wenigstens sagen können: "Alexa, stelle Bewässerung auf 30" - und dann soll der dim-Wert als on-for-timer Wert (idealerweise * 60 Sek.) für den Schaltaktor gemappt werden.

Geht das?

Viele Grüße
Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

MadMax-FHEM

#1
Wiki gelesen!?

Erst mal musst du prüfen, ob Amazon das überhaupt "unterstützt"/erkennt...

Denke: nein

Aber im Wiki ist ein Link wo man das herausfinden kann...

Wenn man etwas "passendes" gefunden hat, dann geht das evtl. schon "automatisch", wenn das Device "richtig erkannt" / "interpretiert" wird, z.B. bzgl. setList/vorhandener Readings etc.
Wenn nicht: genericDeviceType...

Wenn es Amazon/Alexa nicht "erkennt" dann kannst du mit homeBridgeMapping auch nichts daran ändern.

EDIT: homeBridgeMapping "erklärt" alexa-fhem nur, wie Kommandos, die von Amazon kommen in fhem umgesetzt werden müssen (also wie z.B. ein: "schalte XYZ ein" dazu führt, dass eben in fhem XYZ eingeschaltet wird / sollte es sich nicht um ein "simples" on handeln) und genauso andersrum, also welcher Wert/Zustand in fhem eben auf Amazon/Alexa Seite den passenden Status "anzeigt"... Mehr nicht. Es ist damit NICHT möglich "Spracherweiterungen" zu machen... Steht aber alles im Wiki...

Wenn es dir nur darum geht "etwas" auf einem Wert zu setzen, dann kannst du (wie ja bereits von dir "angedeutet") einen "dummy-dimmer" oder einen "readingsProxy-Dimmer" bauen und entsprechend dann schalten (bei dummy z.B. mittels notify / bei readingsProxy verm. sogar "direkt")...

Wenn du in der Liste bei Amazon was gefunden hast, was "passt" und damit nicht zurecht kommst: einfach noch mal gezielt fragen...

Ansonsten bleibt nat. immer noch der Custom Skill, damit ginge das...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

slor

Falls es feste Werte sind, kannst du dir in der Alexa App auch Routinen bauen. So habe ich das zumindest gelöst.
Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

FHEMAN

Ich will Routinen vermeiden, weil die gelegentlich (nach Updates?) verschwinden und ich auch nicht zwei Stellen zur Wartung haben möchte.
Daher die Idee der Krücke mit dem genericDeviceType light, damit ich neben on und off dem Device quasi noch einen Wert übermitteln kann - um einen Timer zu integrieren. Von der Sprachsteuerung würde das für mich passen, weil ich ja nicht von Dimmen spreche.

Einen extra Dummy mit Notify zur Übersetzung hoffte ich vermeiden zu können, indem ich ein Mapping direkt am Aktor mittes eventMap oder - vermutlich besser - homeBridgeMapping realisiere.

Leider finde ich zu wenig Beispiele, um zu kapieren, wie ich mit Homebridgemapping den Wert eines Dim-Befehls (brightness) in ein on-for-timer cmd umwandle...

Wiki und github readme hatte ich gelesen.

Viele Grüße
Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

MadMax-FHEM

Wie wäre es dann mit einem list!?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)


FHEMAN

Es ist ein Schaltaktor einer unserer Bewässerungskreise, an dem die Wassersteckdosen sind.
(peerSmart habe ich wegen der Menge entfernt)

:
   DEF        4165AA02
   FUUID      5ebd5b10-f33f-6078-1eef-c2b9377015c45d65
   NAME       Schaltaktor.Bewaesserung.01.Sw.02.Kreis.6
   NOTIFYDEV  global
   NR         970
   NTFY_ORDER 50-Schaltaktor.Bewaesserung.01.Sw.02.Kreis.6
   STATE      off
   TYPE       CUL_HM
   chanNo     02
   device     Schaltaktor.Bewaesserung.01
   READINGS:
     2020-06-27 10:14:24   CommandAccepted yes
     2020-05-14 16:55:14   R-sign          off
     2020-06-05 19:48:36   RegL_01.        00:00 08:00
     2020-06-27 10:14:24   deviceMsg       off (to VCCU)
     2020-06-27 10:14:24   level           0
     2020-06-27 10:14:24   pct             0
     2020-06-27 10:14:24   recentStateType ack
     2020-06-27 10:14:24   state           off
     2020-06-27 10:14:24   timedOn         off
     2020-06-27 10:14:24   trigLast        fhem:02
     2020-06-05 20:52:05   trigger         0
   helper:
     dlvlCmd    ++A011F107034165AA0202000000
     peerFriend peerSens,peerVirt
     peerOpt    3:switch
     regLst     1,3p
     cmds:
       TmplKey    :no:1592764406.02553
       TmplTs     1592764406.02553
       cmdKey     :1:0:0::0003:02
       TmplCmds:
       cmdList:
         clear:[readings|trigger|register|oldRegs|rssi|msgEvents|msgErrors|attack|all]
         eventL:-peer- -cond-
         eventS:-peer- -cond-
         getConfig:
         getRegRaw:[List0|List1|List2|List3|List4|List5|List6] ... [-PeerChannel-]
         inhibit:[on|off]
         off:
         on-for-timer:-ontime-
         on-till:-time-
         on:
         peerBulk:-peer1,peer2,...- [set|unset]
         peerIODev:[IO] -btn- [set|unset]... not for future use
         peerSmart:........
press:[long|short] -peer- [-repCount(long only)-] [-repDelay-] ...
         regBulk:-list-.-peer- -addr1:data1- -addr2:data2- ...
         regSet:[prep|exec] -regName- -value- ... [-peerChannel-]
         sign:[on|off]
         statusRequest:
         toggle:
         tplDel:tmplt
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     role:
       chn        1
     tmpl:
Attributes:
   AutoWatering 0
   alias      Wasser
   event-on-change-reading state
   genericDeviceType switch
   group      Bewaesserung
   model      HM-LC-SW4-SM
   peerIDs    00000000,
   room       Aussen,Homekit,QuickFHEM
   structexclude Bewaesserung
   userattr   Bewaesserung Bewaesserung_map duration structexclude AutoWatering WateringOrder
   webCmd     on:off

NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

MadMax-FHEM

FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

amenomade

#8
Ich würde mit:

genericDeviceType light
homeBridgeMapping Brightness=pct,cmd=on-for-timer On=state,valueOn=on,valueOff=off


anfangen.
Dann in der alexa-fhem Log schauen, (ob und) wie das Device erkannt wird, und was dann passiert wenn man per Sprache die Brightness setzt.

Da keine Dauer (Wert nach on-for-timer) als Reading im Device steht, kann man das natürlich nicht in der Alexa App mitberücksichtigen. Deswegen habe ich das Reading pct ausgewählt.

EDIT: mit einem Wert anfangen, den Alexa auch erlaubt ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TomLee

ZitatEvtl. mit cmdalias:

ZitatStimmt, könnte auch gehen...


Hab mich noch nie mit cmdalias beschäftigt, wie wird/soll denn ein cmdalias von Alexa erkannt werden ohne setter und Readings ?

Gruß

Thomas

amenomade

Z.B.: Wenn das Device von Alexa mit "set device dim x" gesteuert wird, macht man ein cmdalias, das es in "set device etwas-anderes x" umwandelt.
Ist ein bisschen tricky im Alexa Kontext wegen Karakteristiken... Aber könnte gehen
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

FHEMAN

Hi Thomas,

mit cmdalias kann ich ein Statement a la StringReplace komplett umbauen, aus einem on für ein Device z.B. grundsätzlich on-for-timer machen bzw. übersetzen.
Ich denke, damit könnte ich das Dim auch gut übersetzen, so dass beim Gerät am Ende nur on-for-timer X ankommt. Allerdings empfinde ich das für meinen einen Fall, also für ein einzelnes Device ein wenig oversized.
Ich verwende einige sehr hilfreiche Cmdaliase im anderen Kontext, z. b. zur Suche von Definitionen oder setex.

Viele Grüße
Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

justme1968

entweder
- im mapping das kommando angeben das verwendet werden soll
- mit eventMap dafür sogen das das kommando umgebogen wird
- oder mit cmdalias ein neues kommando definieren und dieses dann verwenden

es fängt immer mit 1 an und geht dann je nach dem was das gerät von sich aus kann dann mit 2 und/oder 3 weiter.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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