Rollladensteuerung mit ESP01 für Schalterdoseneinbau

Begonnen von Papa Romeo, 12 Juni 2018, 18:43:52

Vorheriges Thema - Nächstes Thema

lewej

Hi,

Ich wäre auch interessiert an der Lösung mit OTA und weiteren Anpassungen, wäre Super wenn es hier für alle bereit gestellt wird.

Gruss und Danke

lewej

@Sven

Du hattest die sketch Problematik so genau beschrieben, das ich davon ausgegangen bin, das du bereits in der Umsetzung bist.
Deshalb auch meine Anfragen dahingehend.

Nein den Button habe ich nicht doppelt abgefragt, an welcher Stelle müsste ich das machen?

Gruss

Sven77

Hatte ich hier schon geschrieben...  ;)

Einfach die beiden vorhandenen Zeilen in loop() nochmal wiederholen. Also aus:
      button1.tick();                                                             // Schalter Eingang 1 abfragen
      button2.tick();                                                             // Schalter Eingang 2 abfragen


das hier machen:
      button1.tick();                                                             // Schalter Eingang 1 abfragen
      button2.tick();                                                             // Schalter Eingang 2 abfragen
      button1.tick();                                                             // Schalter Eingang 1 abfragen
      button2.tick();                                                             // Schalter Eingang 2 abfragen
VG, Sven

Papa Romeo

lewej,

sag mir mal wo du da eine Verzögerung hast.

Du weist aber schon, dass du denn Sketch für Schalter und Taster konfigurieren kannst. So wie ich den Sketch eingestellt habe, ist Modus 1 aktiv.

Das heißt konfiguriert für z.B. Rollladenschalter wie auf meinem Bild.

Dann ist im Sketch "button.attachPress" aktiv und wenn du den Schalter in eine Stellung bringst, dauert es etwa 1 bis 1,5 Sekunden bis das Relais schaltet.

Wenn Du die Tasterfunktion willst, mußt Modus 2 oder 3 wählen. Dann ist zusätzlich "button.attachclick" aktiv und das Relais schaltet sofort.

Beispiel Modus 2: Taster Down --> Rollladen fährt runter --> Taster UP --> Rolladen hält an --> Taster UP --> Rolladen fährt hoch --> Taster Down --> Rollladen hält an --> Taster Down --> Rollladen fährt runter   usw.

Beispiel Modus 3: Taster Down --> Rollladen fährt runter --> nochmal Taster Down --> Rollladen hält --> bzw. Taster UP --> Rollladen hält an und fährt sofort hoch...usw.

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

lewej

Hallo Papa..,

Ja das habe ich gemacht, bei mir ist ebenfalls auf Modus 1 gesetzt, ich habe zwar keine Drehschalter aber auch Jalousie Schalter.

Wenn du schon schreibst das es dauert(ca. 1,5s), bis die Relais anziehen, so ist das auch bei mir.
Mich wundert nur, das über MQTT die Verzögerung nicht das sind, da ziehen die Relais sofort an.

Ist das so mit den Schaltern gewünscht?

Ich bin gewohnt, das wenn man Schalter oder Taster bedient, das keine Schaltverzögerung warnehmbar sind.

Gruss

Papa Romeo

Ich hab das so gemacht, weil es für mich einfacher zum Programmieren war. OneButton bringt diese Funktion mit. Ich weiß jetzt allerdings nicht ob man diese Zeit im LIB eventuell auch verkürzen könnte z.B. auf eine halbe oder viertel Sekunde.

Müsste man mal die Profis fragen.

MQTT macht ja keine Tasterabfrage, sondern sendet den Befehl sofort.
...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

Katzechrisu

#171
Wenn ich den Sketch von PapaRomeo aufspiele, kann ich das dann in ioBroker verarbeiten?
Ich habe weder dort was gesehen noch hat ein Relais einfach geschaltet.
Die Relais haben ,,nach einem bestimmten Muster" geschaltet ohne das ich einen Taster gedrückt habe
Nach Tastendruck haben Sie das ,,Schaltmuster" geändert aber ich hab nicht durchgeblickt wie.
Deshalb hab ich dann Tasmota drauf gespielt um die Funktion zu testen. Damit funktioniert leider keine direktes betätigen der Rolladen ohne MQTT.

Frage zu PapaRomeo's Sketch:
-Was muss passieren wenn ich die Spannung einschalte?
-Was muss passieren wenn ich auf oder ab drücke?
-Wie kann ich den Modus 1,2 oder 3 einstellen?
-Must der mit Arduino compiliert werden, irgendwas spezielles zu beachten?

