NEWS
16 oder 8ch Relais Board - Kompatibel zu ioBroker
-
@dasmoritz Wieviel magst du löten?
Ich habe es für meine Velux Storen genauso gelöst. Etwas mehr erfährst du hier: https://forum.iobroker.net/topic/39291/hausautomation-in-unserem-umbau-aufstockung
Grundsätzlich verwende ich I2C I/O-Expander und dann 16-Relais-Boards. Mehr kannst du gerne erfragen.
Ich würde das mit den drei Boards aber nicht machen und zwar aus einem Grund: aus Versehen könnten mehrere "Knöpfe gedrückt" werden. Je nach Fernbedienung kann das zu Problemen führen (dass sie z.B. in einen Anlern-Modus wechseln). Ich habe bei mir die drei Relais wie folgt zusammengehängt:
- Relais 1: Umschalten zwischen Relais 2 und Relais 3
- Relais 2: Nichts oder Stopp
- Relais 3: Auf oder Ab
Die drei sind wie folgt verdrahtet (IN= Eingang des Relais, NC= Normalerweise verbunden, NO= Normalerweise offen):
- GND an Relais 1 IN
- Relais 1 NC an Relais 2 IN
- Relais 1 NO an Relais 3 IN
- Relais 2 NC ist nicht verbunden - damit wird keine Taste gedrückt, wenn das Relaisboard stromlos ist
- Relais 2 NO an Stopp der FB
- Relais 3 NC an Auf der FB
- Relais 3 NO an Ab der FB
Hier noch meine fertig gelötete Fernbedienung:
-
@dasmoritz Genau so würde ich es auch machen entweder über ein ESP mit á 3 Expander für 16 fach Relaisboard. Oder du nimmst zur Ansteuerung ein Raspberry auch mit á 3 Expander bzw 3 einzelne.
-
Moin ihr beiden,
Danke erstmal, das hilft mir schon mal.
@Unclesam: @Basti97
Ja, wie viel mag ich löten: Ich löte lieber als das ich in FHEM oder wo auch immer rum frickeln muss und absolut nicht weiß was ich tue.Meine Rolladenmotoren gehen in einen Anlernmodus wenn mindestens 5 Sekunden die "Stop-Taste" gedrückt wird.
Was ich noch nicht verstehe ist in deinem Aufbau folgendes:
-
Du Schaltest mit dem Relais 1 erstmal nur Relais 2 oder 3 durch um sicherzustellen, dass du nicht beides gleichzeitig drückst, korrekt?
-
Du schaltest mit Relais 2 dann nur "Stopp" oder eben gar nichts.
-
Du schaltest mit Relais 3 dann "auf" oder "ab". Wie machst du das genau?
Du kannst doch an einem Ausgang des oben abgebildeten Relaisboards in meinen Augen nur den linken / rechten Kontakt zum Schalten nutzen, oder? Wenn man alle drei Kontakte nutzen würde, dann wäre ein Kontakt ja immer "geschaltet".
Und weitere Frage: Ich möchte ja nur "kurz" schalten wie ein Taster, also ca. 0,1Sec. oder so. Kann man das entsprechend einstellen?
Ich glaube da habe ich noch einen Knoten im Kopf
Welchen ESP / Expander und Relaisboards sollte man verwenden?
Mit Arduino bin ich vor 5 Jahren mal ein paar Schritte gegangen und habe für mein NAS eine CPU-Lüftersteuerung mit LCD Display gebaut, die den Lüfter einschaltet wenn die CPU Temperatur > 55°C - das sowohl von der Programmierung als auch der Dauerhaftigkeit super funktioniert - läuft immer noch.Danke,
Moritz -
-
@dasmoritz sagte in 16 oder 8ch Relais Board - Kompatibel zu ioBroker:
Ja, wie viel mag ich löten: Ich löte lieber als das ich in FHEM oder wo auch immer rum frickeln muss und absolut nicht weiß was ich tue.
Sehr gut
Du kannst doch an einem Ausgang des oben abgebildeten Relaisboards in meinen Augen nur den linken / rechten Kontakt zum Schalten nutzen, oder? Wenn man alle drei Kontakte nutzen würde, dann wäre ein Kontakt ja immer "geschaltet".
In meinem (nicht gezeichneten) Schema oben habe ich die drei Anschlüsse, die du auf deinem Foto siehst, so beschrieben (von links nach rechts):
NO, IN, NCFolgendes muss ich schalten (in der angegebenen Reihenfolge!) um die Tasten zu drücken (was in Klammern steht ist optional):
- Auf: (Relais 3=aus, Relais 2=aus), Relais 1=ein
- Ab: Relais 3=ein, (Relais 2=aus), Relais 1=ein
- Stopp: (Relais 3=aus), Relais 2=ein, (Relais 1=aus)
- Keine Taste gedrückt: Relais 2=aus, Relais 1= aus, Relais 3=aus
Und weitere Frage: Ich möchte ja nur "kurz" schalten wie ein Taster, also ca. 0,1Sec. oder so. Kann man das entsprechend einstellen?
Einstellen? In meinem Skript setze ich die entsprechenden Relais auf "ein" für die gewünschte Dauer (bei Velux ist das beim ersten mal recht lang, weil die FB zuerst "aufwachen" muss). Und danach per Timeout wieder auf aus (Reihenfolge siehe oben).
Ich glaube da habe ich noch einen Knoten im Kopf
Nicht schlimm, das kriegst du schon hin :-). Sonst einfach weiter fragen.
Welchen ESP / Expander und Relaisboards sollte man verwenden?
Ich verwende wie gesagt direkt Expander am Raspberry Pi (via I2C). Dafür verwende ich (vor allem) MCP23017, die haben gleich 16 Ausgänge. Die Relaisboards kaufe ich jeweils bei AliExpress, aber egal wo du sie kaufst, die 5V-Variante genügt für dein Vorhaben und die kann man auch in Europa (z.B. Amazon) bekommen.
Hier ein Beispiel: https://www.aliexpress.com/item/4000222568835.html (wie gesagt: 5V auswählen).
-
Hi,
Danke dir erstmal wieder.
Die Fernbedienungen von den Nobilys / Dooyas werden anscheinend mit 12V betrieben. Es handelt sich um eine Batterie des Typs "27A 12V". Ich würde also an den Boards und an den Fernbedienungen die gleiche Spannungsversorgung anlegen.Ich lese mich mal am Wochenende tiefer ein und bestelle dann
-
@dasmoritz Normalerweise wird mit GND (Ground oder Minus) geschaltet und nicht 12V, aber ja, natürlich wird dies geschaltet. Allerdings würde ich auf keinen Fall 12V Relais nehmen und diese mit der Batterie betreiben. Da würde die Batterie nicht sehr weit reichen. Also: 12V Batterie wird "geschaltet", aber die Relais werden mit den 5V betrieben, die z.B. vom Raspi kommen (respektive mit denen der Raspi betrieben wird).
-
Hi,
ich wollte eigentlich mit einer externen Spannungsversorgung anstelle der Batterie in den Fernbedienungen arbeiten. Sprich: Batterie ausbauen und 12V anlegen - daher komme ich auf die 12V.
Wenn ich die Batterien eingesetzt lasse, dann wird der Verdrahtungsaufwand kleiner (positiv) und ich kann durchgehend mit 5V arbeiten (positiv).
Von daher verwerfe ich den Gedanken einer externen Spannungsversorgung mit 12V mal und bleibe bei 5V
-
@dasmoritz sagte in 16 oder 8ch Relais Board - Kompatibel zu ioBroker:
Von daher verwerfe ich den Gedanken einer externen Spannungsversorgung mit 12V mal und bleibe bei 5V
Ach so, nein, wenn du sowieso 12V hast, kannst du auch die 12V Relais nehmen. Das macht allgemein weniger Probleme als die 5V Relais (aber bei deinem Use Case ist das kaum relevant). Aber egal wie du es machst: die Spulenspannung des Relais hat nichts mit der geschalteten Spannung zu tun. Du kannst also mit 5V auch 230V schalten oder mit 12V 12V, das spielt absolut keine Rolle.
-
Moin,
so ich mache das per ESP32 und Relaisboards.
Ich bin mir nun nur nicht ganz sicher welche Komponenten da die richtigen sind:ESP32 soweit klar
Ralaisboard?
Expander?Kann da jemand was empfehlen?
-
@dasmoritz Siehe oben. Expander würde ich den MCP23017 nehmen, wenn der unterstützt wird, sonst den PCF8574. Relais Karten habe ich von AliExpress. Einfach die mit den blauen Relais (gibt's überall, auch Wish oder Amazon). Und wie gesagt: für dich die 12V Variante.
-
@unclesam said in 16 oder 8ch Relais Board - Kompatibel zu ioBroker:
PCF8574
Hi,
doofe Frage: Brauche ich drei Expander oder nur einen?Ansonsten zum Vorgehen:
Ich würde versuchen das ganze mit ESPHome über Home Assistant einzurichten und dann auch zu "programmieren". Die genannten Komponenten (ESP32, PCF8574 bzw. MCP23017) sind dort anscheinend alle "supportet".Testen würde ich das Ganze mit einem "rumfliegenden" ESP8285 / Sonoff 4CH Switch. Der ist schon da und dann kann ich die "Lieferzeit" schon mal überbrücken.
Für mich ist im Moment noch nicht klar wie ich die Expander und den ESP32 anschließe und wie es dann vom Expander zum Relaisboard weiter geht.
Und: Ich werde alles mit 5V betreiben. Die 12V 27A Batterien lasse ich dann einfach in der Fernbedienung.
Danke,
Moritz -
@dasmoritz sagte in 16 oder 8ch Relais Board - Kompatibel zu ioBroker:
doofe Frage: Brauche ich drei Expander oder nur einen?
Du brauchst so viele Expander Ports wie du Relais hast. Wenn du 14x3 Taster bedienen willst, brauchst du 16x3 Relais, das heisst, du brauchst 48 Ports. Jeder Port schaltet ein Relais.
Wenn du den PCF8574 verwendest, dann brauchst du 6 Stück.
Wenn du den MCP23017 verwendest, dann brauchst du 3 Stück.Für mich ist im Moment noch nicht klar wie ich die Expander und den ESP32 anschließe und wie es dann vom Expander zum Relaisboard weiter geht.
Die Expander verwenden I2C, wie das genau geht mit dem ESP32 kann ich dir aber auch nicht sagen.
Die Verbindung vom Expander zum Relais ist dann ganz einfach 1:1 für jeden Ausgang (Pin) am Expander hast du einen Eingang am Relais Board.
Die ganze Verkabelung ist hier gezeigt (mit einem Raspi, aber beim ESP wird es ungefähr dasselbe sein; und mit 8 Relais, aber mit 16 musst du dir das ganze einfach doppelt vorstellen):
Und: Ich werde alles mit 5V betreiben. Die 12V 27A Batterien lasse ich dann einfach in der Fernbedienung.
OK, ja dann 5V Relaiskarten.
-
Hallo zusammen,
so der ESP32 ist nun da und ich habe ihn mittes HomeAssistant und ESPHome Add In so langsam in Betrieb bekommen, sprich:
Ich kann mittels HomeAssistant Pins auf dem ESP32 schalten, ebenfalls werden mir die Datenpunkte im ioBroker via MQTT korrekt angezeigt (On, Off).
Nun eine recht einfache Frage zu der ich aber gerade keine Lösung finde:
Mein Ziel ist ja die Kommunikation Alexa --> ioBroker --> ESP32Es gibt doch sicher mit Blockly / Javascript eine Option den Datenpunkt auf "ON" oder "OFF" zu setzen, oder?
Mit Blockly, JavaScript Funktion und "etwas tun": setState("mqtt.0.esp32.switch.gpi01.STATE", OFF); geht es nicht.
Pfad: mqtt.0.esp32.switch.gpi01Danke,
Moritz -
@dasmoritz sagte in 16 oder 8ch Relais Board - Kompatibel zu ioBroker:
Mit Blockly, JavaScript Funktion und "etwas tun": setState("mqtt.0.esp32.switch.gpi01.STATE", OFF); geht es nicht.
Pfad: mqtt.0.esp32.switch.gpi01Versuch mal:
setState("mqtt.0.esp32.switch.gpi01.STATE", "OFF");
-
Hi,
das ist es leider nicht.
Ich habe nun zu Testzwecken einfach mal einen separaten Datenpunkt angelegt und dort auch das "Schreiben erlaubt", sieht so aus:Das ganze steht alleine in einer JS-Funktion:
setState("0_userdata.0.test", "OFF");
Der Datenpunkt sieht wie folgt aus:
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1612298607743, "common": { "name": "test", "role": "", "type": "array", "desc": "Manuell erzeugt", "read": true, "write": true, "def": false }, "native": {}, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 }, "_id": "0_userdata.0.test", "type": "state" }
Wie beschrieben ohne Erfolg...
Was ich gerade eben einfach mal probiert habe ist folgendes:Damit wird der Wert im ioBroker immerhin aktualisiert, jedoch "liest" ESPHome den Wert dann leider nicht aus.
Man man man, gar nicht so einfach
-
@dasmoritz Wie bist du denn auf diese Werte gekommen?
"common": { "name": "test", "role": "", "type": "array", "desc": "Manuell erzeugt", "read": true, "write": true, "def": false },
Die role fehlt komplett und array ist sicher falsch, denn du willst einen string übertragen, oder? Und def müsste ein gültiger Wert sein (wohl "OFF"). Bezüglich Blockly kann ich dir leider nicht helfen, das kenne ich überhaupt nicht.
-
Hi,
das sind die werte aus dem manuell angelegten Datenpunkt, geändert habe ich da nichts...
Aber:
Ich habe den Eindruck dass die Kette ioBroker --> HomeAssistant --> ESP32 irgendwie ein wenig komplex ist, da der HomeAssistant natürlich "schreibt" und der ioBroker auch schreiben soll. Es ist einfach ein Glied mehr in der Kette was ich eigentlich nicht benötige (fast wie mit FHEM).Ich würde mich daher (und da kenne ich mich gefühlt auch ein bisschen besser aus) mal auf die Arduino IDE konzentrieren und versuchen MQTT da abzubilden. Im Anschluss folgenden dann die Expander und die Relais.
Ich möchte im ersten Schritt ja echt nur eine LED per ioBroker bzw. dann Alexa ein- und ausschalten können: Wenn das geht, arbeite in dem Szenario weiter.
Ich orientiere mich mal hieran: https://www.valvers.com/open-software/arduino/esp32-mqtt-tutorial/