ESPEasy - Relais & AUS-Schalter

Begonnen von Domi123, 22 August 2017, 22:54:30

Vorheriges Thema - Nächstes Thema

Domi123

Hallo, ich bräuchte mal etwas Hilfe, falls hier jemand Ahnung hat von ESP-Easy...
Habe nichts passendes gefunden und falls der Post hier falsch ist, darf der ruhig verschoben werden...

Ich arbeite derzeit an einem Modul, um Lichtschalter zu steuern, scheitere aber an den Regeln, da ich das Licht auch ohne FHEM schalten möchte.
Habe also einen AUS-Schalter der an GPIO5 und GND hängt und ein Relais welches an GPIO0 und GND hängt...
Device Lichtschalter#Schalter und Lichtschalter-Relais...

Ein
On Lichtschalter#Schalter=1
GPIO,5,1
On Lichtschalter#Schalter=0
GPIO,5,0
Funktioniert,..... jedoch sicherlich nur so lange,
bis ich über FHEM das Relais umschalte, denn es würde ja beim Ausschalten das Relais ebenfalls ausgeschaltet werden, obwohl es bereits aus ist und anziehen sollte...
Habe mich auch an if's versucht, jedoch schließt dann immer eine Regel die andere aus.fallsnde derzeit keine Möglichkeit den Status zu toggeln, also egal ob Relais an oder aus, beim Schalten einfach umzuschalten...
PS: Ja ich weiß, dass ein Taster sicher einfacher wäre jedoch würde ich gerne etwas bauen was normale Lichtschalter WLAN-fähig macht...
Und ich bin Elektrofachkraft, falls sich jemand Gedanken macht ^^...
Bin für Tipps und Hilfestellung dankbar... :)

JoWiemann

#1
Hallo, hier folgst Du einem Denkfehler. Über Fhem aktivierst / deaktivierst Du direkt die GPIO ohne dass die Rule zum Tragen kommt. Du musst also in Fhem, entsprechend den Status des GPIO, toggeln.



Gesendet von iPhone mit Tapatalk

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Domi123

Das ist richtig, habe ich auch so verstanden, dass ich das Relais über FHEM gpio5,1 oder 5,0 ein und ausschalte...
Möchte jedoch auch ohne die Kommunikation zu FHEM den Lichtschalter direkt schalten können...
Und bei einer Regel
If Schalter 1 --- Relais 1
If Schalter 0 --- Relais 0
stehe ich vor dem Problem...
Falls der Schalter auf 1 steht,
ich das Relais aber danach über FHEM ausgeschaltet habe, würde das Relais bei erneutem Umlegen des Schalters also schalter-0 doch wieder ausschalten, obwohl es ja aus ist...
In dem Fall müsste das Relais ja dann einschalten, weil es bereits aus ist...
Oder man müsste den Lichtschalter zwei mal umlegen,so wie ich das sehe...
Habe schon einige Lösungen gefunden, diese beziehen sich aber alle auf Taster, nicht auf Schalter... Habe den Schalter als normal switch deklariert...

Hier komme ich nicht weiter...

Überlege schon einen Taster active high zu erstellen der einen impuls einer anderen GPIO bekommt bei sowohl Schalter 1 als auch Schalter 0... Denke dies würde einen Taster simulieren, dessen status ich ja dann über FHEM toggeln kann... Oder mit einem Dummy Device irgend etwas zu tuen...
Aber vielleicht geht das auch viel einfacher...
Hoffe mein Problem ist verständlich erklärt...
Ist mein erstes ESPeasy Projekt mit wemos und Relais dazu...

JoWiemann

Was Du abbilden möchtest ist also eine klassische Wechselschaltung.

Verstanden habe ich folgendes:

Der Taster ESP soll als Wechsler funktionieren, Fhem dann als Kreuzschalter und der Schalter dann wieder als Wechsler?



Gesendet von iPad mit Tapatalk

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Domi123

Entschuldigt, wenn ich mich etwas kompliziert ausdrücke :)...

Also angenommen ich habe einen normalen Aus-Schalter in der Wand der als Schalter definiert ist und ein Relais welches ebenfalls als Schalter definiert ist...
Ich möchte das Relais über den Schalter unabhängig von FHEM ein und ausschalten können (genau genommen togglen), als auch das Relais über FHEM bzw http befehl schalten...

Der Aus-Schalter hängt an GPIO0 und das Relais an gpio5...

Nur fällt mir keine Möglichkeit ein, dies aus einfache Art und Weise in Espeasy einzurichten...

Danke erst einmal für die Hilfestellung hier :)

Otto123

#5
Jetzt wo es Jörg ausgesprochen hat, habe ich es auch verstanden  ;D

Jede Bedienung muss einfach toggeln, anders geht das nicht. Damit hat die Stellung der Wippe nichts mit dem Schalter zu tun!

