ESPeasy Schalter an FHEM - Steuerung über Schalter und Fhem - Schaltzustand

Begonnen von 87insane, 14 Dezember 2018, 12:58:00

Vorheriges Thema - Nächstes Thema

87insane

Guten Tag zusammen,

aktuell bastel ich mal wieder ein wenig und komme an einer Stelle nicht weiter..

Aufbau:
- Sonoff T1 EU 2-Gang Schalter mit ESPEasy
- 433 MHz Steckdose (Baumarkt / IT)
- Fhem natürlich

Ich schalte nun über den Sonoff Schalter ohne eine Physikalische Verbindung das Licht an und aus. Dies geschieht über ein Notify.
Immer wenn ich den rechten Knopf des Schalters betätige, geht also die Stehlampe an.
Allerdings schalte ich auch über FHEM und immer genau dann, weiß der Schalter natürlich nicht bescheid. Also muss ich um das gerade eingeschaltete Licht (über Fhem an geschaltet), den Schalter an der Wand zwei mal drücken um die Lampe wieder aus zu bekommen. Dies resultiert natürlich darauf, dass der Schalter nichts weiß von einem aktiviertem Licht.
Nun möchte ich es aber am liebsten so einstellen, dass der Schalte dies auch mitbekommt bei Aktivierung über FHEM und nicht nur sich selber.
Am Anfang hatte ich probiert, in meinem notify noch zu sagen, bitte schalte auch den Schalter an bei Aktivierung von der Stehlampe. Aber dann lande ich in einem Loop und es geht die ganze Zeit das Licht an und aus.

Das Notify aktuell:
define az_Stehlampe_ESP notify (ESPEasy_az_licht:strom_rechts:.*) {\
if ($EVTPART1 eq "on") {\
  fhem("set AZ on");;;;\
### DAS HIER HABE ICH NICHT MEHR DRIN WEGEN DES LOOPS:
# fhem("set ESPEasy_az_licht gpio 5 1");;;;\
}\
if ($EVTPART1 eq "off") {\
  fhem("set AZ off");;;;\
### DAS HIER HABE ICH NICHT MEHR DRIN WEGEN DES LOOPS:
# fhem("set ESPEasy_az_licht gpio 5 0");;;;\
}\
}


AZ: Ist die Stehlampe / IT Steckdose
ESPEasy_az_licht:strom_rechts:.*: Aus dem ESP Schalter, das Reading wann on/off lt. Schalter ist.

LIST ESPEasy_az_licht:


Internals:
   CFGFN      ./FHEM/ESPeasy.cfg
   DEF        192.168.xxx.50 80 espBridge az_licht
   ESP_BUILD  20102
   ESP_BUILD_GIT mega-20180710
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID 17: ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   1
   ESP_VERSION 2
   HOST       192.168.xxx.50
   IDENT      az_licht
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MSGCNT     46
   NAME       ESPEasy_az_licht
   NOTIFYDEV  global
   NR         62
   NTFY_ORDER 50-ESPEasy_az_licht
   PORT       80
   STATE      absent
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.01
   espBridge_MSGCNT 46
   espBridge_TIME 2018-12-14 10:42:03
   READINGS:
     2018-12-14 12:46:26   presence        absent
     2018-12-14 12:46:26   state           absent
     2018-12-14 10:42:03   strom_links     off
     2018-12-14 07:35:35   strom_rechts    off
   helper:
     fpc        1544720213
     pm:
       Encode     1
       JSON       1
     received:
   sec:
     admpwd     
Attributes:
   IODev      espBridge
   Interval   300
   eventMap   /gpio 12 on:on/gpio 12 off:off/
   group      ESPEasy Device
   presenceCheck 1
   readingSwitchText 1
   room       ESPEasy


LIST AZ / IT Steckdose:


Internals:
   00         f0
   CFGFN      ./FHEM/Intertechno.cfg
   DEF        00000FFF0F 0F F0
   IODev      CUL_443MHz
   NAME       AZ
   NR         224
   STATE      off
   TYPE       IT
   XMIT       00000fff0f
   XMITdimdown 00
   XMITdimup  00
   XMITon     0f
   CODE:
     1          00000fff0f
   READINGS:
     2018-02-20 19:17:47   protocol        V1
     2018-12-14 07:35:35   state           off
Attributes:
   IODev      CUL_443MHz
   alexaName  Arbeitszimmer
   icon       light_light
   room       Alexa,Arbeitszimmer


PS: Strom links ist hier egal. Dies schaltet eine Deckenlampe.
PPS: Wie kann ich bei combineDevice im ESP Modul hinbekommen, dass ich trotzdem beide Geräte schalten kann ohne manuell set *name des Geräts* gpio 5 1 o.ä. eingeben muss?
Aktuell habe ich nur GPIO 12 im eventmap und somit habe ich auch nur zwei button für on/off. Ich hätte aber gerne beide (also gpio 5 und 12) in der Übersicht.


