Guten Tag zusammen,
Folgende Situation:
Ich möchte meine Lampen, nebst Tastdimmer, mit dem ESP8266 An- und
Ausschalten sowie dimmen, indem ich einfach ein Relais parrallel zum
Taster für die Ansteuerung des Dimmers setze.
Das ganze kommt in den Schaltschrank, die zusätzlichen adern liegen
bereits in der Unterputzdose.
Das An/Aus an sich ist jetzt kein Thema, allerdings macht mir meine
nicht sehr weitreichende Erfahrung Schwierigkeiten was das Dimmen
angeht.
An und Ausschalten funktioniert, indem ich eine Adresse (meinetwegen
IP/gpio/1) aufrufe(wie in der Arduino IDE das Webserver Beispiel für den
ESP). Beim dimmen aber brauche ich ja theoretisch eine durchgehend
vorhandene Verbindung, bei der der ESP erkennt, wie lange ich jetzt
diesen Button gedrückt halte um damit genau die Helligkeit bestimmen zu
können.
Nochmal kurz: Solange ich den Button für das Licht betätige, soll ein
Relais vom ESP8266 angesteuert werden, welches mir das Licht dimmt, bzw.
bei kurzer Ansteuerung das Licht an und ausschaltet.
Hat jemand vielleicht eine Idee, einen Rat/Vorschlag, wie UND OB das
ganze soweit überhaupt möglich ist?
Ich bedanke mich Voraus!
Hallo,
Im Browser hast du ja für den Button entsprechende Ereignisse für
Drücken und Loslassen das sollte kein Problem sein. Wenn du jetzt damit
einen entaprechenden Aufruf an deinen ESP sendest wird die Verzögerung
für diesen Zweck allerdings zu groß sein um sinnvoll einen Dimmer zu
steuern.
Für den Zweck einer möglichst verzögerungsfreien Weiterleitung der
Aktion auf Weboberfläche und dem Server kommt eigentlich nur eine
Websocket-Verbindung in Frage. Dort bleibt die TCP-Verbindung dauerhaft
geöffnet und Client und Server können beliebig Daten hin- und hersenden.
Darüber habe ich z.B. einen Steuerung für RGB-LEDs per Schieberegler
realisiert. Ob du auf dem ESP einen entsperchenden Websocketserver zum
laufen bringst weiß ich jedoch nicht.
Sascha
Hab mich mal über websockets schlau gemacht und einige erlärungen
gefunden. Das könnte mein Problem.tatsächlich lösen! Jetzt muss ich aber
leider doch noch etwas nachhaken:
Ich habe jetzt eine dauerhafte verbindung zwischen client und server,
ich weiß jetzt, dass der ESP websocket kann. Jetzt fehlt mir nur ein
wenig die Erfahrung, wie ich dem esp sagen kann er soll einen ausgang
solange schalten, wie ich den button gedrückt halte... er soll ja genau
dann reagieren sobald ich den button drücke, wie kann ich ihm sagen,
dass er den status dauerhaft überwachen soll, ohne zwischendurch den
ausgang wieder wegzuschalten?
Guest schrieb:> Jetzt fehlt mir nur ein> wenig die Erfahrung, wie ich dem esp sagen kann er soll einen ausgang> solange schalten, wie ich den button gedrückt halte...
Da brauchst Du eigentlich garnichts erfinden oder selbst programmieren,
lies mal unter OpenHAB und ESP8266 + MQTT nach.
http://www.openhab.org/https://github.com/tuanpmt/esp_mqtt
und wenn Du ein bi0chen suchst, findet Du fertige Images für den ESP...
Das OpenHAB stellt Dir die Webseite(n) für alle gesteuerten,
geschalteten oder sonstwie angebundenen Devices. Im OpenHAB legst Du
auch fest, wie das Device auf Knopfdruck reagieren soll (bpw: kurz ->
ON, bzw. 255, lang -> 0...254)
die Daten werden per MQTT an den ESP (oder per Mosquitto an den ESP)
übertragen...
Just my 2 cents
Elux
Guest schrieb:> Hab mich mal über websockets schlau gemacht und einige erlärungen> gefunden. Das könnte mein Problem.tatsächlich lösen! Jetzt muss ich aber> leider doch noch etwas nachhaken:> Ich habe jetzt eine dauerhafte verbindung zwischen client und server,> ich weiß jetzt, dass der ESP websocket kann. Jetzt fehlt mir nur ein> wenig die Erfahrung, wie ich dem esp sagen kann er soll einen ausgang> solange schalten, wie ich den button gedrückt halte... er soll ja genau> dann reagieren sobald ich den button drücke, wie kann ich ihm sagen,> dass er den status dauerhaft überwachen soll, ohne zwischendurch den> ausgang wieder wegzuschalten?
Du definierst auf der Website für deinen Button die zwei Ereignisse für
Gedrückt und Losgelassen. Mit dem einen Ereigniss sendest du z.B "a" und
mit anderen "b". Wenn der ESP jetzt ein "a" erkennt dann schaltet er
deinen Ausgang ein. Erkennt er ein "b" schaltet er ihn wieder aus. Wird
die Verbindung getrennt oder es dauert ewig dann sollte er den Ausgang
natürlich auch wieder abschalten.
Sascha
@Reiner: vielen Dank, werde ich mir gleich mal durchlesen!
@Sascha: So in etwa hatte ich mir das auch gedacht. Nur wie genau ich
das ganze umsetzen kann, was dafür zun tun ist, da haperts noch^^
Aber ich glaube ich lese mich erst mal weiter schlau was websockets
angeht oder schaue mir auch den Einwurd von Reiner an.
Vielen Dank erstmal für die Hilfe!
Eine eigene Frage?
Dieser Thread ist über 10 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.