Lokal dann so?ungetestet!
on Lichtschalter#Schalter do
if [Lichtschalter#Relais]=1
   gpio,5,0
else
   gpio,5,1
endif
endon


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Domi123

Danke, das geht in die Richtung die ich meine...
Werde dies später noch mal versuchen...
Wenn ich mich aber nicht täusche, habe ich genau dies gestern schon versucht und bin dabei in einer Art Loop gelandet, weil das Relais getogglet wird und somit Lichtschalter#Relais wieder 0 ist und und dann wieder
das else greift (glaube ich)
Glaube hatte hier aber noch ein if drin, so in der Art

on Lichtschalter#Schalter do
If Lichtschalter#Relais=1
   gpio,5,0
else
   gpio,5,1
endif
endon

Bin gerade nicht am Testaufbau...
Vielleicht liegt dies aber daran, dass ich den Schalter invertiert habe, daran werde ich mich später noch einmal versuchen...
Genau daran habe ich mir gestern den Kopf zerbrochen^^

Otto123

Ja auf alle Fälle, habe das mit dem if korrigiert. Das war "verschwunden"  ;D
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Domi123

Ich versuche das  gleich :)...
Mal schauen ob das geht oder obs genau das war was ich gestern versucht hatte und mein Relais nur kurz an aus ging... (Arbeite jedoch gerade noch auf steckbrett mit LED und Strippe statt Relais und Schalter, aber sollte ja egal sein)...
Sicherlich wäre das  alles mit einem taster der auch so definiert wäre viel einfacher, aber man versucht sich eben an Dingen... Wenn ich im ganzen Haus neue Schalter bräuchte und auf Taster umrüsten müsste, hätte dies denke ich den Sinn verloren...
Wenn die Lösung gefunden ist kann die ja in Baster Projekte veröffentlicht werden :)... Für den nächsten der auf die Idee kommt :)

Domi123

So, habe dies mal versucht, aber so keine Erfolge erzielt...
Die LED (Also mein Relais würde anziehen), aber geht auch bei erneutem umlegen des Schalters nicht mehr aus...
Hier einmal der log Auszug

Log
57982 : EVENT: Lichtschalter#Schalter=1.00
57986 : ACT : gpio,5,1
57986 : SW : GPIO 5 Set to 1
58098 : SW : State 1
58099 : EVENT: Lichtschalter#Relais=1.00

73393 : SW : State 0
73394 : EVENT: Lichtschalter#Schalter=0.00
73398 : ACT : gpio,5,1
73400 : SW : GPIO 5 Set to 1

Habe Ottos Rules 1zu1 übernomen und meine genau das auch gestern schon versucht zu haben...

Habe das gleiche Ergebnis sowohl mit Pullup als auch ohne am Schalter und mit und ohne invertierten Schalter

Otto123

Wie hast Du Relais definiert? Der müsste die GPIO 5 wiederspiegeln...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Domi123

#11
Ist es auch... Schalte testweise noch über http Kommando über den Browser...
Also normal switch an gpio 5...
Aber glaube es gelöst zu haben.. :)
So wie es scheint macht ESPEasy bei falscher Schreibweise der Regeln Murks...
Habe jetzt mal testweise die Devices umbenannt
Habe jetzt
Relais#Relais und Schalter#Schalter


  On Schalter#Schalter do
If [Relais#Relais]=0
gpio,5,1
Else
gpio 5,0
Endif
Endon

Das scheint so zu funktionieren
Ohne die eckigen Klammern gehts auch nicht...

Lege ich also gpio 0 auf ground (Schalter an) leuchtet meine Led an gpio 5 (Relais an), Trenne ich die Verbindung geht diese aus...
Wenn ich aber während der Schalter an ist das Relais über http ausschalte, schaltet dieses dann beim Ausschalten des Schalters wieder ein :)

Ob das nun auch an dem Namen lag, werde ich noch testen und berichten... Denn an den eckigen Klammern hatte ich mich auch erfolglos versucht...
Aber so gehts erstmal :)
Melde mich wieder...
Danke euch :)

Otto123

Stimmt die eckigen Klammern sind beim kopieren bei mir auch verschwunden. Da habe ich voll gepennt. Habe es mal noch nachgetragen.
Die Sache mit den Devicenamen ist auch richtig. Es steht zwar im Wiki, dass es mit gleichen Namen geht, aber vor kurzem hat mich dev0 darauf hingewiesen, dass es falsch ist -> https://forum.fhem.de/index.php/topic,75582.msg674079.html#msg674079

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Domi123

Danke für die Info... Tue mich mit der Suche Teilweise schwer, habe aber nichts passendes gefunden in bezug auf Relais und Schalter... Nur Taster...
Scheint aber in meinem Falls doch nicht viel anders zu sein...^^...
Das heißt es lag sowohl an den Klammern als auch an dem Identischen Device Namen...
Werde mich aber da ich jetzt weiß wie es geht dennoch noch mal an den Namen versuchen... Morgen...
Gute Nacht für heute 😊
Hat mich einen großen Schritt weiter gebracht :)

Domi123

Noch mal eine kurze Rückmeldung von mir...
Habe mich noch mal an den Device Namen versucht...Es ist wirklich so, entgegen der Anleitung, dass sobald die Devices die gleiche Bezeichnung haben die Regeln nicht mehr funktionieren... Das Relais wird dann immer eingeschaltet...
Bleibt also bei zwei Devices...
Habe jedoch das Send Data des Schalters deaktiviert... Denke die Schalterposition ist nicht relevant...
Was mir jedoch aufgefallen ist...
Wenn ich meinen Pi aus der Steckdose ziehe, also das Modul stand alone betreibe, reagueren die Regeln sehr verzögert... Schalte ich wird direkt geschaltet... Schaltet ich aber unmittelbar danach erneut, wird das Relais erst 2 Sekunden später geschaltet...
Den Log verstehe ich so, dass ESPEasy versucht den Zustand zu übertragen, und hier ca 2-3 Sekunden hängt, bis erst der nächste Befehl ausgeführt wird...