Hallo und frohes Neues in die Runde,
ich komme hier leider nicht weiter und habe schon alles mögliche ausprobiert. Im Forum und Wiki geht es alles mehr auf Homekit aus. Und zwar habe ich über ESP Easy (D1 mini) 3 Bewegungsmelder, welche ich gerne auch über die Alexa Routinen steuern möchte. Die Geräte werden mir schon als Bewegungsmelder in Alexa angezeigt, jedoch funktionieren sie nicht.
Hierzu ein List vom Bewegungsmelder (readingsproxy)
ZitatInternals:
DEF ESPEasy_ESP_Kueche:Bewegungsmelder_K_Kiste
DEVICE ESPEasy_ESP_Kueche
FUUID 5eddfedd-f33f-3317-4205-5916c9bb249d8a43
NAME Bewegungsmelder_K_Kiste
NOTIFYDEV ESPEasy_ESP_Kueche,global
NR 92
NTFY_ORDER 50-Bewegungsmelder_K_Kiste
READING Bewegungsmelder_K_Kiste
STATE off
TYPE readingsProxy
CONTENT:
ESPEasy_ESP_Kueche 1
READINGS:
2020-12-31 09:36:19 motion 0
2020-12-31 09:36:19 state off
Attributes:
alexaName Bewegungsmelder_Keller
alexaProactiveEvents 1
devStateIcon on:motion_detector@red off:motion_detector@green
genericDeviceType MotionSensor
homebridgeMapping MotionDetected=motion,values=0:off;1:on
room Keller,alexa
userReadings motion {if(ReadingsVal("Bewegungsmelder_K_Kiste","state","") eq "off") {return "0"} else {return "1"} },
In Alexa sieht das ganze wie folgt aus:
Anlage
Ich habe schon viel rumgefummelt um das ganze über das statereading irgendwie hinzubiegen jedoch keine Chance.
Wichtig, ich habe kein HOMEKIT! Ich möchte es lediglich über Alexa erkennen.
Vielleicht habe ihr ja die Lösung parat.
Gruß
Steffen
Hm, ich bin jetzt auch kein homebridgeMapping-Spezialist.
Ich hab mal bei meinem ContactSensor "gespickt" (der funktioniert als Trigger für Routinen / falls du das gemeint hast):
homebridgeMapping ContactSensorState=state,values=closed:CONTACT_DETECTED;open:CONTACT_NOT_DETECTED
Daher würde ich eher sowas mal versuchen:
homebridgeMapping MotionSensorState=motion,values=1:MOTION_DETECTED;0:MOTION_NOT_DETECTED
Du könntest aber auch ohne userReadings (wenn du es nur deshalb hast) direkt auf state gehen (siehe mein Beispiel).
Aber bzgl. MotionSensorState und MOTION_DETECTED bzw. MOTION_NOT_DETECTED bin ich nicht sicher...
Evtl. reicht auch (schon) DETECTED oder NOT_DETECTED
EDIT: bzw. laut Wiki (klingt aber "eigenartig") auch sowas wie MotionDetected=motion,values=1:1;0:0 oder MotionDetected=state,values=on:1;off:0 bzw. steht dort auch, dass wenn ein Reading 'motion' vorhanden wäre sollte es autom. gehen. Aber verm. passen die Werte 0 und 1 nicht? Ansonsten eben im alexa-fhem Log (NICHT fhem Log!) nachschauen bei der Erkennung (reload oder restart von alexa-fhem). Und nach Änderungen nat. reload alexa-fhem und besser auch das Gerät bei Alexa entfernen und neu suchen (mindestnens bei "größeren" Änderungen)...
Gruß, Joachim
Zitat von: steffen83 am 01 Januar 2021, 19:29:33
Hallo und frohes Neues in die Runde,
Frohes neues!
Ich bin nur neugierig, weil ich's nicht verstehe:
Was ist Dein Ziel?
Vielleicht machst du ja etwas interessantes, was ich bisher noch nicht auf dem Schirm hatte.
Gruß
Micky
Ich nehme an: wenn Bewegung, dann starte eine Routine und das konfiguriert in der Alexa-App
(weil in fhem geht das mit dem echodevice ja schon lange ;) )
Geht ja mittlerweile -> proactive Events
Habe ich mit meinem Fenster-Sensor auch schon mal gemacht (aber nur "rumgespielt")...
...aber ich bin eher "Verfechter" von: eine Stelle für Automatismen...
Sonst wird es irgendwann unübersichtlich...
Gruß, Joachim
Danke, ich prüfe mal ob es geht.
Wäre ja nur, falls meine Frau das mal machen möchte...
ContactSensorState=state,values=on:CONTACT_DETECTED;off:CONTACT_NOT_DETECTED
homebridgeMapping MotionSensorState=motion,values=1:MOTION_DETECTED;0:MOTION_NOT_DETECTED
geht leider beides nicht. Ich sehe die zwar aber der reagiert nicht
noch ideen?
Hast du (nur zum Test) mal einen ContactSensor (genericDeviceType) gemacht und mit meinem Mapping probiert?
Oder einfach mal mit diesem dummy:
EDIT: hier zur Sicherheit als "RawDef":
defmod dmAlleFenster dummy
attr dmAlleFenster alexaName alle Fenster
attr dmAlleFenster alexaProactiveEvents 1
attr dmAlleFenster genericDeviceType contact
attr dmAlleFenster homebridgeMapping ContactSensorState=state,values=closed:CONTACT_DETECTED;;open:CONTACT_NOT_DETECTED
attr dmAlleFenster setList open closed
setstate dmAlleFenster 2021-01-01 15:29:23 state closed
Und dann noch den dummy mal auf open oder closed setzen...
EDIT: sollte das setstate der RawDef gemacht haben ;)
Welche Version von alexa-fhem hast du?
Ich hatte vor einiger Zeit auch jemanden hier, der auch einige Zeit gebraucht hat bevor das (mein dummy) funktioniert hat.
Vielleicht mal "sacken" lassen auf Amazon-Seite ;)
Gruß, Joachim
Hmm schon komisch, mit dem Dummy geht es auch nicht
alexa-fhem version 0.5.55
habe ihn auch mal als security gemacht, geht auch nicht...
Aktuell ist 0.5.57 (oder sogar schon 0.5.58)
Aktualisieren geht über die Linux-Console (siehe Wiki ganz unten)...
Aber bevor du updatest: welches OS? Buster (und aktuell)? Wenn nicht dann besser erst mal nicht alexa-fhem updaten... ;)
Aber wie geschrieben: auch bei anderen die den dummy (testweise) verwendet haben hat es gedauert bevor das geklappt hat.
Ein restart oder reload alexa hast du gemacht und auch neu suchen lassen?
Mehr kann ich da jetzt leider nicht mehr helfen...
Außer: der dummy funktioniert bei mir (habe ich den "anderen" auch immer geschrieben und irgendwann kam dann: und jetzt bei mir auch ;) )...
Gruß, Joachim
So, ich habe den PI mal neugestartet. der Dummy geht jetzt.... aber halt das readingProxy nicht
Mal beim readingsProxy die Attribute meines dummy probiert?
Ansonsten muss ich noch mal schauen wie das mit Motion geht...
...ich kann ja mal so einen readingsProxy (oder dummy) nachbauen...
EDIT: poste doch mal ein "RawDef" deines readingsProxy...
EDIT: aber verm. erst morgen...
Gruß, Joachim
Zitat von: MadMax-FHEM am 01 Januar 2021, 22:00:47
EDIT: sollte das setstate der RawDef gemacht haben ;)
setstate generiert aber kein Event. Somit wird Alexa nicht aktualisiert. Wenn steffen kein "set alexa reload" oder kein Restart von alexa-fhem gemacht hat, passiert dann nichts.
Ja aber der Fensterkontakt geht ja!?
Aber ich komme mit Motion nicht weiter...
...zu dumm dazu ;)
Konnte ja nicht mal das passende genericDeviceType finden.
Glaube nicht, dass 'MotionSensor' richtig ist.
Die anderen sind ja immer nur kurze "Worte": blind, light, switch, ...
Ich habe schon mal mit 'security' gebastelt und 'motion' hab ich auch schon mal probiert aber irgendwie...
Also ich weiß (aktuell) leider nicht weiter, sorry.
Gruß, Joachim
Meine Vermutung, es gibt kein Event bei dem ReadingsProxy aus dem ersten Post, die Readings werden nur "aktualisiert", darum kommt auch nix bei "Alexa" an.
Beim readingsProxy müssen mMn/Erfahrung nach Events erzwungen werden, hier bspw. mit event-on-change-reading state
(Trigger im userReadings hier vermutlich (mein ich) nicht nötig)
Mag sein das ich mich täusche, es auch noch nicht ganz verstanden zu haben, aber der Wert der Temperatur aus diesem readingsProxy bspw.:
defmod rp_WW_temp readingsProxy MQTT2_ebusd_bai:1_Warmwassertemperatur
attr rp_WW_temp alexaName nemo
attr rp_WW_temp comment {fhem("setreading rp_WW_temp temperature $VALUE")}\
\
{fhem("setreading $DEVICE temperature $VALUE")}\
\
CurrentTemperature=state
attr rp_WW_temp event-on-change-reading state
attr rp_WW_temp genericDeviceType thermometer
attr rp_WW_temp homebridgeMapping CurrentTemperature=state
attr rp_WW_temp room Homekit,Sprachsteuerung
setstate rp_WW_temp 45.0
setstate rp_WW_temp 2021-01-02 00:00:38 state 45.0
ist nur wegen dem eocr "Alexa" bekannt.
Naja alles schön und gut ABER: der Fenster dummy geht ja und dass/wie es mit Temperatur etc. geht ist auch klar bzw. zu finden...
Das mit den Events wird dann wichtig, wenn mal der "Rest" passt bzw. klar ist...
Was fehlt: wie muss denn der genericDeviceType für Motion Sensor lauten. Habe (lange) gesucht, konnte aber nirgends was finden...
(gut im Code hab ich noch nicht geschaut)
Genausowenig wie das homebridgeMapping lauten muss...
Habe bei mir ja mit einem dummy "rumgespielt" (und da gibt es Events ;) Fenster geht ja wie geschrieben auch)...
...nur irgendwas mit Motion hab ich nicht hinbekommen... :-\
Gruß, Joachim
genericDeviceType: MotionSensor
homebridgemapping: MotionDetected=...
Also bei mir klappt das schon so wie im ersten Post wsl. angedacht gewesen war.
Die values-Angabe war nur verdreht und wie vermutet klappts nur mit dem eocr-Attribut.
das userreading hab ich zum testen einfach mal rausgelassen:
defmod Bewegungsmelder_K_Kiste readingsProxy du_Testy:state
attr Bewegungsmelder_K_Kiste alexaName keller
attr Bewegungsmelder_K_Kiste event-on-change-reading state
attr Bewegungsmelder_K_Kiste genericDeviceType MotionSensor
attr Bewegungsmelder_K_Kiste homebridgeMapping MotionDetected=state,values=on:1;;off:0
attr Bewegungsmelder_K_Kiste room Test
setstate Bewegungsmelder_K_Kiste on
setstate Bewegungsmelder_K_Kiste 2021-01-02 02:09:58 state on