Hallo zusammen,
ich versuche gerade mein Garagentor in Homekit mit den realen states von zwei esp8266 mit reed Kontakten als Tor auf und Tor zu Zustand darzustellen. Kurz zum aktuellen Stand. Ich habe drei Devices:
1.esp8266 Taster um das Garagentor zu öffen/schliesen
2.esp8266 Kontakt Tor auf
3.esp8266 Kontakt Tor zu
bei den beiden Kontakten wäre das State:"Switch" wohl das was man in das mapping einbinden würde, bekomme das aber irgendwie nicht zusammen.
Internals:
.eventMapCmd on:noArg off:noArg
DEF 192.168.178.109 80 espBridge Garagentor_Schalter
ESP_BUILD 140
ESP_SLEEP 0
ESP_UNIT 0
ESP_VERSION 9
HOST 192.168.178.109
IDENT Garagentor_Schalter
INTERVAL 300
IODev espBridge
LASTInputDev espBridge
MSGCNT 4
NAME ESPEasy_Garagentor_Schalter
NOTIFYDEV global
NR 387
NTFY_ORDER 50-ESPEasy_Garagentor_Schalter
PORT 80
STATE absent
SUBTYPE device
TYPE ESPEasy
VERSION 1.38
espBridge_MSGCNT 4
espBridge_TIME 2018-04-26 19:20:21
.attraggr:
.attrminint:
READINGS:
2018-04-26 19:20:21 Switch off
2018-04-26 19:30:56 presence absent
2018-04-26 19:30:56 state absent
helper:
fpc 1524762049
pm:
Encode 1
JSON 1
received:
Attributes:
IODev espBridge
Interval 300
alias Garagentor Schalter
eventMap /gpio 2 on:on/gpio 2 off:off/
genericDeviceType switch
group ESPEasy Device
presenceCheck 1
readingSwitchText 1
room ESPEasy,Homekit
setState 100
sortby 01
webCmd on:off
Internals:
DEF 192.168.178.128 80 espBridge Garagentor
ESP_BUILD 140
ESP_SLEEP 0
ESP_UNIT 0
ESP_VERSION 9
HOST 192.168.178.128
IDENT Garagentor
INTERVAL 60
IODev espBridge
LASTInputDev espBridge
MSGCNT 2
NAME ESPEasy_Garagentor
NOTIFYDEV global
NR 332
NTFY_ORDER 50-ESPEasy_Garagentor
PORT 80
STATE absent
SUBTYPE device
TYPE ESPEasy
VERSION 1.38
espBridge_MSGCNT 2
espBridge_TIME 2018-04-26 19:20:20
.attraggr:
.attrminint:
READINGS:
2018-03-31 15:53:07 Sensor off
2018-04-26 19:20:20 Switch off
2018-04-26 19:34:15 presence absent
2018-04-26 19:34:15 state absent
helper:
fpc 1524762049
pm:
Encode 1
JSON 1
received:
Attributes:
IODev espBridge
Interval 60
alias Garagentor auf
group ESPEasy Device
presenceCheck 1
readingSwitchText 1
room ESPEasy
setState 3
Internals:
DEF 192.168.178.107 80 espBridge Garage_Tor_zu
ESP_BUILD 140
ESP_SLEEP 0
ESP_UNIT 0
ESP_VERSION 9
HOST 192.168.178.107
IDENT Garage_Tor_zu
INTERVAL 60
IODev espBridge
LASTInputDev espBridge
MSGCNT 2
NAME ESPEasy_Garage_Tor_zu
NOTIFYDEV global
NR 391
NTFY_ORDER 50-ESPEasy_Garage_Tor_zu
PORT 80
STATE absent
SUBTYPE device
TYPE ESPEasy
VERSION 1.38
espBridge_MSGCNT 2
espBridge_TIME 2018-04-26 19:20:37
.attraggr:
.attrminint:
READINGS:
2018-04-26 19:20:37 Switch on
2018-04-26 19:34:32 presence absent
2018-04-26 19:34:32 state absent
helper:
fpc 1524762049
pm:
Encode 1
JSON 1
received:
Attributes:
IODev espBridge
Interval 60
alias Garagentor zu
group ESPEasy Device
presenceCheck 1
readingSwitchText 1
room ESPEasy
setState 3
Ist wahrscheinlich für euch relativ einfach aber ich bekomme das homebridgemapping nicht zusammen, ich hätte jetzt gerne das mir der Schalter in meinem Handy "eingeschaltet" bei Tor auf und "ausgeschaltet" bei Tor zu über die reed Kontakt state anzeigt. Wie bekomme ich das hin? Im Moment habe ich einen WaitTimer auf dem Torschalter so das der Zustand nach zwei Sekunden auf off gestellt wird, da ich das Tor über Taster auf und zu mache. Ich würde dann aber wenn das mapping richtig funktioniert den Schalter bei auf und zu so setzen das er den Taster am Garagetormotor triggert. Ich kann mir ja dann anhand des funktionierenden mappings anhand des Schalters ansehen ob das Tor auf oder zu ist.
Hi,
ich habe das so gelöst...
Dummy Garage
Die states der Schalter werden an den Dummy übertragen.
Der Dummy hat des Attribut genericDeviceType garage
als setlist habe ich auf/zu Homekit hat bei mir das automatisch den state erkannt.
Grüßle
Pascal
Hallo raiderxxl kannst du mir vielleicht eine List von deinem device schicken dann kann ich das für mich zurecht basteln Danke.
Bitte...
defmod Garage dummy
attr Garage devStateIcon auf:fts_garage_door_10 zu:fts_garage_door_100
attr Garage genericDeviceType garage
attr Garage group Garagensteuerung
attr Garage icon fts_garage
attr Garage room Garage,Homekit
attr Garage setList auf zu
attr Garage webCmd auf:zu
defmod Gargentor_Sensor_unten_DOIF_1 DOIF ([Gargentor_Sensor_unten:"^on$"]) (set Garage_notify_.* inactive;;setreading Garage state auf;;set Garage_notify_.* active)
attr Gargentor_Sensor_unten_DOIF_1 alias Setzt Status Garage auf Auf wenn Sensor öffnet
attr Gargentor_Sensor_unten_DOIF_1 do always
attr Gargentor_Sensor_unten_DOIF_1 group Automator
attr Gargentor_Sensor_unten_DOIF_1 room Garage
defmod Gargentor_Sensor_unten_DOIF_2 DOIF ([Gargentor_Sensor_unten:"^off$"]) (set Garage_notify_.* inactive;;setreading Garage state zu;;set Garage_notify_.* active)
attr Gargentor_Sensor_unten_DOIF_2 alias Setzt Status Garage auf Zu wenn Sensor schließt
attr Gargentor_Sensor_unten_DOIF_2 do always
attr Gargentor_Sensor_unten_DOIF_2 group Automator
attr Gargentor_Sensor_unten_DOIF_2 room Garage
defmod Garage_notify_1 notify Garage:auf|zu set Sonoff_Switch2 on;;set Garage_Lueften off
attr Garage_notify_1 alias Öffnet und Schließt die Garage
attr Garage_notify_1 group Automator
attr Garage_notify_1 room Garage
Ich weiss der Code ist nicht perfekt aber für mich funktioniert's...
Das erste device ist der Dummy
Die 2 Doifs setzten den Status dabei werden aber auch die doifs deaktiviert die normalerweise die Garage öffnen\schließen.
Das 3te Doif öffnet und schließt das Tor bei mir jeweils auf on da mein device ein Taster ist.
Warum hast du 3 ESP's genommen? reicht da nicht einer?
Grüßle
Pascal
Hallo raiderxxl,
was bezweckst du mit dem device : set Garage_Lueften off?
Dank dir raiderxxl konnte ich das ganze super umsetzen, auch meinen Taster konnte ich super einbinden und habe nun auch in homekit ein Garagentor mit echtem Zustand ob auf oder zu. Musste das ganze nur ein wennig anpassen, weil ich ja zwei Kontakte nutze für zu und für auf. Desweiteren musste ich noch eine notify für den aus Zustand am Schalter anlegen, da ich keinen Taster am ESP definiert habe sondern einen gpio-switch. Ich bin begeistert vielen vielen dank.... ;D
Kurz zu deiner Frage :
ZitatWarum hast du 3 ESP's genommen? reicht da nicht einer?
Grüßle
Habe dort esp8266-01 verbaut und da gibt es ja immer ein Problem beim GPIO0 glaub ich ist das, wenn man den auf low zieht und das device Spannungsfrei ist geht der in den Flash Mode. Sind so meine ersten Bastelversuche mit den kleinen Dingern, da habe ich am Anfang nur den GPIO2 benutzt, da der beim Einschalten nicht high oder low haben muss, da ist es egal. Denke mit nem Nodemcu oder nem 8266-07 hat man da mehr Möglichkeiten alleine wegen der vielen GPIO´s die man nutzen kann.
Hi ich habe noch ein Lüften Programm das ich abreche wenn man wieder schaltet... wenn lüften aus dann werden at's die es noch so gibt gelöscht...
Grüßle
Pascal
Hallo zusammen,
ich musste feststellen das meine DOIF´s nicht auslösen wenn die Sensoren des Tors geschaltet werden und mir somit auch nicht der richtige Zustand des Tors auf oder zu angezeigt wird. Wenn ich CMD manuell im DOIF auslose dann setzt er den Zustand wie in der Command Zeile, allerding reagiert er nicht bei checkall auf die Zustände. Ich glaube ich habe da einen Fehler in der Command Line beim auswerten des readings von den Sensoren. Anbei mein DOIF und mein Torsensor.
Torsensor auf:
Internals:
DEF 192.168.178.128 80 espBridge Garagentor
ESP_BUILD 140
ESP_SLEEP 0
ESP_UNIT 0
ESP_VERSION 9
HOST 192.168.178.128
IDENT Garagentor
INTERVAL 60
IODev espBridge
LASTInputDev espBridge
MSGCNT 13
NAME ESPEasy_Garagentor
NOTIFYDEV global
NR 330
NTFY_ORDER 50-ESPEasy_Garagentor
PORT 80
STATE absent
SUBTYPE device
TYPE ESPEasy
VERSION 1.38
espBridge_MSGCNT 13
espBridge_TIME 2018-04-30 12:15:31
.attraggr:
.attrminint:
READINGS:
2018-03-31 15:53:07 Sensor off
2018-04-30 12:15:31 Switch on
2018-04-30 12:28:43 presence absent
2018-04-30 12:28:43 state absent
helper:
fpc 1524997563
pm:
Encode 1
JSON 1
received:
Attributes:
IODev espBridge
Interval 60
alias Garagentor auf
group ESPEasy Device
presenceCheck 1
readingSwitchText 1
room ESPEasy
setState 3
reagieren muss das DOIF auf das reading "Switch"
hier das DOIF
Internals:
DEF ([ESPEasy_Garagentor.Switch:"^on$"]) (set Garage_notify_.* inactive; set setreading Garage state auf; set Garage_notify_.* active)
MODEL FHEM
NAME Gargentor_Sensor_unten_DOIF_1
NR 431
NTFY_ORDER 50-Gargentor_Sensor_unten_DOIF_1
STATE initialized
TYPE DOIF
.attraggr:
.attrminint:
READINGS:
2018-04-30 12:28:37 cmd 0
2018-04-30 12:28:37 mode enabled
2018-04-30 12:28:37 state initialized
Regex:
condition:
0 EventDoIf('ESPEasy_Garagentor.Switch',$hash,'^on$',1)
devices:
0 ESPEasy_Garagentor.Switch
all ESPEasy_Garagentor.Switch
do:
0:
0 set Garage_notify_.* inactive; set setreading Garage state auf; set Garage_notify_.* active
1:
helper:
DOIF_Readings_events
DOIF_eventas
globalinit 1
last_timer 0
sleeptimer -1
itimer:
trigger:
all ESPEasy_Garagentor.Switch
uiState:
uiTable:
Attributes:
alias Setzt Status Garage Auf wenn auf Sensor öffnet
do always
room Garage
Das kann doch nur eine Kleinigkeit sein, ich finde den Fehler nicht, aber ich denke es muss an diesem Stück liegen "([ESPEasy_Garagentor.Switch:"^on$"])" wenn ich wie schon erwänt cmd1 manuell auslöse aus dem DOIF setzt er das reading auf auf. :o
Habs raus bekommen.....die Syntax von dem DOIF war es. ([ESPEasy_Garagentor:Switch] eq "on")
so reagiert das DOIF auch auf das State vom Switch richtig ???