Obi Steckdose ESPEasy Probleme.

Begonnen von dragon2422, 22 Februar 2018, 14:20:58

Vorheriges Thema - Nächstes Thema

trs

Wenn die Steckdosen ein bistabiles Relais haben, muss der GPIO nur kurz gepulst werden. Hier meine Rule von meinem UP Schalter (mit bistabilen Relais) :

on button#state do
if [button#state]=1
Pulse,14,1,10
gpio,5,0
else
Pulse,12,1,10
gpio,5,1
endif
endon
on toggle do
if [Relais#value] =0
Pulse,14,1,10
gpio,5,0
else
Pulse,12,1,10
gpio,5,1
endif
endon
on on do
Pulse,14,1,10
gpio,5,0
endon
on off do
Pulse,12,1,10
gpio,5,1
endon


GPIOs müssen angepasst werden.


HarryHase

Welche Dose ist es eigentlich, welche Leistung, bei welchem Preis?
Grüße hh

-----------------------

kabanett

Zitat von: HarryHase am 01 April 2018, 14:51:01
Welche Dose ist es eigentlich, welche Leistung, bei welchem Preis?

Das würde mich auch interessieren!!!

Welche gpio ist denn für was zuständig, bei deinem UP- Schalter??? 
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren


trs


Pulse,14,1,10  : Relais ein
Pulse,12,1,10  : Relais aus
gpio,5,0 uds 5,1  : Led im Schalter


Groej

Den Unterputzschalter gibt es bei OBI? Kenn nur die hier von OBI:

https://www.obi.de/hausfunksteuerung/wifi-stecker-schuko/p/2291706

Hab die auch umgeflasht auf ESPeasy MEGA und läuft super über MQTT.
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

stefanpf

#21
Nun ist die Verwirrung perfekt  :)

- den UP Schalter gibt es nicht bei Obi. Der ist nur als Beispiel für die Ansteuerung eines bistabilen Relais hier aufgetaucht.
- die Obi Steckdose hat leider kein bistabiles Relais, sondern arbeitet mit einer bistabilen Thyristorschaltung die sich ähnlich verhält.
- die rote LED ist parallel zum Relais angeschlossen und kann/muss nicht einzeln geschaltet werden

Am Ausgangspunkt sind Gpio5 und Gpio12 high.
Für ein SET (Relais an) muss Gpio12 kurz auf low gezogen werden.
Für ein RESET (Relais aus) muss Gpio5 kurz auf low gezogen werden.

Das erklärt auch warum es so viele unterschiedliche und verwirrende Ansteuerung kursieren.
Bei einer MusterLösung würde man beide Gpios wirklich nur pulsen.
Für mich ist das blöde daran, dass der aktuelle Zustand nicht an einem Gpio ablesbar ist, sondern entweder in den Value des Buttons oder eines Espeasy Dummys geschrieben werden muss.
Damit bekommt ich zwar den Flipflop mit dem Taster sauber abgebildet, habe aber keinen Task, der direkt beim Umschalten seinen Status zum Controller schickt (siehe auch issue 960).

Da bietet sich dann meines Erachtens nach folgende Abwandlung an, bei der Gpio5 den Status des Relais abbildet.
on System#Boot do
GPIO,12,1
GPIO,5,0
endon


on Button#Switch=1 do
   if [Relais#Relais]=0
      event switchon
   else
      event switchoff
  endif
endon

on switchon do
  Gpio,5,1
  Pulse,12,0,10
endon

on switchoff do
   Gpio,5,0
endon

Button ist dabei ein normal switch ohne send to Controller
Relais ist ein normal switch mit send to controller, delay=0

Eigentlich völlig uninteressant,  da eure Steckdosen ja vermutlich alle schon funktionieren  ;)

P.S.
Durch einen dummen Zufall bin ich gestern noch über die Ursache für den doppelt notwendigen Tastendruck gestolpert:
Wenn der Button als "PushButton" definiert wurde, entsteht dieses Phänomen.
Dies liegt am "=1" in
on Button#Switch=1 do
Da der PushButton wie ein flipflop arbeitet, erzeugt er dieses Event nur bei jedem zweiten Tastendruck.

Groej

Also ich hatte für mich ein Word Dokument geschrieben damit ich weiß wie ich das gemacht habe.  Man wird halt alt ne ;).
Falls gewünscht kann ich es ja hier hochladen als PDF. Wie gesagt ich mach das aber über MQTT.
FHEM - RaspPi2 - KNXD - KNX - CUL 868 - FS20 - HMS - WH3080 - Signalduino 433 MHz - Telegram - Anel Elektronik IP Steckdosen - BME280

fhemfreund

Habe auch eine Obi WLAN Steckdose erfolgreich in FHEM via Espeasy einbinden können. Meine Lösung funktioniert ohne doppelten Tastendrücke an der Dose und auch der jeweilige Schaltzustand wird von/zu FHEM übertragen, sodaß bei abwechselnder Bedienung immer der korrekte Status angezeigt wird.

Die Dose selbst ist mit dem ESP Flash Tool vom Espeasy-Package geflasht worden.

Die Konfiguration ist in angehängen Bildern und unten zu finden.

Rules:


On Button#Switch do
if [Relaisstatus#Switch]=1
  Pulse,5,0,100
  Gpio,16,0
else
  Pulse,12,0,100
  Gpio,16,1
endif
endon

On toggle do
if [Relaisstatus#Switch]=1
  Pulse,5,0,100
  Gpio,16,0
else
  Pulse,12,0,100
  Gpio,16,1
endif
endon

On anschalten do
Pulse,12,0,100
Gpio,16,1
endon

On ausschalten do
Pulse,5,0,100 
Gpio,16,0
endon


Fhem Device:


Internals:
   CFGFN     
   DEF        192.168.XXX.XXX 80 HmWifiEspBridge HmWifiSock1_Relaisstatus
   ESP_BUILD  20000
   ESP_BUILD_GIT v2.0.0-dev12
   ESP_BUILD_NOTES  - Mega
   ESP_NODE_TYPE_ID 17: ESP Easy Mega
   ESP_SLEEP  0
   ESP_UNIT   0
   ESP_VERSION 2
   HOST       192.168.0.26
   HmWifiEspBridge_MSGCNT 229
   HmWifiEspBridge_TIME 2018-05-28 14:34:51
   IDENT      HmWifiSock1_Relaisstatus
   INTERVAL   300
   IODev      HmWifiEspBridge
   LASTInputDev HmWifiEspBridge
   MSGCNT     229
   NAME       ESPEasy_HmWifiSock1_Relaisstatus
   NOTIFYDEV  global
   NR         68774
   NTFY_ORDER 50-ESPEasy_HmWifiSock1_Relaisstatus
   PORT       80
   STATE      off
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.35
   READINGS:
     2018-05-28 14:34:51   Switch          off
     2018-05-28 14:41:18   presence        absent
     2018-05-28 14:41:18   state           absent
   helper:
     fpc        1527429616.6736
     pm:
       Encode     1
       JSON       1
Attributes:
   IODev      HmWifiEspBridge
   Interval   300
   alias      Steckdose
   eventMap   /event toggle:toggle/event anschalten:on/event ausschalten:off
   group      HmWifiSock1
   presenceCheck 1
   readingSwitchText 1
   room       System EspEasy
   setState   6
   sortby     1
   stateFormat {ReadingsVal($name,"Switch","") eq "off" ? "off" : ReadingsVal($name,"Switch","") eq "on" ? "on" : ReadingsVal($name,"Switch","")}
   verbose    0
   webCmd     toggle:on:off


Wernieman

Erstmal danke für Deine Anleitung, funzt soweit ... nur ....

Bei mir ändert sich der GPIO16 nicht, d.h. der Relaistatus ändert sich nicht und wird deshalb auch nicht zu FHEM gesendet. Ich habe meine Konfig des RelaisStatus mit Deiner verglichen und Sie ist identisch. Schon auf der esp-Oberfläche (Web) tut sich keine Änderung. Weiß jemand, wo ich noch suchen kann?
- 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

Pfriemler

#25
Das kann irgendwie gar nicht stimmen. Wir haben ja in einem Parallelthread die Hardwarehacks untersucht und dabei schon die gesamte Innenschaltung dokumentiert. Das Ergebnis stimmt mit dem Artikel auf dem Tasmota-Github überein:
ZitatA low pulse on GPIO12 switches the relay on, a low pulse on GPIO5 switches it off.
I have solved the 'pulse issue' by setting GPIO12 to always 0 (as LED) and works fine.
Heißt: die bistabile Schaltung kann überlistet werden, wenn man GPIO12 als einen dauerhaft low Ausgang definiert (mit was auch immer in ESPeasy, bei Tasmota wird "LED2" dafür verwendet)

Zusammengefasst (für Tasmota jedenfalls):
- GPIO12 auf low
- Relaissteuerung über GPIO5
- Button über GPIO14 (low active - Taster zieht gegen GND)
- Schaltzustandsanzeige über GPIO4.
Letzteres ist original die Netzwerk-LED (die blaue mit dem Funksymbol). Die rote im Taster ist hardverdrahtet mit dem Relaiszustand.


edit: Jetzt weiß ich wieder.
In ESPeasy wird GPIO16 nur als Puffer/Datenspeicher missbraucht. Wichtig ist das Skript, was bei den Rules (deren Sichtbarkeit man auch erst freischalten muss) eingetragen werden muss: Dort wird je nach gesetztem "Relaisstatus" entweder GPIO5 oder GPIO12 kurz gepulst (ich denke 100 heißt 100 ms) und so die bistabile Schaltung angesteuert. Das hatte bei mir jedenfalls auch funktioniert.



"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Wernieman

Per Taster funktioniert es auch, nur wird eben GPIO16 in meinem espeasy eben nicht geschaltet, jedenfalls zeigt schon das espeasy device keine Änderung. Welche Version von espeasy verwendest Du?

Habe bei mir die von 20180818 drauf
- 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

Pfriemler

Ich verwende ja eben kein ESPeasy mehr, weil für mich die Vorteile von Tasmota deutlich überwiegen. Ich hatte nur testweise ESPeasy per Webcommands geschaltet, ohne Rückmeldung. Da helfe ich nicht weiter ...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Papa Romeo

....und wenn ich das mit der Leistungsmessung im Moment anders in der Griff bekommen könnte, würde ich sogar auf TASMOTA verzichten.
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Wernieman

Naja .. habe schon einige esp8266 eingebaut .. und nur für eines auf ein anderes "Produkt" setzen .. ;o)
- 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