Danke schon mal an alle! Ich hoffe ich habe es halbwegs verständlich geschrieben.


87insane

ESP_BUILD_GIT mega-20180710

Die ist drauf da in den neuen builds diverse Dinge nicht mehr klappen wie ich diese kenne. Hinzu war leider deren Forum die halbe Woche down und ich konnte nichts nachlesen.

Wernieman

Sorry aber Verstehe jetzt Deine Beschreibung nicht. Schaltest Du jetzt über FHEM oder den SONOFF direkt?

Wen 2. könntest Du uns Deine Rules geben?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

87insane

Hi,

ich schalte über beides... Problem ist nur wenn du über FHEM das Licht anmachst. Aber über SONOFF das Licht ausmachst (oder anders herum). Das kann ich nicht abfangen via FHEM. Ich finde keine Idee wie ich FHEM sage, dass egal von welcher Seite geschaltet wird, der physikalische Schalter dann auch auf on oder off gestellt wird.
Klar, wenn ich nun einfach in FHEM, den SONOFF schalter (set ESP.... gpio 5 1/0) anstelle des eigentlichen Gerätes (set AZ on), dann würde es natürlich der Schalter immer mit bekommen.

Aber nun kommt Mama/Oma und die wollen es über die kleine, alte 433MHz Fernbedienung machen...FHEM bekommt den Befehl mit und schaltet die Lampe an. ABER der SONOFF Schalter weiß nichts davon.


