Hi Leutz,
und es ist Sommer, ja ! da war doch noch was ... ... ...
Also, das Problem:
Im letzten Jahr habe ich meine Baumarkt-Splitanlage noch über die HA-Bride gesteuert.
Dabei musste ich schon trixen, da die IR-Fernbedinung bei jedem Tastendruck alle Parameter sendet.
Also drücke ich Temp (-) wird nicht nur die neue Temp. sagen wir es war 23° -> 22° gesendet, sondern auch die Lüftereinstellung, sowie die Funktion ( Kühlen, Trocknen, Luftdüsensteuerung ... ... ) usw.
Das ist scheinbar erforderlich, da es keinen Rückkanal von der Klima zur IR-Bedienung gibt.
Also habe ich für mich den RAW-Code eingelesen für:
1. Kühlen 22°, Kühlen 23°, Kühlen 24°
2. Entfeuchten 22°, Entfeuchten 23°, Entfeuchten 24°,
3. Klima On
4. Klima Off
Diese 8 Befehle habe ich als RAW im IR-Blaster angelegt:
Kühlen:
IR_Klima22
IR_Klima23
IR_Klima24
Entfeuchten:
IR_KLIMA53
IR_KLIMA54
IR_KLIMA55
Power:
IR_KLIMAON
IR_KLIMAOFF
Über die HA-Bridge habe ich dann den gewünschten Befehl senden lassen
"Alexa stelle Klima auf 22" und es wurde IR_Klima22 ausgelöst (Kühlen 22°)
"Alexa stelle Klima auf 54" und es wurde IR_Klima54 ausgelöst (Trocknen 24°)
ON/OFF ebenso ...
So kann ich mit Alexa-FHEM nicht umspringen!
Wie mache ich es da ?!?!?!
*
Warum soll das mit alexa-fhem nicht gehen!?
(schlimmstenfalls) einen dummy als Thermostat, dem dann setList und ein Reading temperature bzw. desired-temp geben, dann sollte die entspr. Temperatur an den dummy bzw. dessen temperature Reading gegeben werden...
notify auf dummy:temperature und dann eben die entspr. Befehle senden...
Evtl. geht das auch geschickter mit readingsProxy...
Gruß, Joachim
Hallo Joachim,
die Idee mit dem Dummy hatte ich auch schon.
Aber wenn ich es so mache, habe ich acht Notyfy, bei den genannten acht Funktionen.
Es wäre eleganter über einen "choice Befehl" oder so
Ich schlaf mal drüber
*
Warum 8 Notify!?
Ein notify und dann eine sub in myUtils!?
Gruß, Joachim
Aha !
Das klingt doch brauchbar! :)
Gibt es eine Strickanleitung zum Umgang mit der sub in myUtils!
Diese Beiden kenne ich wie vieles Andere auch noch nicht :-\
*
Weil ich grad Zeit hatte, hier ein passender dummy (rawdefinition):
defmod dmThermostat dummy
attr dmThermostat alexaName Klima
attr dmThermostat genericDeviceType thermostat
attr dmThermostat readingList desired-temp measured-temp
attr dmThermostat room Test
attr dmThermostat setList desired-temp measured-temp
setstate dmThermostat desired-temp 20
setstate dmThermostat 2020-06-25 20:51:13 desired-temp 20
setstate dmThermostat 2020-06-25 20:42:21 measured-temp 20
EDIT: ich denke readingList kann sogar weg... Jetzt geht: "Alexa stelle Klima auf 25 Grad". Dann landet die 25 in der Sub... Du kannst auch mit "setreading dmThermostat measured-temp Wert" die Temp (oder auch eine andere [gemessene]) "zurück schreiben", diese kannst du dann auch abfragen: "Alexa wie ist die Temperatur von Klima"...
und ein notify:
defmod nThermostat notify dmThermostat:desired-temp.* {my_ControlKlima($EVTPART1)}
und dann eben eine sub:
sub my_ControlKlima($)
{
my ($Temp) = @_;
Log3(undef,1,"my_ControlKlima Temp: $Temp");
# fhem("schalte Temp $Temp / schalte dies und schalte das");
}
https://wiki.fhem.de/wiki/99_myUtils_anlegen
Gruß, Joachim
Oh, vielen Dank!
Das werde ich mir ansehen, aber heute nicht mehr.
Beste Grüße
Mike
Hallo Joachim,
einen Dummy als thermostat anzulegen funktioniert, allerdings funktioniert ON / OFF nicht ?!?!?
Habe dann einen Dummy als light angelegt, ind den Readings "state" steht dann ON / OFF / oder gewählte Temp. z.B. 22
defmod WZ_Klima dummy
attr WZ_Klima alexaName Klimaanlage
attr WZ_Klima genericDeviceType light
attr WZ_Klima homebridgeMapping Brightness=state,cmd=
attr WZ_Klima room Test
attr WZ_Klima setList :18,19,20,21,22,23,24,25 on off
setstate WZ_Klima 25
setstate WZ_Klima 2020-06-26 17:06:16 state 25
Auf dem Web-Oberfläche sieht alles gut aus, Alexa steuert den Dummy wie gewünscht.
Jetzt sollte notify folgen welches auf das Readin state von WZ_Klima reagiert und die Sub aufruft.
So?
defmod WZ_Klimaanlage notify WZ_Klima:state.* {my_ControlKlima($EVTPART1)}
Bin ich schon nahe dran ::)
*
Wenn du on/off auch brauchst (wusste ich nicht), dann einfach setList um on/off erweitern (sollte reichen), dann Alexa reload...
Das Notify auf "state" wird so nicht (ohne weiteres) funktionieren.
Weil "normalerweise" state NICHT im Event steht...
Warum nimmst du nicht mein notify!?
Und erweiterst es um on/off!?
Also in etwa so:
defmod nThermostat notify dmThermostat:(on|off|desired-temp).* {my_ControlKlima($EVTPART1)}
Allerdings dann evtl. "umstellen" auf $EVENT statt $EVTPART1 und intern "splitten" bzw. halt mal loggen lassen WAS "ankommt", wird ja ausgegeben ;)
Ansonsten bzgl. notify: EventMonitor öffnen, auf entspr. Event "warten" und den dann markieren und -> "create/modify" und anlegen lassen...
Gruß, Joachim
Ah, ok, du hast "umgestellt" auf light mit Brightnes...
Hmmm...
Dann wohl: EventMonitor und wie beschrieben Event "erzeugen lassen"...
Gruß, Joachim
Oh, auf die Idee bin ich aus Unwissenheit nicht gekommen.
Nun sieht es so aus, Temp und on/off getrennt ?!?!?!?
defmod WZ_Klima dummy
attr WZ_Klima alexaName Klima
attr WZ_Klima genericDeviceType thermostat
attr WZ_Klima readingList desired-temp measured-temp
attr WZ_Klima room Test
attr WZ_Klima setList desired-temp measured-temp on off
setstate WZ_Klima off
setstate WZ_Klima 2020-06-26 17:45:59 desired-temp 21
setstate WZ_Klima 2020-06-26 17:51:21 state off
Warum trennen!?
Dummy wie folgt:
defmod dmThermostat dummy
attr dmThermostat alexaName Klima
attr dmThermostat genericDeviceType thermostat
attr dmThermostat homebridgeMapping homebridgeMapping On:reading=state,cmdOn=on,cmdOff=off
attr dmThermostat readingList desired-temp measured-temp
attr dmThermostat room Test
attr dmThermostat setList on off desired-temp measured-temp
setstate dmThermostat on
setstate dmThermostat 2020-06-25 21:03:05 desired-temp 20
setstate dmThermostat 2020-06-25 20:42:21 measured-temp 20
setstate dmThermostat 2020-06-26 18:04:48 state on
Dann geht an/aus und Temperatur (und wenn du measured-temp "nachziehst" dann kannst du auch abfragen)...
EDIT: also nur on/off erweitern reicht (weil genericDeviceType Thermostat) leider nicht, sorry. Du brauchst noch ein homeBridgeMapping was alexa-fhem "sagt" wie ein/aus gehen ;)
EDIT: wenn du bestimmte Schritte oder Grenzen etc. bei der Temp willst, dann kannst du das auch entsprechend per homeBridgeMapping angeben. Einfach das on/off-Mapping "erweitern"... Hier sind Beispiele: https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa#Ger.C3.A4te_im_FHEM-Webfrontend_zuweisen oder hier:https://wiki.fhem.de/wiki/Alexa_und_Mappings#homebridgeMapping
Gruß, Joachim
Hmmm,
wenn ich diesen, Deinen letzten Dummy nehme, antwortet Alexa auf "schalte Klimaanlage ein (oder auf aus)" "Klimaanlage unterstützt das nicht"
Temp. kann man wählen.
Fhem zuvor rebootet und Gerät bei Alexa-online erst entfernt und neu suchen lassen.
Das Light-Dummy hat eigentlich funktioniert und trägt den aktuellen Zustand in sein Reading "state" ein.
Wenn ich Dich richtig verstanden habe, ist dieses Reading nicht so leicht weiter zu verarbeiten ?!?!??
Zur Not bastele ich mir acht einzelne notify, die auf den Dummy reagieren. :-\
*
Also der dummy den ich gepostet habe hat bei mir funktioniert!
Temperatur UND ein/aus!
Hast du ihn mal über die Weboberfläche ein/aus geschaltet!?
(sollte aber eigentlich in den set bei raw definition passiert sein! Hast du die raw defintion auch KOMPLETT eingegeben!?)
Das Gerät noch mal aus Alexa-App gelöscht!?
Alexa-Modul -> reload (reicht)
Und dann neu suchen lassen!?
EDIT: poste doch mal ein aktuelles list von dem Temp-Dummy...
Gruß, Joachim
Hallo Joachim,
also ich habe jetzt eine Lösung mit dem Light-Dummy, einem notify der den Setbefehl für den IR-Blaster mit Hilfe der $EVENT Variable auslöst.
*
Auch gut ;)
Aber anders muss eigentlich auch gehen :)
Jetzt hast du halt in der Alexa-App eine Lampe statt einem Thermometer (gut mir wär's auch egal, ich kuck da eh nie rein ;) )...
...und eine Abfrage der Temp geht so wohl auch (eher) nicht...
Kannst ja (trotzdem) ein [gelöst] vorne an den ersten Post dran pappen, danke. :)
Achja und (wenn du willst) gerne auch deine Lösung posten...
Auch wenn mir die Lösung nicht wirklich gefällt ;)
Gruß und viel Spaß, Joachim
Hallo Joachim,
ich kanns halt nicht besser :(
Die Lösung:
Der Dummy:
defmod WZ_Klima dummy
attr WZ_Klima alexaName Klimaanlage
attr WZ_Klima genericDeviceType light
attr WZ_Klima homebridgeMapping Brightness=state,cmd=
attr WZ_Klima room 01-Wohnzimmer,Technik,Test
attr WZ_Klima setList :slider,0,1,100 on off
Das Notify:
defmod WZ_Klimaanlage notify WZ_Klima set IRWZ _send IR_KLIMA$EVENT
Funktioniert prima, ja und wie Du schon sagst, in der AlexaAPP eine Lampe :-\
*
Zitat von: CatWeazle am 26 Juni 2020, 19:00:50
ich kanns halt nicht besser :(
War (sicher) nicht als "Vorwurf" gedacht ;)
Und: ich bin jetzt auch kein "Profi"...
UND: für DICH muss es passen! :)
Gruß, Joachim
ZitatWar (sicher) nicht als "Vorwurf" gedacht ;)
Habe ich auch nicht so verstanden, alles gut.
Ich finde es gut, dass Du so hilfsbereit bist.
Ohne unser hin und her hätte ich es sicher nicht geschafft.
Auch wenn meine Lösung vielleicht unkonventionell ist, ich habe wieder etwas gelernt, was ich später auch warten kann.
Nochmal Vielen Dank und beste Grüße
Michael
Zitat von: CatWeazle am 26 Juni 2020, 19:27:10
Auch wenn meine Lösung vielleicht unkonventionell ist, ich habe wieder etwas gelernt, was ich später auch warten kann.
Hallo Michael,
das ist das wichtigste!!
Gruß, Joachim
So, nun will ich doch keine Lampe mehr ;)
- - - - Code war fehlerhaft ! ich bleibe bei der Lampe - - - -
defmod WZ_Klimatest notify dmThermostat set Telegram msg IR_KLIMA$EVENT (Ausgabe per Telegram)
Funktioniert, zum testen die Ausgabe -> Telegram
*
Testest du nun selber rum und kommst weiter...
...oder brauchst du Hilfe!?
Aber: Thermostat und Brightness mag "funktionieren" aber naja... ;)
Ich würde "meinen" Dummy nehmen und zwar KOMPLETT SO in raw definition eingeben.
EDIT: also den hier https://forum.fhem.de/index.php/topic,112421.msg1067939.html#msg1067939
Dann nachträglich deinen slider (also setList) ergänzen...
Wichtig ist und steht im Wiki!!!
EDIT: https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa#Ger.C3.A4te_im_FHEM-Webfrontend_zuweisen
Zur Erkennung müssen entsprechende Readings vorhanden sein.
Reicht dies nicht, muss eben mit homeBridgeMapping "geholfen" werden.
genericDeviceType unterstützt, falls nicht autom. erkannt wird...
In deinem Fall ("mein" dummy):
genericDeviceType Thermostat "schubst" in die gewollte Richtung
sind in setList UND als Reading 'desired-temp' (und 'measured-temp') vorhanden (kann man entweder durch "mein" raw definition erreichen, da stehen entsprechende "set Anweisungen" drin oder per setreading Klima desired-temp 20 [egal welcher Wert, hauptsache es gibt ein entspr. Reading] bzw. setreading Klima measured-temp 20)...
Dann sollte alexa-fhem und Alexa ein Thermostat erkennen und du solltest mittels: "Alexa stelle Klima auf 25 Grad" den dummy schalten können...
Da du noch on/off willst, ein Thermostat das aber "einfach so" nicht kann brauchst du eben "mein" homeBridgeMapping für on/off
UND eben entsprechend den state mit on (oder off), also wieder: entweder einmal den dummy per Web "schalten", damit das Reading passt ODER eben "meine" raw definition, da ist ja eine set Anweisung drin...
EDIT: drum wollte ich ja ein list sehen, um zu sehen, ob die entsprechenden Readings auch vorhanden sind! Wenn nicht -> dann geht auch die Erkennung nicht...
Und vorher würde ich:
Klima aus der Alexa App löschen
Klima dumm löschen
alexa-fhem -> reload
Dann eben "meinen" dummy in raw definition eingeben
alexa-fhem -> reload
Und Alexa suchen lassen...
(selbst wenn sie sagt [macht "meine" auch ab und an] keine Geräte gefunden, trotzdem mal probieren zu steuern ;) )
EDIT: bzgl. deines notify: für einen dummy ok, weil da normalerweise "nichts passiert" (bzgl. Events) und der auch (normalerweise) nicht viele Readings hat, die Events erzeugen. Aber unter anderen Umständen reagiert dein notify sehr häufig, daher empfiehlt sich ein RegEx was etwas "eingränzender" ist... Eigentlich sollte "mein" notity auch reagieren und zwar eben nur auf die vorhandenen/benötigten Readings. Wie geschrieben in DIESEM Fall ist da kein Unterschied, weil "mein" notify ja auch auf "alle Readings reagiert" (mehr gibt es ja nicht ;) ) aber wenn man sich gleich angewöhnt es "richtig" zu machen, gibt es "später" (bei anderen Devices) weniger "Ärger" (nur meine Meinung und ein Anmerkung ;) )...
Gruß, Joachim
Ich bekomme es einfach nicht hin.
Alles gelöscht, das Gerät bei Alexa entfernt, FHEM-Update gemacht.
Ergebnis: Mit deinem Dummy kann ich die Temp. regeln, aber auf ein oder aus bekomme ich zur Antwort ""Klimaanlage unterstützt das nicht"
In der HandyApp ist auch kein Button für ein und aus, nur mittig die aktuelle Temp., links ein (-) und rechts daneben ein (+)
Ich bleibe bei der Lampenlösung.
Trotzdem nochmal vielen Dank.
*
Wenn du (endlich mal) ein list posten würdest könnte ich schauen... ;)
Welche Version von alexa-fhem läuft!?
Gruß, Joachim
Hallo Joachim,
okay, dann weiter ;)
alexa-fhem version 0.5.51
39_alexa.pm 21651 2020-04-12 18:44:12Z justme1968
*
Und das Wichtigste!?
Das list!?
Gruß, Joachim
Here we are ... ...
Internals:
FD 4
FUUID 5d754359-f33f-b846-a6c2-e06cbd0c1434a4c1
FVERSION 39_alexa.pm:0.216510/2020-04-12
LAST_START 2020-06-28 22:35:48
NAME Alexa
NOTIFYDEV global,global:npmjs.*alexa-fhem.*
NR 72
NTFY_ORDER 50-Alexa
PARTIAL
PID 8696
STARTS 1
STATE running /usr/local/bin/alexa-fhem
TYPE alexa
active 0
alexa-fhem version 0.5.51
currentlogfile ./log/alexa-2020-06-28.log
logfile ./log/alexa-%Y-%m-%d.log
CoProcess:
cmdFn alexa_getCMD
name alexaFHEM
state running /usr/local/bin/alexa-fhem
READINGS:
2020-06-28 22:35:48 alexaFHEM running /usr/local/bin/alexa-fhem
2020-06-28 22:35:57 alexaFHEM.ProxyConnection running; SSH connected
2019-09-08 23:00:33 alexaFHEM.bearerToken crypt:***************
2019-09-08 23:00:33 alexaFHEM.skillRegKey crypt:***************
helper:
Attributes:
alexaFHEM-config ./alexa-fhem.cfg
alexaFHEM-log ./log/alexa-%Y-%m-%d.log
alexaMapping #Characteristic=<name>=<value>,...
On=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um
Brightness=verb=stelle,property=helligkeit,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent
Hue=verb=stelle,valuePrefix=auf,values=rot:0;grün:128;blau:200
Hue=verb=färbe,values=rot:0;grün:120;blau:220
Saturation=verb=stelle,property=sättigung,valuePrefix=auf,values=AMAZON.NUMBER
Saturation=verb=sättige,values=AMAZON.NUMBER
TargetPosition=verb=mach,articles=den;die,values=auf:100;zu:0
TargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent
TargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad
Volume:verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent
#Weckzeit=verb=stelle,valuePrefix=auf;für,values=AMAZON.TIME,valueSuffix=uhr
alexaTypes #Type=<alias>[,<alias2>[,...]]
light=licht,lampen
blind=rolladen,rolläden,jalousie,jalousien,rollo,rollos
devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop
echoRooms #<deviceId>=<room>
fhemIntents #IntentName=<sample utterance>
gutenMorgen=guten morgen
guteNacht=gute nacht
icon alexa
nrarchive 5
persons #<personId>=<name>
room Alexa,Technik
stateFormat alexaFHEM
Ich wollte eins von DEINEM dummy, der (angeblich) nicht funktioniert... ;)
...und aber wie meiner sein soll(te)...
UND: nimm deine crypts raus!!
Gruß, Joachim
Also, gerade alles neu gemacht, mit deinem Dummy.
Vorab überall gelöscht, auch das Gerät online bei Amazon/Smarthomegeräte.
FHEM vor und nach dem Löschen des Dummys und nach neuinstallation des Dummys neu gesartet (shutdown restart)
defmod dmThermostat dummy
attr dmThermostat alexaName Klima
attr dmThermostat genericDeviceType thermostat
attr dmThermostat homebridgeMapping homebridgeMapping On:reading=state,cmdOn=on,cmdOff=off
attr dmThermostat readingList desired-temp measured-temp
attr dmThermostat room Test
attr dmThermostat setList on off desired-temp measured-temp
setstate dmThermostat on
setstate dmThermostat 2020-06-25 21:03:05 desired-temp 20
setstate dmThermostat 2020-06-25 20:42:21 measured-temp 20
setstate dmThermostat 2020-06-26 18:04:48 state on
Internals:
FUUID 5ef9111e-f33f-b846-90a1-b7e25f88bcc00d85
NAME dmThermostat
NR 835
STATE on
TYPE dummy
READINGS:
2020-06-25 21:03:05 desired-temp 20
2020-06-25 20:42:21 measured-temp 20
2020-06-26 18:04:48 state on
Attributes:
alexaName Klima
genericDeviceType thermostat
homebridgeMapping homebridgeMapping On:reading=state,cmdOn=on,cmdOff=off
readingList desired-temp measured-temp
room Test
setList on off desired-temp measured-temp
Ergebnis:
Mit deinem Dummy kann ich die Temp. regeln, aber auf ein oder aus bekomme ich zur Antwort ""Klimaanlage unterstützt das nicht"
In der HandyApp ist auch kein Button für ein und aus, nur mittig die aktuelle Temp., links ein (-) und rechts daneben ein (+)
In der FHEM Web Oberfläche funktioniert allerdings alles!
*
Per Sprachanweisung funktioniert Temperaturwahl, aber aus und ein nicht.
Du hast ein homeBridgeMapping zu viel!!
Also das Wort nur 1x!
Wenn es von meinem dummy kam: sorry!
EDIT: wobei ich dachte ich hätte das aus meinem funktionierenden dummy kopiert...
EDIT: hab ich auch und Mist, ja hatte ich auch drin. Und ich kann nur sagen: bei mir geht (trotzdem) "Alexa schalte Klima ein" bzw. "Alexa schalte Klima aus"...
EDIT: du hast aber kein anderes "Gerät" mehr mit dem alexaNamen Klima!?
Gruß, Joachim
Ja, war schon in Deinem Dummy falsch.
Nun ist es so:
defmod dmThermostat dummy
attr dmThermostat alexaName Klima
attr dmThermostat genericDeviceType thermostat
attr dmThermostat homebridgeMapping On:reading=state,cmdOn=on,cmdOff=off
attr dmThermostat readingList desired-temp measured-temp
attr dmThermostat room Test
attr dmThermostat setList on off desired-temp measured-temp
setstate dmThermostat on
setstate dmThermostat 2020-06-25 21:03:05 desired-temp 20
setstate dmThermostat 2020-06-25 20:42:21 measured-temp 20
setstate dmThermostat 2020-06-26 18:04:48 state on
In FHEM geändert und FHEM neu gestartet, online bei Amazon Gerät erst gelöscht dann neu gesucht.
Das Ergebnis bleibt, unverändert :(
Hmmm, dann weiß ich auch nicht...
Dann hilft nur noch der Ausschnitt aus dem alexa-fhem Log wo DEIN Klima gefunden wird im Vergleich zu meinem...
Und dann evtl. noch ein Schaltvorgang...
Gruß, Joachim
Mein Bester,
lass mal gut sein, meine Klimaanlage ist eine prima Lampe.
Alles funktioniert, ob in der Web-Oberfläche, auf dem Smartphone oder per Sprachanweisung, ist eben nur eine Lampe :)
Da ich sie in der Regel per Sprache steuere, sehe ich das Lampensymbol eh nicht :) okay, wenn ich dabei auf den Echo-Show sehe, dann schon :)
Eines würde mich doch interessieren, wie sieht deine Klima in der Smartphone APP aus ?
Beste Grüße und vielen Dank für Deine Mühe.
Mike
Hmmm, nicht anders wie deins!?
Gruß, Joachim
Doch noch ein Unterschied:
Zitat
alexa-fhem version 0.5.51
Ich habe 0.5.55
Hat nichts mit System- oder fhem-Update zu tun, musst du separat updaten!
Wie, steht im Wiki...
Vielleicht hilft ja das...
Gruß, Joachim
Hallo Joachim,
mit alexa-fhem version 0.5.55 funktioniert es wie von Dir beschrieben.
Aber, ein letztes kleines Problem ... ...
Um zu überprüfen was ausgegeben wird, nutze ich gerne den Telegram-Bot
defmod WZ_Klimatest notify dmThermostat set Telegram msg IR_KLIMA$EVENT
Ausgabe:
IR_KLIMAon
IR_KLIMAoff
IR_KLIMAdesired-temp: 22
Brauche aber:
IR_KLIMAon
IR_KLIMAoff
IR_KLIMA22
Hmmm, ggf. müsste ich meine IR-Blaster Befehle entsprechend anpassen, damit sie mit IR_KLIMAdesired-temp: 22 umgehen können .
*
Da on und off anders als die 22 Grad kommen (also in $EVENT "stehen") musst du wohl splitten...
...oder noch genauer im Notify "RegExen" (da bin ich aber auch kein Spezialist)...
Bzw.: überhaupt mal RegExen!! Ein notify auf "nur" Device -> nicht gut! Normalerweise Device:RegEx...
Evtl. mal (so wie ich es denke ich mal bereits angegeben hatte ;) ):
defmod WZ_Klimatest notify dmThermostat:(on|off|desired-temp).* set Telegram msg IR_KLIMA$EVENT
Oder eben eine kleine Sub mit split:
sub myKlima($)
{
my ($Event) = @_;
Log3(undef,1,"myKlima Event: $Event");
if($Event =~ m/desired-temp/)
{
$Event = (split(/ /,$Event))[1];
Log3(undef,1,"myKlima Event: $Event");
}
fhem("set Telegram msg IR_KLIMA$Event");
}
Und dann eben das notify:
defmod WZ_Klimatest notify dmThermostat {myKlima($EVENT)}
Wobei man aber ein notify mit einer RegEx welche nur auf das Device geht normalerweise NICHT nehmen sollte...
Bei einem dummy (den man am Ende noch "manuell" schaltet und der nur wenige Zustände hat) noch "i.O." aber bei anderen/"normalen" Devives: NICHT machen!
Am besten mal den Eventmonitor öffnen und für alle 3 Events ein Notify generieren lassen, was GENAU passt.
Und dann eben die "Gesamtmenge" mittels Device:(RegEx1|RegEx2|RegEx3) "verbinden"...
Wobei ich ja lieber eine Log-Funktion nutze...
Da kann man deutlich mehr ausgeben und auch "Schritte" verfolgen...
...aber: musst du wissen... ;)
Gruß, Joachim
okay,
auch mit:
defmod WZ_Klimatest notify dmThermostat:(on|off|desired-temp).* set Telegram msg IR_KLIMA$EVENT
ist das Ergebnis:
IR_KLIMAon
IR_KLIMAoff
IR_KLIMAdesired-temp: 22
Gut kommen wir zum split per Sub!
Noch nie gemacht, da muss ich mich erst einlesen, habe nicht einmal eine Idee auf welchem Weg ich sie in FHEM einfügen kann.
Mal in die Wiki schauen.
Grüße
Mike
Ach ja,
jetzt auch korrekt in der APP :)
Zitat von: CatWeazle am 29 Juni 2020, 18:48:48
Gut kommen wir zum split per Sub!
Noch nie gemacht, da muss ich mich erst einlesen, habe nicht einmal eine Idee auf welchem Weg ich sie in FHEM einfügen kann.
Mal in die Wiki schauen.
Guckst du: https://wiki.fhem.de/wiki/99_myUtils_anlegen
Hast du mal das mit dem Eventmonitor versucht!?
https://wiki.fhem.de/wiki/Event_monitor
https://wiki.fhem.de/wiki/Event_monitor#Vorgehensweise_beim_Anlegen_eines_Ger.C3.A4tes
Du kannst auch alle 3 GENAU passenden notify posten, dann bauen wir zusammen um...
Gruß, Joachim
Also ich hab mal rumprobiert (habe den dummy ja selbst ;) )...
Folgendes sollte gehen:
defmod nThermostat notify dmThermostat:(state|desired-temp).* set Telegram msg IR_KLIMA$EVTPART1
attr nThermostat addStateEvent 1
EDIT: durch addStateEvent wird auch "state" im Event mitgegeben. Dadurch steht in $EVTPART1 dann on off oder eben die Temperatur-Zahl...
Gruß, Joachim
Hallo Joachim, Perfekt!
Damit es funktioniert ist es wichtig, das keine frühere als die Alexa-FHEM Version 0.5.55 installiert ist.
Zu Deinem Dummy:
defmod dmThermostat dummy
attr dmThermostat alexaName Klima
attr dmThermostat genericDeviceType thermostat
attr dmThermostat homebridgeMapping On:reading=state,cmdOn=on,cmdOff=off
attr dmThermostat readingList desired-temp measured-temp
attr dmThermostat room Test
attr dmThermostat setList on off desired-temp measured-temp
setstate dmThermostat on
setstate dmThermostat 2020-06-25 21:03:05 desired-temp 20
setstate dmThermostat 2020-06-25 20:42:21 measured-temp 20
setstate dmThermostat 2020-06-26 18:04:48 state on
Und deinem Notify (gekürzt funktioniert auch)
defmod nThermostat notify dmThermostat set Telegram msg IR_KLIMA$EVTPART1
attr nThermostat addStateEvent 1
Es funktioniert alles wie es soll.
Wenn ich jetzt noch komplett verstanden hätte, wie "addStateEvent 1" und "$EVTPART1" zusammenarbeiten hätte ich auch noch was dazugelernt ::)
Auf jeden Fall, besten Dank!
*
Zitat von: CatWeazle am 30 Juni 2020, 09:05:19
Es funktioniert alles wie es soll.
...
Auf jeden Fall, besten Dank!
Na dann! :)
Gerne!
Zitat von: CatWeazle am 30 Juni 2020, 09:05:19
Wenn ich jetzt noch komplett verstanden hätte, wie "addStateEvent 1" und "$EVTPART1" zusammenarbeiten hätte ich auch noch was dazugelernt ::)
Einfach mal mit und ohne das Attribut im Eventmonitor schauen wie die Events aussehen bei on/off...
Es steht dann "zusätzlich" eben state mit drin, somit "wandert" dann on/off in den "zweiten Teil" des $EVENT, somit nach $EVTPART1 ($EVTPART0, $EVTPART1, etc. sind "gesplittete Teile des $EVENT) und dort war ja die Temperatur-Zahl "schon immer", weil da im $EVENT eben desired-temp 22 stand (also $EVENT: desired-temp 22 / $EVTPART0: desired-temp / $EVTPART1: 22)...
Gruß, Joachim
Top,
ausprobiert und verstanden :)
Beste Grüße
Mike
Hi Mike,
dann "sehen" wir uns ja hier so schnell nicht wieder ;)
Viel Spaß noch, Joachim