Garagentorsteuerung mit Sonoff

Begonnen von hanswerner1, 28 Mai 2017, 18:02:08

Vorheriges Thema - Nächstes Thema

hanswerner1

#90
Zitat von: Gisbert am 25 August 2019, 10:48:43
Die lange Variante: sobald das Tor länger als 15 Minuten geöffnet ist, werde ich per Pushnachricht darüber informiert. Da ich eine Lüfterstellung (nur einen Spalt offen) habe, ist das Tor für den Homematic-Fensterkontakt ebenfalls offen, d.h. dann bekomme ich auch eine Nachricht, die ich aber an der Stelle nicht haben möchte. Ich habe alle möglichen Varianten durchgespielt, ob das softwareseitig (in einem DOIF) zu regeln ist, bin dann aber zum Schluss gekommen, dass mir die Information fehlt, ob das Tor per Taster/Schlüsselschalter auf oder per Fhem auf Lüfterstellung gefahren wurde.
Was ich aber noch nicht bedacht habe, und was vermutlich aber so realisert ist, dass alle Taster/Schlüsselschalter/Fhem-Befehle auf den gleichen Eingang gehen, so dass ich gar nicht zwischen Fhem und manueller Betätigung unterscheiden kann. Immerhin wüsste ich dann, dass ein Fahrbefehl eingegangen ist.
Ich sehe nach, ob ich mehrere Eingänge am Garagentormotor habe, vielleicht gelingt da noch was.


Ich mache so etwas ähnliches über ein doif.
Mein Treppenhauslicht schalte ich über den Eltako von Papa Romeo allerdings mit Tasmota drauf. Wenn ich das Licht über Bewegungsmelder einschalte, setzte ich gleichzeitig im doif ein User Reading ,,Schaltgrund" auf ,,auto".
In einem anderem doif frage ich ab ob das Licht an ist und wenn Schaltgrund nicht auto ist setze ich Schaltgrund auf ,,manuell". Bei Licht aus setzte ich Schaltgrund auf ,,aus".

So kann ich über das UserReading Schaltgrund im Device Eltako abfragen wie das Licht eingeschaltet wurde. Das funktioniert sehr zuverlässig.

Gisbert

#91
Hallo hanswerner1,

ZitatSo kann ich über das UserReading Schaltgrund im Device Eltako abfragen wie das Licht eingeschaltet wurde. Das funktioniert sehr zuverlässig.
Das ist eine interessante Idee, die ich ausprobieren werde.

Gestern war ich jedoch mit deiner ursprünglichen Idee beschäftigt, nämlich 2 Sensoren für die offen/geschlossen Erkennung zu nutzen. Das hat mich mit diversen Schwierigkeiten - wie üblich - einige Stunden gekostet, bei denen ich allerdings einiges gelernt habe.

Zuerst wollte ich einen Hallsensor verbauen und habe mich darin eingelesen. Der benötigt 5V Spannung, gut das kann man sich vom Sonoff rausführen.

Dann ist mir ein Reedkontakt in die Hände gefallen, den ich vor längerer Zeit zum Auslesen des Gaszählers nutzen wollte, was aber wegen der mangelnden Empfindlichkeit nicht geklappt hat. Den hatte ich bereits mit der passenden Länge und Dupont-Steckern ausgestattet, super.
Auf dem Sonoff hatte ich noch einen DHT12 rausgeführt, der zwischendurch den Geist aufgab, weil ein Kabel gebrochen war. Da es nicht gesteckt, sondern gelötet war, musste der Lötkolben ran.

Den Reedkontakt hab ich angeschlossen und den GPIO über einen 100kOhm-Widerstand auf high gezogen. Frage an dieser Stelle: War das nötig, oder kann der ESP das intern über Einstellung in der Software regeln?

Die nächste Schwierigkeit war dann Tasmota, das den Reedkontakt nicht als solchen akzeptiert hat. Ich hab's nicht durch Recherchieren oder Ausprobieren hinbekommen. Also hab ich ESPEasy drauf geschmissen, was zuerst mal ne Viertelstunde rumgezickt hatte, bis es lief. Der Reedkontakt wird als Switch Input definiert und liefert 0 oder 1 - funktioniert also.

