Toggle für Relais ESPEasy

Begonnen von MAC66666, 19 Februar 2018, 19:24:38

Vorheriges Thema - Nächstes Thema

vbs

Hatte damit schonmal rumgespielt, aber gibt's andere Probleme :(

Zitat von: stefanpf am 07 April 2018, 20:52:08
Ich bin nicht sicher ob ich das Problem richtig verstanden habe, aber ich würde es wie folgt versuchen:
- unter Hardware den Pin auf Output High stellen
- die Ruhe beim Booten weg lassen
- im Device switch die Option "send boot state" aktivieren.

Danach müssten eigentlich alle beteiligten den aktuellen Status kennen.

Wenn ich das mache (Hardware High und Boot-Rule weg), dann geht beim Boot das Relay nur für den Bruchteil einer Sekunde an (offenbar ausgelöst durch Hardware High), aber sofort wieder aus. Offenbar ausgeschaltet durch mein Switch-Device (im Device-Tab). Wenn ich das Device lösche (testweise), dann bleibt das Relay eingeschaltet beim Booten. Das Device (unter Device-Tab) scheint also das zu "übersteuern", was als Hardware-Boot-State gesetzt wird (und schaltet aus).

Das "send boot state" bekomme ich gar nicht in Betrieb. Ich würde erwarten, dass beim Booten der aktuelle Status des Devices an Controller geschickt wird? Egal was ich versuche, da wird beim Booten nie etwas geschickt. :(

vbs

Seltsam: es geht jetzt offenbar. Ich hab bei dem Device jetzt mal das "Send boot state" ausgeschaltet und jetzt scheint es zu funktionieren: beim Boot geht das Relay an und hat im Device jetzt auch immer den Value "1". Damit klappt dann auch die "toggle"-Rule zuverlässig.
Offenbar macht "Send boot state" irgendwas völlig anderes als ich erwartet habe. Aber ich kann da partout keine Erläuterung finden im Netz. Hat evtl. jemand einen Link, der hilft? Danke!

stefanpf

Sorry, das kann ich dir spontan auch nicht erklären :(

Bei espeasy sind das manchmal auch so Nickel Kleinigkeiten, die einen Ärgern.
Ich habe das bei einer Steckdose mit dem Taster: wenn ich dem sage er soll den Bootstate schicken schaltet das Relais auch gleich automatisch wieder um.

Die Warnung unter
https://www.letscontrolit.com/wiki/index.php/ESP_Easy_web_interface#Hardware_page
weist allerdings auch darauf hin, dass die Startwert nicht umbenannt an jedem Gpio funktionieren.

Tueftler1983

Hallo, darf ich hier nochmal aufgreifen?

Ich habe auch mehrere ESP im Einsatz, insgesamt sind es 5 an denen auch Relais hängen.
Jetzt nutze ich auf dem Androiden FHEMswitch als APP um u.a auch diese Relais zu schalten.
Ich kann aber nur "set xxx on, off, toggle" schalten.

Wie bekomme ich es jetzt hin das ich bei allen ESP den Befehl toggle nutzen kann ohne für alle ein DOIF anlegen muss?

Das mit dem cmdalias verstehe ich nicht so ganz.

Frank_Huber

Zitat von: Tueftler1983 am 21 September 2018, 14:54:20
Hallo, darf ich hier nochmal aufgreifen?

Ich habe auch mehrere ESP im Einsatz, insgesamt sind es 5 an denen auch Relais hängen.
Jetzt nutze ich auf dem Androiden FHEMswitch als APP um u.a auch diese Relais zu schalten.
Ich kann aber nur "set xxx on, off, toggle" schalten.

Wie bekomme ich es jetzt hin das ich bei allen ESP den Befehl toggle nutzen kann ohne für alle ein DOIF anlegen muss?

Das mit dem cmdalias verstehe ich nicht so ganz.

Rules!

im ESPeasy:
on toggle5 do
if [pin5#pinlevel] =1
   gpio,5,0
else
   gpio,5,1
endif
endon


ich schicke "toggle5" um pin5 zu toggeln, "toggle12" für pin12 u.s.w.

Tueftler1983

Also kannst du dann einfach set DeviceName toggle5 senden um umzuschalten?

dev0

ZitatWie bekomme ich es jetzt hin das ich bei allen ESP den Befehl toggle nutzen kann ohne für alle ein DOIF anlegen muss?
Attribut combineDevices für die entsprechenden Devices deaktivieren und für jedes der einzelnen Devices dann mittels eventMap... funktioniert nicht?

Tueftler1983

So wie im Screenshot sind bei mir die Relais an den einzelnen ESP definiert

Frank_Huber

#23
Zitat von: Tueftler1983 am 21 September 2018, 15:00:36
Also kannst du dann einfach set DeviceName toggle5 senden um umzuschalten?

ja, genau so.

Befehl den ich absetzte z.B.: set Hoflicht raw event toggle5

über Eventmap könntest Du es so machen:
eventMap { usr=>{ 'toggle' => 'raw event toggle5'}}
dann funktioniert ein set <DEVICE> toggle auch ohne die pin nummer und ohne raw event.

dev0

ZitatSo wie im Screenshot sind bei mir die Relais an den einzelnen ESP definiert
Wenn die Antwort an mich gerichtet war, dann verstehe ich sie nicht.

Tueftler1983

Sorry
@ dev0 ja die Antwort war an dich, Screenshot um ZH zeigen wie bei mir eventMap definiert ist
/gpio 14 1:off/gpio 14 0:on/

@Frank_Huber
Leider funktioniert es so dann nicht bei mir, da von Fhemswitch nur

set DeviceName on
oder
set DeviceName off
oder
set DeviceName toggle

Gesendet werden kann, ein
set DeviceName raw event toggle5
Geht leider nicht

Frank_Huber

Zitat von: Tueftler1983 am 21 September 2018, 15:21:06
Sorry
@ dev0 ja die Antwort war an dich, Screenshot um ZH zeigen wie bei mir eventMap definiert ist
/gpio 14 1:off/gpio 14 0:on/

@Frank_Huber
Leider funktioniert es so dann nicht bei mir, da von Fhemswitch nur

set DeviceName on
oder
set DeviceName off
oder
set DeviceName toggle

Gesendet werden kann, ein
set DeviceName raw event toggle5
Geht leider nicht

schau dir mein letzten edit an, kannst über eventmap regeln. :-)
auch das hier sollte gehen:
/gpio 14 1:off/gpio 14 0:on/raw event toggle14:toggle/

Tueftler1983

Klar jetzt verstehe ich was bzw wie du es meinst,
ich sende zwar das set DeviceName toggle aber das eventMap ändert es ja in set DeviceName raw event toggle5 um und im ESP ist die entsprechende Regel definiert.

Okay super so gehts
Einfacher wäre es natürlich wenn lets control "on, off, toggle" als grundbefehle aufnehmen würde um nicht den Umweg über eventMap und Regeln gehen müßte.

Aber danke EUCH für die Hilfe.
LG Holger

Tueftler1983

#28
Hmm leider schaltet mit der Definition so noch nix.

In FHEM
eventMap
/gpio 14 1:off/gpio 14 0:on/{ usr=>{ 'toggle' => 'raw event toggle'}}/


Und im ESP

on toggle do
if [pin14#pinlevel] =1
   gpio,14,0
else
   gpio,14,1
endif
endon


Meldung in FHEM wenn ich set DeviceName toggle in der Befehlszeile eingebettet


Unknown argument toggle, choose one of buzzer candle clearreadings dmx dots erase event gpio help inputswitchstate irsend lcd lcdcmd lights longpulse longpulse_ms mcpgpio mcplongpulse mcppulse motorshieldcmd neopixel neopixelall neopixelline nfx oled oledcmd oledframedcmd pcapwm pcfgpio pcflongpulse pcfpulse pulse pwm pwmfade raw reboot reset rtttl serialsend servo status statusrequest tone

Frank_Huber

Denke du kannst perl und normal hier nicht mischen.
Kuck mal was ich in meinem letzten post vorgeschlagen hab.
Das funktioniert.

Gesendet von meinem Doogee S60 mit Tapatalk