[gelööst] Klimaanlage mit Alexa-Fhem steuern

Begonnen von lynckmeister, 09 November 2022, 18:28:46

Vorheriges Thema - Nächstes Thema

lynckmeister

Moin zusammen, meine Klimaanlage braucht folgenden Befehl um eingeschaltet zu werden:

für 21c Heizen:


set <device> Heat temp:21,swing:vertical,fan:auto


Wenn ich nun sage Alexa schalte die Klima ein, würde mir es erstmal genügen wenn dann immer fix mit diesen Values ( 21c) gestartet wird... wie kann ich den Alexaskill so steuern, dass er dann dieses Set richtig ausführt?





TomLee

Mit einer ReadingsProxy-Definition, einfach mal suchen, wenn du nicht weiter kommst kann ich dir später ein Beispiel zeigen.

MadMax-FHEM

Attribut homebridgeMapping.
Da kannst du festlegen was bei on/off an fhem gesendet werden soll...

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)

lynckmeister

#3
vielen Dank TomLee der ReadingProxy hat mir entscheidend weiter geholfen, ich kann jetzt damit sehr einfach die Klima steuern, allerdings klappt die Ansage über Alexa noch nicht ganz, wohl wegen einem fehlenden Homebridgemapping , hier stehe ich etwas auf dem Schlauch.
Ich kann sagen : Schalte die Klima Spitzboden ein oder aus , das geht ! Aber Schalte die Klima spitzboden auf 21 grad wird so nicht unterstützt ...
Über die Eingabe kann ich aber sagen set AC_Spitzboden temperature 25 geht ...

Anbei mal das Listing zu meinem Device, vielleicht kann mir hier jemand weiter helfen?



Internals:
   DEF        AC_Spitzboden:state
   DEVICE     AC_Spitzboden
   FUUID      636c07ff-f33f-c4df-cb54-e83632744248557c
   NAME       AC_Spitzboden_RP
   NOTIFYDEV  AC_Spitzboden,global
   NR         713
   NTFY_ORDER 50-AC_Spitzboden_RP
   READING    state
   STATE      Off
   TYPE       readingsProxy
   eventCount 23
   CONTENT:
     AC_Spitzboden 1
   READINGS:
     2022-11-10 20:36:35   lastCmd         off
     2022-11-10 20:36:38   state           Off
Attributes:
   alexaName  Klima spitzboden
   genericDeviceType thermostat
   room       Klima
   setFn      { if ($CMD eq "on") {
fhem ("set $DEVICE Heat temp:22,swing:vertical,fan:auto");
} elsif ($ARGS =~ /^([0-9]|[1-9][0-9]|100)$/) {
fhem ("set $DEVICE Heat temp:$ARGS,swing:vertical,fan:auto");
} else {
fhem ("set $DEVICE Off:noArg");
}

}
   setList    temperature:slider,17,1,25 on off

lynckmeister

Ahja noch ein weiterer Punkt:
ich würde gern eine Verzögerung einbauem beim starten des Gerätes:
erst soll eine Funksteckdose gestartet werden, dann will ich dem Ding 30 Sek Zeit lassen und dann soll das Innengerät gestartet werden..
Das Problem ist hier aber, dass das Sleep in einen eigenen Thread oder Stack auslagert und darin dann die Variable $Device nicht mehr bekannt ist.
Wie kann ich die Information über das Sleep hinweg retten?


TomLee

Gibts nen Grund weshalb du das Ursprungs-Device (AC_Spitzboden) verheimlichst ?

Mit einem list "Copy for forum.fhem.de" (ist meine Auffassung), wären die Informationen für alle die zu einer Lösung deines Anliegen beitragen könnten gegeben.

lynckmeister

absolut nicht, ich bin nur nicht davon ausgegangen, dass es noch eine Relevanz hat, weil der Proxy ja prinzipell funktioniert...
Hier das Listing ;)


