Tips zur Alexa Sprachsteuerung ?

Begonnen von dt2510, 21 Januar 2021, 14:03:33

Vorheriges Thema - Nächstes Thema

TomLee

Schätze mal anhand von dim:slider,0,1,99 war mit schließen dim 0 und öffnen dim 99 gemeint.

Wenn du das folgende eventMap-Attribut vergibst:

attr FGR222_ID33 eventMap dim.99:on dim.0:off

das Device vorsichtshalber aus der App löschst, alexa-fhem neustartest und eine neu Gerätesuche machst, geht dann ein Alexa Rolladen Küche ganz hoch/runter

(Rolladen Küche als alexaName ist nicht optimal)

MadMax-FHEM

Zitat von: TomLee am 22 Januar 2021, 12:23:13
(Rolladen Küche als alexaName ist nicht optimal)

Und auch nicht korrekt ;)

Zitat
      "alexaName": "Rolladen Küche",
      "alias": "Rollladen",

Je nachdem wie genau es Amazon nimmt ;)

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)

dt2510

Zitat von: TomLee am 22 Januar 2021, 12:11:49
Da stimmt doch was nicht, welcher dim_Befehl öffnet und welcher genau schließt ?

Bestimmt nicht für auf und zu beides mal dim 98.

sorry ... schließen mit dim 0

dt2510

Zitat von: MadMax-FHEM am 22 Januar 2021, 12:25:39
Und auch nicht korrekt ;)

Je nachdem wie genau es Amazon nimmt ;)

Gruß, Joachim

Ja, da arbeite ich noch dran (vor Allem an den 2-3 l's) ;)

Im Log davor steht

[22.1.2021, 12:03:48] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.RangeController","name":"AdjustRangeValue","payloadVersion":"3","instance":"Blind.Position","messageId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"xxxxxxxxxxxxxxxxxxxxxxxx"},"endpointId":"ZWave_xxxxxxxx-33","cookie":{"fuuid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx","device":"FGR222_ID33"}},"payload":{"rangeValueDelta":-100,"rangeValueDeltaDefault":false}}}

Ich vermute das Problem ist die -100 ... beim Öffnen liefert er übrigens 100 und auch das wird in NaN übersetzt.

dt2510

Zitat von: TomLee am 22 Januar 2021, 12:23:13
Schätze mal anhand von dim:slider,0,1,99 war mit schließen dim 0 und öffnen dim 99 gemeint.

schließen mit dim 0 und öffnen mit dim 98 (bis 99 lassen sich die Läden nicht öffnen).

dt2510

Zitat von: TomLee am 22 Januar 2021, 12:23:13
Wenn du das folgende eventMap-Attribut vergibst:

attr FGR222_ID33 eventMap dim.99:on dim.0:off

das Device vorsichtshalber aus der App löschst, alexa-fhem neustartest und eine neu Gerätesuche machst, geht dann ein Alexa Rolladen Küche ganz hoch/runter

hat keine Auswirkung ... es wird immer noch -100/100 in NaN übersetzt und "set FGR222_ID33 pct NaN" ausgeführt

TomLee

Doofe Frage, kanns ja nicht ausprobieren:

Wenn du in setList das hier ergänzt:

pct:slider,0,1,99


und im eventMap das:

{
  usr=>{"^pct(.+)"=>'dim$1'},
  fw=>{"^pct(.+)"=>"pct"}
}


Hast du dann einen pct-setter der genau das gleiche wie dim ausführt ?

dt2510

#37
dann bekomme ich beim Setzen des Attributes setList die Fehlermeldung

setList: unknown value pct:slider, use one of sml_CO2-level sml_airFlow sml_anglePosition sml_atmosphericPressure sml_barometricPressure sml_basicMetabolicRate sml_bloodPressure sml_bodyMassIndex sml_boneMass sml_carbonMonoxide sml_current sml_dewpoint sml_direction sml_distance sml_electricalConductivity sml_electricalResistivity sml_fatMass sml_formaldehydeLevel sml_frequency sml_generalPurpose sml_heartRate sml_humidity sml_loudness sml_luminance sml_methaneDensity sml_moisture sml_muscleMass sml_particulateMatter sml_power sml_radonConcentration sml_rain sml_rotation sml_seismicIntensity sml_seismicMagnitude sml_soilHumidity sml_soilReactivity sml_soilSalinity sml_soilTemperature sml_solarRadiation sml_tankCapacity sml_targetTemperature sml_temperature sml_tideLevel sml_time sml_totalBodyWater sml_ultraviolet sml_velocity sml_volatileOrganicCompound sml_voltage sml_waterTemperature sml_weight

ich kann pct auch nicht per set setzen, das gibt es beim device nicht

dt2510

#38
im Wiki hab' ich folgendes gefunden:

CurrentPosition   Integer   position oder pct   

