Hallo zusammen,
ich nutze seit einiger Zeit den FHEM Connector für Amazon Alexa. Aktuell werden nur Lampen und Schalter ein/aus gemacht. Das funktioniert soeit auch super. "Alexa schalte xy ein/aus" führt immer zum gewünschten Ergebnis.
Aber: Schaut man in der Alexa App, so werden Lampen als ein angezeigt, obwohl sie aus sind und umgekehrt. Gleiches auch bei den Schaltern. Nervig wird es dann, wenn man über eine Routine versucht einen Raum abzsuchalten. Es erfolgt nänmlich jetzt ein toggle. Alles was aus war (aber laut alexa ein), wird jetzt tatsächlich ein geschaltet (und bei alexa ist es aus).
Was übersehe ich hier? Auf was schaut Alexa, beim Prüfen ob ein Gerät an bzw aus ist?
Hier auch mal ein Besipiel für ein solches Gerät:
defmod readingsProxy_wohnzimmer_ambilight_bedien readingsProxy S7_DRead_wohnzimmer_ambilight
attr readingsProxy_wohnzimmer_ambilight_bedien userattr lichter lichter_map structexclude
attr readingsProxy_wohnzimmer_ambilight_bedien alexaName Ambilight Wohnzimmer
attr readingsProxy_wohnzimmer_ambilight_bedien genericDeviceType light
attr readingsProxy_wohnzimmer_ambilight_bedien group Beleuchtung
attr readingsProxy_wohnzimmer_ambilight_bedien icon light_led_stripe_rgb
attr readingsProxy_wohnzimmer_ambilight_bedien room Backend->Wohnzimmer,Beleuchtung,Erdgeschoss->Wohnzimmer
attr readingsProxy_wohnzimmer_ambilight_bedien setFn {fhem("set S7_DWrite_wohnzimmer_ambilight_ein_aus trigger")}
attr readingsProxy_wohnzimmer_ambilight_bedien setList on off
attr readingsProxy_wohnzimmer_ambilight_bedien webCmd :
attr readingsProxy_wohnzimmer_ambilight_bedien widgetOverride state:on,off
setstate readingsProxy_wohnzimmer_ambilight_bedien off
setstate readingsProxy_wohnzimmer_ambilight_bedien 2020-03-08 19:55:05 lastCmd off
setstate readingsProxy_wohnzimmer_ambilight_bedien 2020-03-11 12:57:04 state off
fhem sagt eindeutig "off" (was auch stimmt), aber in Alexa steht "ein"
Es gibt bei der S7 nur den setter trigger richtig ? Oder auch on und off, aktuell toggelst du ja auch nur mit dem readingsProxy bei on und off.
Gruß
Thomas
Evtl. valuefn, um den tatsächlichen Status zurück zu lesen!?
Zitat von: https://wiki.fhem.de/wiki/ReadingsProxy
valueFn
valueFn bestimmt, wie sich das Reading state des Readingsproxy berechnet. Ist dieses Attribut nicht gesetzt, so ändert sich das Reading nicht. Ist das Attribut definiert, so sollte es sich um eine Perl-Funktion handeln (d.h. eingerahmt in geschweifte Klammern), die dann definiert, wie sich state ermittelt. Im folgenden Fall
attr <Proxy-device> valueFn {($VALUE == 0)?"off":"on"}
Bzw. poste doch mal ein list.
Gibt es ein "state Reading" und steht dort der richtige Zustand!?
Dort würde alexa-fhem "suchen"... ;)
Wenn der richtige Zustand (du schreibst ja: in fhem stimmt er / also WO in fhem ;) ) in einem anderen Reading steht, dann -> homebridgeMapping
Gruß, Joachim
Bei der S7 gibt es on, off sowie toggle. Aber auf der S7 Seite ist programmiert, dass eine variable getoggelt werden muss, damit der Ausgang ein bzw. aus geht. Quasi Stromstoss-Schaltung.
List liefert mir:
Internals:
DEF S7_DRead_wohnzimmer_ambilight
DEVICE S7_DRead_wohnzimmer_ambilight
FUUID 5d9dd40f-f33f-6829-e071-e6b1e57460ff3076
FVERSION 33_readingsProxy.pm:0.162990/2018-03-01
NAME readingsProxy_wohnzimmer_ambilight_bedien
NOTIFYDEV S7_DRead_wohnzimmer_ambilight,global
NR 181
NTFY_ORDER 50-readingsProxy_wohnzimmer_ambilight_bedien
READING state
STATE off
TYPE readingsProxy
CONTENT:
S7_DRead_wohnzimmer_ambilight 1
Helper:
DBLOG:
state:
DBLogging:
TIME 1583947189.44968
VALUE off
READINGS:
2020-03-08 19:55:05 lastCmd off
2020-03-11 18:19:49 state off
Attributes:
alexaName Ambilight Wohnzimmer
genericDeviceType light
group Beleuchtung
icon light_led_stripe_rgb
room Backend->Wohnzimmer,Beleuchtung,Erdgeschoss->Wohnzimmer
setFn {fhem("set S7_DWrite_wohnzimmer_ambilight_ein_aus trigger")}
setList on off
userattr lichter lichter_map structexclude
webCmd :
widgetOverride state:on,off
Das reading "state" stimmt in fhem. Hier steht immer der richtige Status.
Hmmm, eigenartig.
Weil state ist da und passt (deiner Aussage nach), genericDevicType light sollte mit on/off eigentlich auch zurecht kommen...
genericDeviceType switch hast du schon mal probiert!?
Ansonsten musst du mal im alexa-fhem Log (NICHT fhem Log) schauen was drin steht, wenn du so schaltest, dass es nicht stimmt...
Zu erreichen ist das alexa-fhem Log über das Alexa-Device...
Oder halt hier posten...
Welche Version von alexa-fhem hast du?
Steht u.a. im Alexa-Device oder beim Start von alexa-fhem im alexa-fhem Log...
EDIT: ansonsten gibt es mind. einen Thread bzgl. S7 und Alexa (allerdings ohne readingsProxy, wenn ich mich recht erinnere ;) )...
EDIT2: hier mal ein list von einem readingsProxy der tut Internals:
DEF Schaltaktor_Buero_Licht:channel0
DEVICE Schaltaktor_Buero_Licht
FUUID 5da1942f-f33f-753d-97de-0cd8e690c4ffdaed
NAME Licht_Buero
NOTIFYDEV global,Schaltaktor_Buero_Licht
NR 1847
NTFY_ORDER 50-Licht_Buero
READING channel0
STATE off
TYPE readingsProxy
CONTENT:
Schaltaktor_Buero_Licht 1
READINGS:
2020-03-08 18:05:41 lastCmd on
2020-03-10 00:42:45 state off
Attributes:
alexaName Bürolicht
alias Bürolicht
event-on-change-reading .*
genericDeviceType switch
group Beleuchtung
icon light_pendant_light_round
room Büro,alexa
setList off on
webCmd off:on
Gruß, Joachim