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?
Mit einer ReadingsProxy-Definition, einfach mal suchen, wenn du nicht weiter kommst kann ich dir später ein Beispiel zeigen.
Attribut homebridgeMapping.
Da kannst du festlegen was bei on/off an fhem gesendet werden soll...
Gruß, Joachim
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
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?
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.
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
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...
Evt. brauchts gar kein homebridgemapping, habs nicht nachvollzogen, vlt. ist einfach dein verwendeter Sprachbefehl nicht korrekt, versuch einfach mal Stelle Klima spitzboden auf 21
Jo so hab ich's gemacht.. die Anwort ist frech :"klims Spitzboden unterstützt das nicht" ... ;)
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?
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 !!