Papa Romeo

Wenn du die Spannung anlegst, dann schalten beide Relais ein und der Rollladen öffnet vollständig (Kalibrierfahrt).
Er fährt sollange hoch wie du in der Variablen Fahrzeit in Sekunden angegeben hast (Default: int Fahrzeit  = 20;).
Dann schalten beide Relais ab.

Drückst du Down schaltet das Netz und das Richtungsrelais.
Drückst du UP schaltet nur das Netzrelais.

Die Variable Modus auf 2 oder 3 abändern. (Default: int Modus = 1;)

Ich habe ihn mit Arduino compiliert. Ja: PubSubClient 2.6
...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

balli1187

N'Abend zusammen.

Wie versprochen anbei mein Sketch mit OTA-Funktionalität.
Der Sketch basiert wie bereits gesagt auf dem des intelligenten E/A-Wechselschalter - nicht auf dem des Rollladenaktors! Die OTA-Funktion lässt sich aber vergleichsweise leicht integrieren.

Im Vergleich zur ursprünglichen und von Papa Romeo bereitgestellten Version habe ich folgendes angepasst
- OTA hinzugefügt
   (Update des Sketches per WLAN möglich. Voraussetzung ist aber ein ESP mit mind. 50% freiem Speicher, damit der neue Sketch parallel zum bestehenden hochgeladen werden kann)
- LWT hinzugefügt
   (sollte das Modul die Verbindung verlieren, wird der Gerätestatus "offline" über ZIEL1 gepublished und man bekommt dies über FHEM mit)
- Aufruf der Funktion Last_Stat() in reconnect()
   (sollte die Verbindung verloren gehen, wird der aktuelle Status nach erfolgreichem reconnect gesendet)
- Aufruf von reconnect() in void setup()
   (in Verbindung mit den anderen Änderungen kann in void loop() der first_run-Teil entfallen)
- MQTT-Stati und Befehle auf set_on/off und is_on/off geändert
   (gibt dem ganzen in FHEM ein feeling wie bei Homematic, da entsprechende icons existieren und automatisch gesetzt werden)
- Last_Stat() und Rel_Stat() zusammengefasst
   (die beiden werden eh immer in Kombination ausgeführt)
- Blaue LED abgeschalten
   (fürs Testen nach dem Zusammenbau ist es hilfreich aber nach dem Einbau in die UP-Dose sieht das niemand mehr)
- Topic ZIEL3 gelöscht
   (war für mich redundant zu ZIEL2/ZIEL1)
- die anderen Topics angepasst
   (hat keinen "technischen" Hintergrund, entspricht nur meinen Vorlieben und ist an Tasmota angelehnt)


Hoffe es hilft dem einen oder anderen.

Grüße, Stephan
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Gisbert

#174
Hallo Stephan (balli1187),

OTA ist sicher interessant, wenn man einen im Prinzip funktionierendes Sketch, den man vorher getestet hat, auf einen verbauten ESP flashen will, ohne die halbe Schalterdose auseinanderzupflücken.
Ich bin leider noch nicht soweit, möchte das, was ich bisher ausprobiert habe, hier mitteilen.
Meine Bitte wäre, dass du dir anschaust, wo bei meinem Gespreibsel der Wurm drin ist.

    Meine Änderungen:
    • MQTT mit User und Password: Credentials sind im Code, hier weiß ich keine bessere Lösung
    • WifiManager: funktioniert; damit braucht man die Credentials nicht im Sketch zu verewigen
    • Webserver, aus einem Blog von Stefan Thesen: siehe angehängten Screenshot: funktioniert
    Hier aber ein Hinweis:
    • Der Webserver funktioniert nur, wenn man den Board Manager die Version 2.4.0 in Arduino ausgewählt hat

    Was funktioniert nicht oder nur teilweise:

    • Fahrbefehle über MQTT werden nicht ausgeführt
    • Vorortbedienung (im meinem Fall ein Drehschalter) funktioniert nicht
    • Ein Befehl über den Webserver wird ausgeführt und und es werden MQTT-Befehle gepublished, allerdings läuft die Prozentzahl um genau 1 oder 2 Stellen runter und nicht weiter. D.h. wenn man bei 100 startet und runterfährt, wird 99 gepublished - und das wars; der Rollladen kommt nie bei 0 an. Gebe ich einen neuen Befehl im Webserver zum Runterfahren, dann werden 98 gepublished und die Spannung leigt weiter an (Ich teste das ganze mit angeschlossenen Glühbirnen).

    Fazit: es gibt Fehler im Sketch - aber da der Fahrbefehl im Webserver zumindest einmal den ursprünglichen Fahrbefehl (Down, Up, Stop) aufruft, dann aber nicht weiter läuft, ist meine Hoffnung, dass es sich um ein lösbares Problem handelt. Es wäre echt toll, wenn du mich anleiten könntest.

    Den Webserver finde ich deshalb gut, weil man nur die IP-Adresse des Schalters eingeben muss - und schon hat man eine Bedienoberfläche, und zwar zusätzlich zur Vorortschaltung und einer möglichen Automatisierung in Fhem.

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

