Abhängigkeit von verschiedenen Ausgängen

Begonnen von jensdipo, 14 Mai 2019, 18:38:51

Vorheriges Thema - Nächstes Thema

jensdipo

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

ESP_Fan

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.

jensdipo

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

ESP_Fan

Irgendwas sendet ja die Befehle an die Relais. Änder dort doch einfach den Befehl "Port0 on" in "Port1 off; Port0 on".

jensdipo

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

ESP_Fan

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

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ESP_Fan

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.

Beta-User

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...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files