Wenn das Device einen set-Befehl position hat: CurrentPosition => reading=position
Wenn TYPE=DUOFERN, werden die Datenwerte invertiert.
Wenn TYPE=SOMFY, werden die Datenwerte invertiert.
Ansonsten wird gemappt: CurrentPosition => reading=pct
Wenn ein Attribut levelInverse gesetzt ist, werden die Datenwerte invertiert.

TargetPosition Integer position oder pct

Wenn das Device einen set-Befehl position hat: TargetPosition => reading=position, cmd=position
Wenn TYPE=DUOFERN, werden die Datenwerte invertiert.
Wenn TYPE=SOMFY, werden die Datenwerte invertiert, und das Kommando zum Setzen wird auf cmd=pos geändert.
Ansonsten wird gemappt: TargetPosition => reading=pct, cmd=pct
Wenn ein Attribut levelInverse gesetzt ist, werden die Datenwerte invertiert.


Die Fibaro Aktoren haben ein "position" Reading, allerdings kann ich das nur auslesen

"set pct" und "set position" gibt es einfach nicht. Ich kann nur per "set dim" steuern. Im reading "state" dann z.B. "dim 98" und im reading "position" "98"

TomLee

Ich weiß nicht ob das klappt, aber rein aus Interesse, kannst du mal eine Raw Definition von FGR222_ID33 zeigen, inkl. den ganzen Readings (setstate-Zeilen)

dt2510

bitte :) ein paar Definitionen brauch ich intern für diverse Funktionen in der 99_myUtils.pm

defmod FGR222_ID33 ZWave xxxxxxxx 33
attr FGR222_ID33 userattr Shutters Shutters_map group_map structexclude
attr FGR222_ID33 IODev AeonGen5
attr FGR222_ID33 Shutters Shutters
attr FGR222_ID33 alexaName Rolladen Küche
attr FGR222_ID33 alias Rollladen
attr FGR222_ID33 automateOnDaylightChange 1
attr FGR222_ID33 automateOnHomestatusChange 1
attr FGR222_ID33 automationDevice Shutter
attr FGR222_ID33 classes MULTI_CHANNEL_ASSOCIATION MANUFACTURER_SPECIFIC VERSION CONFIGURATION ASSOCIATION POWERLEVEL METER SWITCH_MULTILEVEL SENSOR_MULTILEVEL SWITCH_BINARY MANUFACTURER_PROPRIETARY PROTECTION MARK METER SENSOR_MULTILEVEL MANUFACTURER_PROPRIETARY SCENE_ACTIVATION SWITCH_MULTILEVEL SWITCH_BINARY
attr FGR222_ID33 deviceName Rollladen
attr FGR222_ID33 genericDeviceType blind
attr FGR222_ID33 group Rollladen
attr FGR222_ID33 icon fts_shutter
attr FGR222_ID33 room Raum_EG_Küche
attr FGR222_ID33 roomName Küche
attr FGR222_ID33 vclasses ASSOCIATION:2 CONFIGURATION:1 MANUFACTURER_PROPRIETARY:1 MANUFACTURER_SPECIFIC:1 METER:2 MULTI_CHANNEL_ASSOCIATION:2 POWERLEVEL:1 PROTECTION:2 SCENE_ACTIVATION:1 SENSOR_MULTILEVEL:2 SWITCH_BINARY:1 SWITCH_MULTILEVEL:3 VERSION:1