Da bei Tasmota die Schaltbefehle per MQTT schön kurz und fürs menschliche Auge gut lesbar sind, wollte ich das bei ESPEasy auch haben. Lange Rede, kurzer Sinn, ich hab's geschafft Rules zu definieren und die per MQTT von Fhem ausführen zu lassen. Wichtig ist ja, dass das potentialfreie Relais kurz schließt und nach einer halben bis einer Sekunde wieder öffnet, d.h. diese Logik muss im Sonoff (in den Rules) liegen. Informationen zu MQTT und ESPEasy findet man jedoch nur bruchstückhaft, was entsprechend langes Rumexperimentieren bedeutet hat. Wen es interessiert, ich hab mir eine kleine Anleitung geschrieben, die ich gerne teilen kann.

Es funktioniert alles, auch das Fhemdevice sieht gut aus, jetzt kann ich den Sonoff wieder in die Garage hängen und mich den anderen Ideen widmen.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

hanswerner1

Zitat von: Gisbert am 26 August 2019, 08:56:35
Den Reedkontakt hab ich angeschlossen und den GPIO über einen 100kOhm-Widerstand auf high gezogen. Frage an dieser Stelle: War das nötig, oder kann der ESP das intern über Einstellung in der Software regeln?

Ich glaube nicht unbeding, hatte das damals so mit den Wiederständen mal gelesen um definierte Zustände an den GPIO's zu haben.
Hab das auch noch so, aber mittlerweile in anderen Projekten ohne die Wirderstände mit der Einstellung "Internal PullUp " auch keine Probleme. 

Papa Romeo

Hallo Gisbert,

bei eigenen Sketchen kannst du das z.B. so regeln, dass du keinen externe Pullup benötigst.