Weiß in diesem Zusammenhang leider nicht wofür - Anbei aber die Rule aus dem Schalter:
on taste_rechts#taste_rechts do
if [taste_rechts#taste_rechts]=1
  gpio,5,0
else
  gpio,5,1
endif
endon


PS: Ja - Mit der FW kann ich die Namen noch ohne Probleme, bei kleinen Schaltungen, doppelt vergeben.



EDIT: Jetzt weiß ich vermutlich warum die Frage nicht verstanden wird....
.. Wenn am SONOFF T1 geschaltet wird kann ich dies über den Taster oder aber über das Relay. Da ich aber die LED vom Schalter mit dem RELAY zusammen schalten kann und nicht separat, habe ich über das RELAY meinen FHEM Input. Mich stört eben wenn die LED am Schalter leuchtet wenn das Licht aus ist. Sie soll nur an sein, wenn auch etwas an ist, was dahinter hängt. Jetzt könnte man sagen, das ist quark oder Spielerei. Allerdings sehe ich es auch ein wenig als Aufgabe, es "perfekt" zu machen.

HubertM

Hallo,

mit folgendem Code schalte ich meine Sonoffs.
Damit wird alles richtig angezeigt, egal von wo ich schalte. Ob Fhem, Web Command oder Taster.

define ESPEasy_Sonoff1 ESPEasy 192.168.199.111 80 espbridge Sonoff1
attr ESPEasy_Sonoff1 IODev espbridge
attr ESPEasy_Sonoff1 Interval 60
attr ESPEasy_Sonoff1 alias S1
attr ESPEasy_Sonoff1 devStateIcon on:rc_YELLOW:off off:rc_STOP:on absent:rc_RED:off
attr ESPEasy_Sonoff1 eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/
attr ESPEasy_Sonoff1 group ESPEasy Device
attr ESPEasy_Sonoff1 icon hue_filled_outlet
attr ESPEasy_Sonoff1 presenceCheck 1
attr ESPEasy_Sonoff1 readingSwitchText 1
attr ESPEasy_Sonoff1 room ESPEasy,Schalter
attr ESPEasy_Sonoff1 setState 3
attr ESPEasy_Sonoff1 stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Sonoff1RelaisVal","")}
attr ESPEasy_Sonoff1 webCmd :


Rule:

on Sonoff1#Sonoff1KeyVal do
if [Sonoff1#Sonoff1RelaisVal]=1
gpio,12,0
else
gpio,12,1
endif
endon
on Sonoff1#Sonoff1RelaisVal do
if [Sonoff1#Sonoff1RelaisVal]=1
gpio,13,0
else
gpio,13,1
endif
endon


87insane

Hey HubertM,

du hast gerade den normalen Code/ die Rules gesendet der Schalter. Leider ist bei mir aber das Zusammenspiel gefragt.

SONOFF über FHEM zu IT Funksteckdose
IT Funksteckdose über FHEM zu SONOFF

Wenn ich einfach nur SONOFF schalten will, geht das natürlich. Wenn ich einfach nur Intertechno schalten will geht das auch. Nun würde ich nur gerne Diese art Wechselschaltung wie oben beschrieben realisieren.

HubertM

"normaler Code/Rules"  ??
Was ist denn normal? Meine Rule ist schon anders als deine.

Aber was denn eigentlicht gewünscht ist, ist nicht so recht ersichtlich.

87insane

Hi und guten Abend nochmal,

deine Rule ist identisch die gleiche. Du hast eben andere Namen für die Schalter und die Relays und du hast beide gpios hier rein gestellt, ich eben nur den, der relevant ist. Die Rules im ESP werden hier wohl auch nicht helfen.
Ich versuche es nochmal zu erklären....

Ich habe einen zwei Gang T1 Sonoff Schalter mit ESPeasy drauf. Dieser soll mit einer Taste einfach ein Deckenlicht an und aus schalten - Klappt.
Die andere Taste soll nicht etwa ein Kabel schalten bzw Strom fließen lassen SONDERN: Die Zweite Taste soll einfach nur an FHEM senden und sagen mach das Intertechno Döschen an.

Also ca so:
Ich drücke die Taste an dem Sonoff (gpio 5 wird also auf 1 geschaltet). Nun sendet der SONOFF Schalter seinen neuen Zustand an FHEM. FHEM fängt via notify diesen Zustand ab und sendet an die Intertechno Dose 433MHz den Befehl um diese ein zu schalten.

Mein Problem ist nur:
Wenn ich via FHEM auf dem Gerät AZ (Intertechno) den Befehl gebe für einschalten, wird an dem SONOFF Schalter das kleine Licht und somit der Zustand nicht erfasst. Also FHEM weiß das AZ an ist. SONOFF weiß dies nicht. Resume: Ich muss die Taste am SONOFF Schalter 2 mal drücken damit das Licht ausgeschaltet wird. Dies liegt an dem unterschiedlichem Schaltzustand. Nun habe ich also vor, etwas zu basteln (vermutlich notify), dass automatisch, egal von wo geschaltet wird, den Zustand auf beiden Geräten immer gleich hält. Das brauch man auch nur dann, wenn man einmal in FHEM schaltet / oder mit einer 433Mhz Fernbedienung und danach nicht über das gleiche Gerät wieder ausschaltet.

Ich habe es nun mehrfach versucht zu erklären. Am besten, wenn es noch immer unklar erscheint, fragt mich was. Ich weiß nicht genau wo eine Info fehlt.

Frank_Huber

aaaah, was du brauchst ist etwas das die IT bei Sonoff Tastendruck toggelt.
zumindest wenn ich es jetzt richtig verstanden habe.

kuck mal hier, meine Licht-DOIF: kannst dir ja auf deine Geräte umbauen.
defmod Licht_Flur_OG DOIF ([GPIO_IN_20:"^on$"] and [OUT_2:PortA0] eq "off") (set OUT_2 PortA0 on)\
DOELSEIF ([GPIO_IN_20:"^on$"] and [OUT_2:PortA0] eq "on") (set OUT_2 PortA0 off)
attr Licht_Flur_OG userattr room_map structexclude
attr Licht_Flur_OG cmdState on|off
attr Licht_Flur_OG cmdpause 2:2
attr Licht_Flur_OG devStateIcon on:on:cmd_2 initialize|initialized|off:off:cmd_1
attr Licht_Flur_OG do always
attr Licht_Flur_OG stateFormat [OUT_2:PortA0]
attr Licht_Flur_OG webCmd on:off


GPIO_IN_20 --> Licht-Taster, in deinem Fall der Taster per ESPEasy
OUT_2:PortA0 --> das Relais, in deinem Fall die IT Dose

DOIF Zweig 1: Tastendruck und Licht aus --> Licht an
DOIF Zweig 2: Tastendruck und Licht an --> Licht aus

87insane

Hab es erst mal grob verstanden, was du da gebaut hast. Werde es mal testen und anpassen.
Darf ich mal ganz lieb fragen was du genau in deinem Flur machst? Ist das ne art Wechelschalter?

EDIT: Aber so was in der Art suche ich...
Nur das ich gerne keinen reinen Toggle hätte sondern einen gleichen Schaltzustand. Egal von wo ich schalte, soll IT und SONOFF an oder aus sein. Und der Zustand "muss" immer gleich sein.
Ich meine, aufgrund dessen, dass es eine LED gibt, soll diese ja Feedback geben an diverse Personen, die es sehen. Nun muss aber dieses Feedback auch einheitlich sein. Am T1 ist eine oder je nach Modell auch mehrere LED eingebaut. Und diese soll wenn ein Gerät an ist (in meinem Fall) ein Leuchten anzeigen. Ein reines toggle würde bedeuten, dass es ggf mal leuchtet oder mal nicht. Aber deine Idee ist schon mal ein guter Anstoß!

Frank_Huber

Zitat von: 87insane am 15 Dezember 2018, 20:53:36
Hab es erst mal grob verstanden, was du da gebaut hast. Werde es mal testen und anpassen.
Darf ich mal ganz lieb fragen was du genau in deinem Flur machst? Ist das ne art Wechelschalter?
Das ist einfach ein gpio der bei jedem Tastendruck das Licht schaltet.
So wie damals eine eltako Schaltung.
Taster drücken - Licht an, Taster drücken - Licht aus.

Gesendet von meinem Doogee S60 mit Tapatalk