Katzechrisu

@ Gisbert
Warum geht die Vorortbedienung nicht bei Dir? Bei PapaRomeo funktioniert es doch.

Bei mir geht es sogar mit Tasmota.

Gisbert

Zitat von: Katzechrisu am 17 November 2018, 19:53:56
@ Gisbert
Warum geht die Vorortbedienung nicht bei Dir? Bei PapaRomeo funktioniert es doch.

Bei mir geht es sogar mit Tasmota.

Hallo Katzechrisu,

Wenn ich das nur wüßte - es geht beides nicht, die Vorortbedienung und die Fahrbefehle per MQTT -, dann würde ich erstens nicht fragen und zweitens hätte ich dann den funktionierenden Sketch angehängt.
Das Zusammenkopieren von 2 Sketchen funktioniert dann doch nicht. Die Kompilierung hat natürlich funktioniert, sonst hätte ich den Sketch ja nicht flashen können.
Er funktioniert nur anders als ich will  >:(

Aber zu Tasmota:
Kannst du mir sagen wie du es in Tasmota gemacht?
Wie sind die 4 GPIO's definiert?
Hast Du Rules angelegt, ich vermute mal ja, kannst Du die mitteilen?
Ich probiere gerne Tasmota aus.
Kannst du Screenshots anhängen und so gut wie möglich beschreiben, wie du es gemacht hast.
Mit Tasmota kenne ich mich im mittlerweile gut aus, es reichen deshalb die für den Rollladenschalter spezifischen Einstellungen.

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

Katzechrisu

Nein, habe keine Rules angelegt. Ich steige da noch immer nicht durch. Aber vermutlich sollte es damit auch gehen.

Ich habe 6 Pins definiert!
GPIO0 Relais1
GPIO1 Switch3
GPIO2 Switch4
GPIO3 Relais2
GPIO4 Relais3i
GPIO5 Relais4i

Die Relais 3 und 4 sind natürlich nur virtuell.
Sie senden aber die MQTT Nachricht an ioBroker.
Dort habe ich ein Skript angelegt was dann entsprechend, wenn der eine Taster gedrückt wird schaltet Relais 1 und wenn der andere gedrückt wird schaltet Relais 2

Ich kenne FHEM überhaupt nicht. Evtl. kann man auch dort solche Scripte anlegen.

Vermutlich würde es auch ohne ioBroker gehen wenn ich das mit den Rules in Tasmota für meine pin Definition hinbekäme.


Gisbert

Hallo Katzechrisu,

dafür dass du Fhem überhaupt nicht kennst, hast du ganz schön viele Beiträge hier. Bist du ein ioBroker-Spion? ;)

Ich spiele mal Tasmota auf und horche dann mal, welche Nachrichten einlaufen. Mir ist noch nicht klar, warum 6 GPIO's definiert werden, in Papa Romeos Sketch sind es nur 4. Aber vielleicht wird es ja klar, wenn ich es ausprobiere?

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

Katzechrisu

Ach Mist, jetzt hast Du mich entlarvt.😱

Ne Quatsch, mir gefallen die Projekte von PapaRomeo Romeo so gut.
Hatte zuerst ein paar Luani Module aufgebaut. Aber das ganze ,,SMD-Gefummel" ist ein Riesen Akt beim löten wenn man das mit einem Lötkolben machen muss.
Die Module hier sind super einfach zu bauen.

Und denen fertigen Lösungen traue ich nicht so richtig wegen der fehlenden galvanischen Trennung und damit der fehlenden Möglichkeit Sensoren anzuschließen.

Das mit den 6 pins habe ich nicht anders hinbekommen.
Wenn Du mal schaust ist nur Relais1 und 2 definiert, kein Switch 1 und 2.
Das heißt: Switch 3/4 schalten viertuell Relais 3/4 das ,,State" wird dann genutzt um die wirklichen
Relais zu schalten.
Ich hab's nicht anders hinbekommen.
Ich bin Handwerker kein Programmierer, bin aber für andere Lösungen dankbar.