.
.
.
#define SENSOR1  3   
.
.
.
void setup()
     {pinMode(SENSOR1,INPUT_PULLUP); 
.
.
.               



...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

Gisbert

Kurze Rückmeldung hierzu.
ZitatDen Reedkontakt hab ich angeschlossen und den GPIO über einen 100kOhm-Widerstand auf high gezogen. Frage an dieser Stelle: War das nötig, oder kann der ESP das intern über Einstellung in der Software regeln?

Ich hab in ESPEasy den Internal PullUp angekreuzt und versucht, ob der Reedkontakt ein Signal reinbekommt.
Entweder war meine "fliegende" Verkabelung zu schlecht, jedenfalls hat's mit dem PullUp nicht funktioniert, also zurück zum 100kOhm-Widerstand.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

bajuware

Hallo Zusammen,

eine Frage bezüglich der Sonoff Basic Konfiguration:
Wer hat denn eine finale Lösung mittels Tasmota und MQTT konfiguration und kann diese teilen?
Und: wie sieht es aus, wenn der Sonoff(Tasmota) neu started? Bei mir wird immer Status des Reed Kontakts zu anfangs
invertiert. Also wenn der Kontakt offen ist, wird der Status als "On" also geschlossen angezeigt.
Siehe zweite Zeile. Kontakt ist dem Fall offen gewesen:
13:27:34 RSL: tele/tasmota_4CA967/STATE = {"Time":"2021-10-29T13:27:34","Uptime":"0T00:00:11","UptimeSec":11,"Heap":27,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":20,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"PG-HAUS","BSSId":"3C:A6:2F:A9:9C:63","Channel":11,"RSSI":100,"Signal":-37,"LinkCount":1,"Downtime":"0T00:00:05"}}
13:27:34 RSL: tele/tasmota_4CA967/SENSOR = {"Time":"2021-10-29T13:27:34","Switch1":"ON"}
13:28:07 RSL: tele/tasmota_4CA967/SENSOR = {"Time":"2021-10-29T13:28:07","Switch1":"ON"}
13:28:08 RSL: tele/tasmota_4CA967/SENSOR = {"Time":"2021-10-29T13:28:08","Switch1":"OFF"}


Für bessere Lösungen auf dem Sonoff Basic bin ich sehr offen.

Aktuelles Setup:
Sonoff Basic RF R2 V1.0
1x Reed Kontakt and GPIO3
SwitchOption 15


Grüße

Gasmast3r

Nutze das mitlerweile mit dem Wemos D1 Mini
Entschuldige das ich DOOF FRAGE aber ich habe Psychische Probleme und Leide an ADHS mit Kognitiver-Hyperaktivität.

Papa Romeo

Zitat von: bajuware am 29 Oktober 2021, 14:29:18
Also wenn der Kontakt offen ist, wird der Status als "On" also geschlossen angezeigt.

...ist ein GPIO "offen", dann hat dieser über den Pullup ein "HIGH" anliegen und wird somit als "ON" erkannt.

LG
Papa Romeo
...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

bajuware

#98
@gasmast3r
Ich werde es heute auch mal mit einem ESP32 testen.
Der Sonoff ist halt komfortabel weil er die Relais an Board hat.

@Papa Romeo
Das passiert aber nur beim starten des Gerätes.
Im Betrieb wird es richtig erkannt. Eben bis auf das erste Signal
welches ich ja manuel triggern muss.
Kann man das denn irgendwie ändern bzw umgehen? Widerstand?

Grüße


Papa Romeo

#99
Zitat von: bajuware am 30 Oktober 2021, 08:06:12
Das passiert aber nur beim starten des Gerätes.

Bein Booten braucht der ESP bestimmte logische Pegel an seine GPIO´s.
0(Flash) ,1(TxD)und 2 müssen "HIGH" sein.
GPIO03 (RxD) wird bei Booten auf HIGH gelegt, kann oder darf aber auch z.B. durch einen Öffner auf LOW liegen.
Hast du einen Schliesser angeschlossen, also "offen", ist der Pegel natürlich "HIGH".

Zitat von: bajuware am 30 Oktober 2021, 08:06:12
Im Betrieb wird es richtig erkannt.

... da kommt dann der Sketch(Tasmota) ins Spiel, wie es dort definiert ist.


LG

Papa Romeo
...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

bajuware

Vielen dank für die Erklärung.
Würde dann eigentlich bedeuten ein anderes Board zu nehmen und dann dort die entspr. "freien" GPIO's, richtig?
Leider ist GPIO14 auf dieser Board VErsion os gut wie unerreichbar.

Papa Romeo

Zitat von: bajuware am 30 Oktober 2021, 15:57:55
Würde dann eigentlich bedeuten ein anderes Board zu nehmen und dann dort die entspr. "freien" GPIO's, richtig?

... hier eine Übersicht, wann die GPIO´s wie genutzt werden können ...

https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/

LG
Papa Romeo
...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

bajuware

Ok, habe jetzt der Vollständigkeit halber den Kontakt an GPIO14 angebracht. Laut Doku der Pins sollte das keine Problem zwecks Boot machen. Aber ich habe immer noch den widersprüchlichen Status des Schalters. Obwohl er aus ist und das auch korrekt protokolliert wird sagt der Status in diesem Fall "ON". Sie log unten. Woran liegt das? Ist die Platine kaputt?

CMD: Switchmode2 15
12:41:27 RSL: stat/tasmota/RESULT = {"SwitchMode2":15}
12:41:34 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:34","Switch2":"ON"}
12:41:34 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:34","Switch2":"OFF"}
12:41:35 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:35","Switch2":"ON"}
12:41:35 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:35","Switch2":"OFF"}
12:41:36 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:36","Switch2":"ON"}
12:41:36 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:36","Switch2":"OFF"}
12:41:42 CMD: Status 8
12:41:42 RSL: stat/tasmota/STATUS8 = {"StatusSNS":{"Time":"2021-10-31T12:41:42","Switch2":"ON"}}

Papa Romeo

..definiere mal was bei dir "ON" und was "OFF" ist.

Ist ein "HIGH-Pegel" am GPIO "ON" und ein "LOW-Pegel" an GPIO "OFF" so, wie es definiert ist, wenn er als Ausgang genutzt wird oder ist es umgekehrt.

Am Eingang ist es in der Regel so, dass ein "ON" dann vorliegt, wenn der Schalter oder Taster geschlossen ist. Dies wiederum hat am Eingang aber ein LOW zu Folge.
Ein LOW wird aber eigentlich als "OFF" deklariert.

Der GPIO14 ist zwar für das "Booten" nicht relevant, aber an ihm liegt bei offenen Schalter trotzdem ein "HIGH-Pegel" und wird daher während dem "Booten´s" als
"ON" erkannt.

Was ist eigentlich so schlimm daran, dass der ESP während dem Booten seine tatsächlichen Pegel an den GPIO´s wieder gibt ?
Wird doch dann durch den Sketch korrigiert.

LG
Papa Romeo
...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

bajuware

Das ist im Prinzip gar nichts schlecht dran.
Ich möchte ja im Prinzip einfach nur den Zustand des Reed Kontakts wissen und mittels mqtt gesendet bekommen. Und natürlich auch nach einem Stromausfall wissen wollen ob das Tor eben offen oder zu ist.