Hallo Zusammen,
ich würde gerne über den I2C Bus 2Relais ansteuern was soweit auch schon Funktioniert.
Allerdings wenn Relais1 geschaltet wird muß vorher Relais2 abgeschaltet werden. (bzw auch umgekehrt)
Jetzt dachte ich mir das ich das ganze über Dummys löse indem ich sage das wenn dummy1 on dann Relais2 off danach Relais1 on.
Die Relais sollen allerdings auch beide auf off geschaltet werden können.
Sie dürfen halt nur nicht zusammen an sein.
Hier noch mein I2C Modul:
Internals:
DEF 0x23
FUUID 5cdad9dd-f33f-0889-e2e7-46a8d35ad16d3b43
I2C_Address 35
I2C_SENDSTAT Ok
IODev I2C
NAME Heizung.Steuerung
NR 356
STATE 3
TYPE I2C_PCF8574
READINGS:
2019-05-14 18:15:02 Port0 on
2019-05-14 18:15:03 Port1 on
2019-05-14 17:08:13 Port2 off
2019-05-14 17:08:13 Port3 off
2019-05-14 17:08:13 Port4 off
2019-05-14 17:08:13 Port5 off
2019-05-14 17:08:13 Port6 off
2019-05-14 17:57:32 Port7 off
2019-05-14 18:27:09 state 3
helper:
InputPorts 0
InvrtPorts 0
Attributes:
IODev I2C
room i2c
und hier das Relais1
Internals:
CFGFN
DEF Heizung.Steuerung:Port0
DEVICE Heizung.Steuerung
FUUID 5cdadcbf-f33f-0889-0078-e73f37643870d99b
NAME Heizung.Steuerung.Relais0
NOTIFYDEV global,Heizung.Steuerung
NR 361
NTFY_ORDER 50-Heizung.Steuerung.Relais0
READING Port0
STATE off
TYPE readingsProxy
CONTENT:
Heizung.Steuerung 1
READINGS:
2019-05-14 18:15:02 lastCmd off
2019-05-14 18:15:02 state off
Attributes:
room i2c
setFn {($CMD eq "on")?"Port0 off":"Port0 on"}
setList on off
valueFn {($VALUE eq "on")?"off":"on"}
Oder könnte mir jemand einen Tipp geben ob man das ganze schlauer lösen könnte?
MFG
Jens
Was für Relais hast Du denn? Ich habe das für meine Rolladensteuerung mit einer Serienschaltung der Relais gelöst. Das erste schaltet den Strom für das zweite an oder aus. (für die Sekundärseite, nicht das Steuersignal) Das zweite ist ein Umschalter und schaltet den Strom an die Verbraucher. Mit Steuersignal an den einen, ohne an den anderen.
Also schaltet Relais 1 den Verbraucher, der am Ruhestromkontakt von Relais 2 hängt an, beide Relais zusammen schalten den Verbraucher am Arbeitsstromkontakt. Relais 1 aus = alles aus, egal welchen Zustand Relais 2 hat. Es können nie beide Verbraucher gleichzeitig an sein und das alles ohne Dummy oder sonstige Fehlermöglichkeit.
Hy ESP_Fan
es sind leider solid-state Relais, die haben nur einen Schließer-Kontakt.
Daher bräuchte ich eine Software-Lösung.
MFG
Jens
Irgendwas sendet ja die Befehle an die Relais. Änder dort doch einfach den Befehl "Port0 on" in "Port1 off; Port0 on".
Hy ESP_Fan,
sorry wenn das jetzt ein bischen doof klingt aber habe das jetzt einfach mal so getestet wie du das hier geschrieben hast.
als Test habe ich Relais 4 und 5 genommen:
Internals:
CFGFN
DEF Relais_Modul20:Port4
DEVICE Relais_Modul20
FUUID 5ce56b3e-f33f-24c4-49bf-7f85c57c997be529
NAME Modul20_Relais4
NOTIFYDEV global,Relais_Modul20
NR 510
NTFY_ORDER 50-Modul20_Relais4
READING Port4
STATE on
TYPE readingsProxy
CONTENT:
Relais_Modul20 1
READINGS:
2019-05-22 17:43:46 lastCmd off
2019-05-22 17:41:05 state on
Attributes:
room I2C
setFn {($CMD eq "on")?"Port4 off":"Port5 off; Port4 on"}
setList on off
valueFn {($VALUE eq "on")?"off":"on"}
raus kommt dabei aber nur die Meldung:
wrong value: off; for "set Relais_Modul20 Port5" use one of: off, on
kannst du mir noch einen Denkanstoß geben?
MFG
Jens
Ich weiß ja nicht, wie Deine Relais konkret angesteuert werden.
Irgendwas muss ja die Steuerspannung an das Relais senden. Dieses "Irgendwas" muss dann statt nur den einen Kanal einzuschalten, erst den anderen aus und danach den gewählten Kanal einschalten.
Oder Du versuchst es mit den Befehlen, die Du über die Kommandozeile auch eingeben kannst. Da müsste es ja möglich sein, die Relais ein- und auszuschalten. Die Befehle könntest Du dann in Dein setFn-Attribut packen.
Das sind aber FHEM-Befehle, wenn die in geschweiften Klammern, also in Perl ausgeführt werden sollen, muss es irgendwie sowas wie { fhem ("set Relais_Modul20 Port5 off"); fhem ("set Relais_Modul20 Port4 on") }
werden
Scheinbar geht es hier ja darum, eine Rollladensteuerung mit zwei Relais zu realisieren.
Für diese generelle Aufgabe exisitert das Modul ROLLO. Das kann ggf. manches vereinfachen, ob bzw. in welchem Umfang es auch einen Schutz vor Doppelaktivierung der Relais bietet, kann ich aber leider nicht sagen, bitte dazu ggf. gesondert die Doku durchforsten.
Nee, das mit der Rolladensteuerung war nur mein Beispiel, wie ich mit 2 Relais dafür sorge, dass nicht zwei Signale gleichzeitig anliegen.
Bei Jens wird irgendwas an der Heizung mit Relais gesteuert.
Danke für die Rückmeldung, war aus dem bisherigen Thread irgendwie nicht so richtig zu erkennen.
Nur als Anregung: Auch wenn es um eine Mischersteuerung gehen sollte, könnte man das evtl. mit ROLLO machen, letztlich scheint es ja nur darum zu gehen, die zwei Ausgänge irgendwie sinnvoll zu steuern und ggf. einen (prozentualen) Wert zu erreichen, und dann beide Relais abzuschalten.
Was ggf. in dem Zusammenhang noch viel interessanter sein könnte, wäre PID20. Ich kenne das allerdings auch nur aus der commandref...