NEWS
Phasenanschnittdimmer für Infrarotheizung?
-
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
-
Geil. Funktioniert.
Vielen Dank für die Hilfe.