NEWS
Phasenanschnittdimmer für Infrarotheizung?
-
Hallo zusammen,
ich habe jetzt den KEMO M240 mal angeschlossen.
So weit so gut. Die Leistung läßt sich gut regeln.
Womit ich jetzt noch ein kleines Problem habe ist die Verbindung von einem Wemos D1 mini per PWM an den KEMO M240 .
Welchen Pin und welches DEVICE nehme ich bei ESP Easy Mega?
Wird das einfach per
http://<ESP IP address>/control?cmd=PWM,<pin>,<level>
gemacht? Ohne das ich ein Device auswähle?
Grüße
Manfred -
@beowolf
entsprechend
"PWM Pins: ESP8266 allows software PWM in all I/O pins: GPIO0 to GPIO15. PWM signals on ESP8266 have 10-bit resolution."Kannst Du Dir einen aussuchen der sonst nicht benötigt wird. Vlt. GPIO12,13 oder 14 um keine ungewollten Effekte durch einen Reboot des ESPs zu bekommen.
Ein Device brauchst Du nicht anlegen. Die PWM GPIOs oder generell GPIOs lassen sich bei ESPEasy auch so per http steuern. Sonst wären die 12 Möglichen ja noch schneller aufgebraucht
VG
-
Einfach mal angeschlossen. D3 und Masse an den PWM Eingang vom KEMO.
Siehe da - es funktioniert mit dem Befehl http://192.168.49.147/control?cmd=PWM,00,0
Heizung ist dann aus.
Mit http://192.168.49.147/control?cmd=PWM,00,1023
Heizung ist voll an.
Wobei 1023 für max ist doch richtig, oder?
-
@beowolf said in Phasenanschnittdimmer für Infrarotheizung?:
Wobei 1023 für max ist doch richtig, oder?
Ja
@beowolf said in Phasenanschnittdimmer für Infrarotheizung?:
Einfach mal angeschlossen. D3 und Masse an den PWM Eingang vom KEMO.
Solange dir der Kemo den D3 nicht auf Masse zieht alles ok. Andernfalls verhindert das bei einem Reboot, dass der ESP dann durchbootet.
-
D3 war jetzt nur zum Testen. Das fertige Kabel passte so zufällig auf die Kontakte.
Gibt der Wemos eigentlich den eingestellten PWM-Wert auch wieder aus?
So das ich den als Kontrolle in einer Grafik darstellen kann?
-
@beowolf said in Phasenanschnittdimmer für Infrarotheizung?:
Gibt der Wemos eigentlich den eingestellten PWM-Wert auch wieder aus?
So das ich den als Kontrolle in einer Grafik darstellen kann?
Mit der Frage hab ich gerechnet. In der (ESPEasy )Doku ist beschrieben wie man das über MQTT Implementiert. Das sollte man dann zB über den Sonoff/MQTT Adapter dann auch das PWM ansteuern können, aber auch das Feedback über den tatsächlichen Ist-Zustand erhalten.
Ist ein paar Tage her (Ältere ESPEasy Version) und ich hab es nicht geschafft das per MQTT vernünftig und zuverlässig in Betrieb zu setzen. War mir dann irgendwann zu doof. Und nun steuere ich wie Du per HTTP den ESP an und hab mir per Regel im ESP hinterlegt, dass beim Bootvorgang und bei jeglicher Änderung mir der Status per MQTT an IOBroker gesendet wird. Das funktioniert sehr zuverlässig.
Kann Dir gerne eine Kopie so einer Regel hier reinkopieren.
Edit: Alternativ und ungetestet würde ich aktuell einfach doch mal ein Device (zB Input Switch) anlegen und mit dem GPIO verknüpfen. Dann "send to controller" aktivieren und mit bestehender MQTT Verbindung könntest Du den Status im IOBroker bekommen.
-
@dieter_p sagte in Phasenanschnittdimmer für Infrarotheizung?:
Edit: Alternativ und ungetestet würde ich aktuell einfach doch mal ein Device (zB Input Switch) anlegen und mit dem GPIO verknüpfen. Dann "send to controller" aktivieren und mit bestehender MQTT Verbindung könntest Du den Status im IOBroker bekommen.
Tut nich.
Kopie der Regel wäre sehr nett. Vielen Dank.
-
schau mal ob das so für dich funktioniert. Ist ein Extrakt wobei ich bei mir binäre Schaltzustände prüfe. Ein Test mit PWM hat bei mir aber funktioniert. Unter Controller (ESPEasy) muß natürlich MQTT eingerichtet sein damit das verschicken in der Regel funktioniert.
on System#Boot do Monitor GPIO,15 //aktiviert das Monitoring für den GPIO gpio,15,0 // setzt den GPIO beim Reboot auf 0 endon on GPIO#15 do // Regel basierend auf Änderung des GPIO Publish %sysname%/GPIO/GPIO15,[plugin#gpio#pinstate#15] // verschickt per MQTT den Status des GPIO endon
die 15 zu Deinem GPIO anpassen.
-
so vielleicht noch netter:
on System#Boot do Monitor GPIO,15 //aktiviert das Monitoring für den GPIO gpio,15,0 // setzt den GPIO beim Reboot auf 0 endon on MQTT#Connected do Publish %sysname%/GPIO/GPIO15,[plugin#gpio#pinstate#15] endon on GPIO#15 do // Regel basierend auf Änderung des GPIO Publish %sysname%/GPIO/GPIO15,[plugin#gpio#pinstate#15] // verschickt per MQTT den Status des GPIO endon
-
Danke dafür, aber
ich mache das per http
http://192.168.49.147/control?cmd=PWM,00,300um z.B. 300 zu übermitteln.
Das habe ich als Regel eingetragen.
on System#Boot do Monitor GPIO,0 //aktiviert das Monitoring für den GPIO gpio,0,0 // setzt den GPIO beim Reboot auf 0 endon on MQTT#Connected do Publish %sysname%/GPIO/GPIO0,[plugin#gpio#pinstate#0] endon on GPIO#0 do // Regel basierend auf Änderung des GPIO Publish %sysname%/GPIO/GPIO0,[plugin#gpio#pinstate#0] // verschickt per MQTT den Status des GPIO endon
Im mqtt Bereich im ioBroker bekomme ich an der passenden Stelle aber nur eine "0" zurück.
Was mache ich falsch?
-
@beowolf said in Phasenanschnittdimmer für Infrarotheizung?:
Im mqtt Bereich im ioBroker bekomme ich an der passenden Stelle aber nur eine "0" zurück.
Was mache ich falsch?
Hast Du den ESP nachdem speichern der Regel neu gebootet?
a) das ist notwendig um oben (2te Zeile) das Monitoring aktiv zu schalten
b) nach dem Reboot ist der Ausgang auf 0 (siehe 3te Zeile), hast Du danach nochmal ein http Befehl abgesetzt? zB PWM 300?Du kannst eine Zwischenprüfung machen. Geh in das Menü Tools und in der Konsole kannst Du den GPIO prüfen mit Status,G,0 für GPIO0
siehe hier als Beispiel bei mir für GPIO 12 und ich habe PWM auf 50 gesetzt.
Darunter wird das Ergebnis angezeigt: .... Mode PWM und State 50
Genau die 50 (der state) wird dann auch per MQTT an den IObroker geschickt.Stimmt der Command Output schon nicht bei Dir, kann der MQTT und die Regel nicht funktionieren.
Stimmt die Ausgabe dort kannst Du auch manuell in der Konsole mit
Publish %sysname%/GPIO/GPIO0,[plugin#gpio#pinstate#0]
den State/Wert einmalig über MQTT verschicken z.B. zum testen. Desweiteren zum Testen, kannst du dort auch direkt in der Konsole den PWM setzen (erspart vielleicht was Klickerrei):
PWM,0,300 // 300 der Wert und 0 der GPIO
-
Ich habe das jetzt noch einmal alles kontrolliert.
Kann das mit der ESP-Easy Version zusammen hängen?
-
mmmh, schwierig sieht für mich bis auf das Ergebnis alles gut aus.
Siehst Du im IOBroker den Zeitstempel das da wirklich jedes mal mit dem manuellen Submit eine "0" ankommt?
Der Temp Sensor funktioniert ja über MQTT also sollte die Verbindung/Konfiguration passen.
Bin bei Kommandoreferenzsuche über einen alten Beitrag(2019) gestolpert, der sagte dass einfach ein Dummy Device (mit GPIO) anzulegen ist, damit das Monitoring allgemein funktioniert. Das war aber ein Bug und TD-er sagte er hat das gefixt.
Ich hab bei mir die mega-20230623 drauf.
-
ah da ist noch ein "Dreher" drin. Passe es an, sekunde
-
Ich habe jetzt mal die akuellste Version aufgespielt.
Wenn ich nun
Publish %sysname%/GPIO/GPIO4,[plugin#gpio#pinstate#4]
über die Konsole eingebe kommt es auch im ioBroker an.
Aber wenn ich per http den PWM Wert ändere tut sich nichts.
Ich bin auf GPIO 4 umgestiegen.
-
@beowolf
da "kämpfe" ich gerade auch.
Er nimmt den Trigger aus der Regel nicht.
Habt das aktiv laufen, aber mit einen PCF8574 Modul Expander und somit das von zB:on pcf#1 do Publish,%sysname%/PCFGPIO/P1Gruen,[plugin#pcfgpio#pinstate#1] endon
zu:
on GPIO#0 do // Regel basierend auf Änderung des GPIO Publish %sysname%/GPIO/GPIO0,[plugin#gpio#pinstate#0] // verschickt per MQTT den Status des GPIO endon
angepasst, aber da hackt es jetzt. vermute die Schreibweise passt nicht, aber tüftel noch dran rum
Edit:
Ok, Fehler gefunden. Der Trigger kann nicht funktionieren, da das Monitoring nur für digitale Werte funktioniert:
"To monitor a GPIO state. By the use of the command you will receive events when the GPIO state of that pin is changed from 1 to 0 and from 0 to 1."Na denn bastel ich mal anders....
-
Ich habe das jetzt mal so gemacht.
on System#Boot do Monitor GPIO,4 //aktiviert das Monitoring für den GPIO gpio,4,0 // setzt den GPIO beim Reboot auf 0 endon on MQTT#Connected do Publish %sysname%/GPIO/GPIO4,[plugin#gpio#pinstate#4] endon on Temp_Sensor#temperature do // Regel basierend auf Änderung des GPIO Publish %sysname%/GPIO/GPIO4,[plugin#gpio#pinstate#4] // verschickt per MQTT den Status des GPIO endon
Jedes mal, wenn sich die Temperatur ändert wird der PWM-Wert übermittelt.
Das funktioniert.
Wenn ich das mal weiter "spinne" möchte ich eigentlich das alles so haben, das ich die Zieltemperatur einfach eingeben kann. Ich glaube dazu benötige ich eine "PID-Regelung"?
Da bin ich aber noch nicht. Das habe ich noch nicht so richtig verstanden wie das geht.
Grüße
-
ah prima ok. Wenn Dir die Abhängigkeit/Verbindung zur Temperatur so reicht ist das doch eine Lösung.
Wo möchtest Du denn regeln? Direkt im ESP oder im IObroker?
Für ESPEasy hab ich das noch nicht "easy" gesehen. Nutze selbst eine Temperaturregelung für den Gefrierschrank in ESPEasy aber das ist nur eine 2-Punkt Regelung (An/Aus) und nicht in der Lage ein PWM zu regeln.
Über IOBroker kann dir vielleicht jemand im Logik-Bereich des Forum helfen.
-
Soll dann schon über ioBroker laufen.
Danke für die Hilfen.
-
gerade eine Lösung bekommen:
on System#Boot do gpio,4,0 // setzt den GPIO beim Reboot auf 0 endon on MQTT#Connected do Publish %sysname%/GPIO/GPIO4,[plugin#gpio#pinstate#4] endon on fanpwm do PWM,4,%eventvalue1% Publish %sysname%/GPIO/GPIO4,[plugin#gpio#pinstate#4] endon
Ansteuern dann über:
http://192.168.49.147/control?cmd=event,FANPWM=300