setstate FGR222_ID33 dim 98
setstate FGR222_ID33 2019-09-30 19:46:17 SEND_DATA failed:00
setstate FGR222_ID33 2018-10-01 06:58:40 UNKNOWN multilevel type  00 fl: 22 arg: 0509
setstate FGR222_ID33 2020-12-02 12:31:30 UNPARSED SENSOR_MULTILEVEL 06310704220000
setstate FGR222_ID33 2018-09-27 19:46:28 battery 100 %
setstate FGR222_ID33 2018-09-27 19:46:28 batteryPercent 100
setstate FGR222_ID33 2018-09-27 19:46:28 batteryState ok
setstate FGR222_ID33 2018-08-02 10:36:05 configEnergyReports 10
setstate FGR222_ID33 2018-08-02 10:36:05 configInRollerBlindModeOrVenetianBlind17 10
setstate FGR222_ID33 2018-08-02 10:36:06 configInVenetianBlindModeTheParameter12 150
setstate FGR222_ID33 2018-08-02 10:36:11 configManagingLamellasInResponseTo35 SetLamellasToTheirExtreme1
setstate FGR222_ID33 2018-08-02 10:36:11 configMotorOperationDetection 10
setstate FGR222_ID33 2018-08-02 10:36:12 configMotorOperationTime 240
setstate FGR222_ID33 2018-08-02 10:36:12 configPeriodicPowerOrEnergyReports 3600
setstate FGR222_ID33 2018-08-02 10:36:12 configPowerReports 10
setstate FGR222_ID33 2018-08-02 10:36:17 configReportsType BlindPositionReportsSentToThe0
setstate FGR222_ID33 2018-08-02 10:36:17 configResponseToFloodingAlarm NoReaction
setstate FGR222_ID33 2018-08-02 10:36:18 configResponseToGeneralAlarm CloseBlind
setstate FGR222_ID33 2018-08-02 10:36:18 configResponseToSmokeCOOrCO2Alarm OpenBlind
setstate FGR222_ID33 2018-08-02 10:36:18 configResponseToTemperatureAlarm OpenBlind
setstate FGR222_ID33 2018-08-02 10:36:18 configRollerShutterOperatingModes 1RollerBlindModeWithPositioning
setstate FGR222_ID33 2018-08-02 10:36:18 configScenesAssociationsActivation AssociationsActivation
setstate FGR222_ID33 2018-08-02 10:36:18 configSelfMeasurement SelfMeasurementInactive
setstate FGR222_ID33 2018-08-02 10:36:19 configSetLamellasBackToPrevious13 1LamellasReturnToPreviouslySet1
setstate FGR222_ID33 2018-08-02 10:36:19 configSwitchType MomentarySwitches
setstate FGR222_ID33 2019-11-08 14:27:39 deviceName Rollladen
setstate FGR222_ID33 2019-10-31 09:47:30 devices
setstate FGR222_ID33 2021-01-22 13:23:04 energy 0.88 kWh
setstate FGR222_ID33 2018-08-02 10:34:32 model FIBARO System FGRM222 Roller Shutter Controller 2
setstate FGR222_ID33 2018-08-02 10:34:32 modelConfig fibaro/fgrm222.xml
setstate FGR222_ID33 2018-08-02 10:34:32 modelId 010f-0302-1000
setstate FGR222_ID33 2021-01-22 07:40:28 position 96
setstate FGR222_ID33 2021-01-22 13:40:27 power 0.0 W
setstate FGR222_ID33 2018-08-02 10:38:33 reportedState dim 98
setstate FGR222_ID33 2019-10-31 09:47:30 shuttersOpen 0
setstate FGR222_ID33 2021-01-22 07:40:26 state dim 98
setstate FGR222_ID33 2021-01-22 07:40:26 timeToAck 0.307
setstate FGR222_ID33 2021-01-22 07:40:26 transmit OK
setstate FGR222_ID33 2020-06-05 22:30:07 undef 0.66 undef


und ja, ich hab' immer noch Rolladen und Rollladen drin ;) das ist aber nicht das Problem, da das Device korrerkt erkannt wird...

dt2510

#41
pct gibt es beim Fibaro Aktor ja gar nicht. Könnte man das reading nicht simulieren ?

Ein "set pct xxx" müsste in "set dim xxx" und ein "get pct" in "get position" übersetzt werden...

mit "attr FGR222_ID33 userReadings pct {return position;}" (syntax nicht gestestet, sollte der korrekten aber nahe kommen) könnte man die position als pct auslesen, aber wie setze ich dim statt pct ?

TomLee

Ja, schon richtig verstanden, darauf war ich auch aus, das userreadings hab ich vergessen zu erwähnen, hab aber ehrlich gesagt nicht alles verstanden, könnte es so aussehen ?

pct:position:..+ {ReadingsVal($name, "position", 0)}

iVm. dem erwähnten eventMap:

{
  usr=>{"^pct(.+)"=>'dim$1'},
  fw=>{"^pct(.+)"=>"pct"}
}



Keine Ahnung warum man das pct:slider... nicht angeben kann.

Aber Unabhängig davon kannst du ja den Wert im pct-setter ja mal von Hand eingeben.
Der pct-setter sollte doch vorhanden sein mit dem eventMap ?

dt2510

#43
Zitat von: TomLee am 22 Januar 2021, 14:39:07
Ja, schon richtig verstanden, darauf war ich auch aus, das userreadings hab ich vergessen zu erwähnen, hab aber ehrlich gesagt nicht alles verstanden, könnte es so aussehen ?

pct:position:..+ {ReadingsVal($name, "position", 0)}

iVm. dem erwähnten eventMap:

{
  usr=>{"^pct(.+)"=>'dim$1'},
  fw=>{"^pct(.+)"=>"pct"}
}



Keine Ahnung warum man das pct:slider... nicht angeben kann.

Aber Unabhängig davon kannst du ja den Wert im pct-setter ja mal von Hand eingeben.
Der pct-setter sollte doch vorhanden sein mit dem eventMap ?

Ich habe eventMap mal angegeben und ich kann wenigstens per Alexa den Rolladen schließen (set pct 0), beim Öffnen wird set pct 100 ausgeführt, das funktioniert auch händisch nicht. Laut Log wird ein dim 0 gesendet (nicht 98 oder 100)

dt2510

Ich habe gerade noch was festgestellt:

Folgende Werte sendet Alexa an FHEM:

"schliesse xxx" => set pct 0
"öffne xxx" => set pct 100

Sagt man aber "schliesse xxx komplett" wird "set pct NaN" gesendet. Wenn man das weiß funktioniert mit der eventMap Methode schonmal das Schließen - das Öffnen leider noch nicht, da aus "set pct xxx" immer "set dim 0" wird