Internals:
   DEF        192.168.2.134 1440323453307849 f6f10e6d8dfd427f8dddd5ee255cf99101f7c608346b7a2fa95ba8a3c8aae 539FE96A7D90EBA741ED4C98d8F7106F692ED3F7A0286CF094ddC3CE301457A51411d420D8640F08049C152DB186D6E4CA5B1DAB06F2B26A8BF423FFB
   FUUID      633989a1-fddf-c4df-b727-f3adef0c9ddf6d034b
   INTERVAL   0
   NAME       AC_Spitzboden
   NR         685
   STATE      Ready
   TYPE       mideaAC
   READINGS:
     2022-11-11 08:51:31   beep            true
     2022-11-11 08:51:31   fan             Auto
     2022-11-11 08:51:31   id              1440323453307849
     2022-11-11 08:51:31   intense         normal
     2022-11-11 08:51:31   mode            auto
     2022-11-11 08:51:31   name            192.168.x.xxx
     2022-11-11 08:51:31   power           Off
     2022-11-12 09:23:09   state           Ready
     2022-11-11 08:51:31   swing           Vertical
     2022-11-11 08:51:31   temperature     17.0
     2022-11-11 08:51:31   x_indoor_temperature 26.0
     2022-11-11 08:51:31   x_outdoor_temperature 6.0
   helper:
     AUTH        -K f6f10e6d8dd427f85cedd01f7c608346b7a2dfa95ba8d8aae -T 539FE96A7D90EBA741EDd988F7d692ED3F7A02d6CF094C109C3CE301457A514119F3A62F420D864d49C152DB186DdCA5B1DABd06d2B26AdBF423FFB
     HOST        -H 192.168.2.134
     ID          -I 1440323453307849
Attributes:
   processScript /opt/fhem/setAC.py
   room       Klima
   userattr   room_map structexclude


lynckmeister

so habe die Sonntagszeit nochmal genutzt, das Problem mit dem sleep ist erledigt, die Variablen wie $DEVICE sind natürlich da ich hatte nur einen blöden typo...
bleibt die Frage nach dem homebridgemapping mit Alexa, ich schau mir das jetzt auch nochmal an...

TomLee

Evt. brauchts gar kein homebridgemapping, habs nicht nachvollzogen, vlt. ist einfach dein verwendeter Sprachbefehl nicht korrekt, versuch einfach mal Stelle Klima spitzboden auf 21

lynckmeister

Jo so hab ich's gemacht.. die Anwort ist frech :"klims Spitzboden unterstützt das nicht" ... ;)

lynckmeister

also aus dem Alexa-log wird man schlauer:

[13.11.2022, 17:56:53] [FHEM] ACRP_Spitzboden is thermostat
[13.11.2022, 17:56:53] [FHEM] ACRP_Spitzboden is NOT a thermostat. set command for target temperature missing:
[13.11.2022, 17:56:53] [FHEM] ACRP_Spitzboden has
[13.11.2022, 17:56:53] [FHEM]   On [state;on,off]
[13.11.2022, 17:56:53] [FHEM]   CurrentHeatingCoolingState [undefined]
[13.11.2022, 17:56:53] [FHEM] ACRP_Spitzboden will not send proactive events
[13.11.2022, 17:56:53] [FHEM] ACRP_Spitzboden uses ID: 636c0df7ff-f3sf-c4df-cb54-e83sdff44248557c
  2022-11-13 17:56:53 caching: ACRP_Spitzboden-state: Off


Wenn also target temperature fehlt , dann , so dachte ich mir, baue ich es mit Homebridgedmapping halt ein :

TargetTemperature=temperature,minValue=17,maxValue=25,minStep=1,nocache=1

Hilft aber nicht. Muss ich den Value vielleicht noch durchreichen zum eigentichen Device? Aber das würde ja Alexa-Fhem wohl kaum mit kriegen , oder?


lynckmeister

so Leute , ich habs ;)
das homebridgeMapping brachte ja keinen Erfolg, aber als ich in der Setlist einfach desired-temp hinzugefügt habe , war ruhe im log ... hier nochmal meine komplette Setlist:


setList    temperature:slider,17,1,25 on off desired-temp


Wichtig war noch: man musste dann den Alexa-Fhem resetten ( set alexa restart) und das device in der Alexa app neu auslesen / suchen...
jetzt geht alles ... Readingproxy ist eine feine Sache, danke euch für eure Hilfe !!