NEWS
[gelöst] Senden von Schaltzuständen auf ein Relaisboard
-
Hallo,
ich habe ein ähnliches Problem wie bereits hier beschrieben: https://forum.iobroker.net/post/833948
Da das Thema aber bereits als gelöst markiert ist, habe ich ein neues eröffnet (ist das so richtig?).Ich habe eine Daikin Wärmepumpe von der ich Daten mittels ESPAltherma (https://raomin.github.io/ESPAltherma/) über MQTT auslese.
Diese ESP-Software bietet aber auch die Möglichkeit über den ESP Relais anzusteuern, um damit gewisse Steuerungen in der Wärmepumpe auszulösen.Als Hardware habe ich ein 4 Kanal Relais Board auf ESP8266 Basis. Nachdem das Ansteuern der Relais mit ESPAltherma nicht direkt funktioniert hat, habe ich zuerst die Hardware getestet. Dazu habe ich Tasmota geflashed (https://templates.blakadder.com/ESP12F_Relay_X4.html). Bereits hier hat sich nun gezeigt, dass ich mit dem MQTT Server/Client Adapter die Relais nicht vom ioBroker aus schalten kann. Wechsle ich auf den Sonoff (MQTT) Adapter funktioniert es (für ESPALtherma benötige ich aber den MQTT Adapter).
Ich habe jetzt schon alle möglichen Einstellungen des MQTT Adapters durchprobiert, aber es funktioniert nicht. Ich denke, dass bei ESPAltherma das gleiche Problem das Schalten verhindert.
Hier ein paar screenshots.
- Die Objekte Power1-4 zeigen den richtigen Zustand der Relais an (wenn ich diese über die Tasmota Webseite des Boards ändere). Wenn ich die Werte in ioBroker ändere werden die Zustände aber nicht geändert. Verwende ich den Sonoff Adapter sieht es ähnlich aus, ich kann die Zustände aber auch über den ioBroker schalten.
2 und 3) meine aktuellen MQTT Settings:
Wie kann ich weiter vorgehen?
- Die Objekte Power1-4 zeigen den richtigen Zustand der Relais an (wenn ich diese über die Tasmota Webseite des Boards ändere). Wenn ich die Werte in ioBroker ändere werden die Zustände aber nicht geändert. Verwende ich den Sonoff Adapter sieht es ähnlich aus, ich kann die Zustände aber auch über den ioBroker schalten.
-
@dieterb :
Hallo,
Ich steuere meine Relais, Optokoppler, usw. wobei ich ESPEasy verwende, wie folgt:
Erste Variante geht über den Browser. Hiermit teste ich, ob ich den Verbraucher ansprechen kann. Der Befehl läßt sich jedoch auch in Blockly einbinden.noch die gpio Nummer anpassen
http://192.168.178.41/control?cmd=gpio,12,1
http://192.168.178.41/control?cmd=gpio,12,0Die zweite Variante nehme ich hauptsächlich in Skripte. Ich hatte mir einen Spickzettel für den Ablauf geschrieben. Hierzu brauche ich einen bzw. den MQTT Explorer (sepates Programm nur zum Einrichten):
- Im ESP Easy einrichten
- MQTT Explorer starten und verbinden
- unter Puplish z.B. folgenden Pfad eingeben (der komplette Pfad scheint wichtig zu sein)
- /ESP_Easy_1/SET/Magnetventil/gpio/0
- dann einen Befehl eingeben
- z.B. "0" oder "1"
- Jetzt den Knopf "puplish" drücken
- Jetzt ist das Element im ioBroker sichtbar
-
@ralf-6
Hallo, ich habe das nicht ganz verstanden, da ich all die Programme (noch) nicht kenne.
Aber die notwendigen Elemente (POWER1-4) sind bei mir ja bereits als Objekte sichtbar (siehe mein erstes Bild oben).
Das Problem ist, wenn ich den Wert im Objekt ändere, wird er nicht auf den ESP übertragen wenn ich den MQTT Server/Client verwende.
Verwende ich den Sonoff Adapter kann ich durch Änderung des Werts im Objekt das Relais schalten. -
@dieterb :
Auch ich habe noch keine langen Erfahrungen. Ich kann dir nur sagen, wie es bei mir funktioniert. Und ich habe lange experimentieren müssen.
Unterm Strich musste ich Datenpunkte anlegen, welche ich dann schalten konnte. Manuel konnte ich diese Punkte jedoch nicht anlegen. Ich brauche dafür diesen MQTT Explorer. Wenn dann der Datenpunkt existiert, ist es einfach Ein/Aus -
@ralf-6
Ich habe mir jetzt den MQTT Explorer angesehen, komme damit aber auch nicht weiter. Die Datenpunkte sind bei mir ja im ioBroker bereits vorhanden (Tasmota geflashed, MQTT Server/Client).
Der MQTT Explorer zeigt sie auch an. Wenn ich Änderungen der Relais-Zustände über die Webseite des Tasmota geflashten Relais-Board mache, werden die sowohl im ioBroker als auch im MQTT Explorer richtig angezeigt. Wenn ich Änderungen der Werte entweder im ioBroker oder per Publish im MQTT Explorer mache, ändern sich nur die Werte im ioBroker Objekt, aber nicht in der MQTT Explorer Anzeige und auch am Relais tut sich nichts.
Irgendwie kommen die Befehle weder vom MQTT Explorer noch vom ioBroker beim ESP an. -
@dieterb sagte in Senden von Schaltzuständen auf ein Relaisboard:
Wie kann ich weiter vorgehen?
Versuche mal, den Wert "POWER" unter "cmnd" auf "ON" bzw. "OFF" zu setzen:
Wahrscheinlich musst du unter "cmnd" die States "POWER1" bis POWER4" anlegen, um die Relais einzeln zu schalten.
-
@dieterb :
- Mein ESP ist mit ESPEasy geflasht, eventuell unterscheiden sich hier die Befehle zu Tasmota. Lässt sich sicher nachlesen.
- Es kann gut sein, da du keine reinen Relais benutzt, dass du eine andere Befehlsstruktur brauchst. Siehe den Hinweis von Marc Berg. Ich verwende meine Relais über Optokoppler direkt an den GPIOs des ESP. Diese lassen sich mit den genannten Befehlen bei mir direkt ansprechen.
- Es gibt zwei Ebenen im MQTT bei mir. Eine Ebene mit den empfangenen Werten (bei mir GET) und eine zweite Ebene mit den zu sendenden Daten (bei mir SET). Diese beiden Ebenen habe ich im ESP bzw. ESPEasy voreingestellt. Nach dem Verbinden des ESP mit iobroker war nur die Ebene (GET) sichtbar. Die Ebene (SET) wurde über den Befehl des MQTT Exporeres angelegt und ist danach nutzbar. Hierbei war die Struktur "/ESP_Easy_1/SET/Magnetventil/gpio/0" wichtig. Sonst hat das nicht funktioniert. ESP_Easy_1 = so heißt mein ESP; SET = wie oben beschrieben die Ebene von der ich aus senden kann; Magnetventil = Namen des entsprechenden Objekts; gpio = Vorgegebene Struktur von ESPEasy = muss so heißen; 0 = der GPIO-Port welchen ich ansprechen möchte.
So sieht das bei mir aus:
Mir haben diese Beiträge geholfen:
https://forum.iobroker.net/topic/13659/gelöst-mqtt-d1-mini-wie-geht-das-schalten-unter-esp-easy-mega
https://forum.iobroker.net/topic/11291/wemos-d1-mini-mit-esp-easy-und-ausgänge-schalten/3
https://forum.iobroker.net/topic/5085/projekt-scrolling-oled-display-und-sonoff-relais-für-iobroker-via-mqtt/4?lang=de -
Verwendet das auch jemand in Verbindung mit der Smart Grid Funktion?
-
@dieterb :
Noch als Nachtrag zum letzten Beitrag.
Das Schlüsselwort "gpio" gilt vermutlich nur für reine GPIOs. Wenn ich mit Pulsweitenmodulation arbeite gibt es hierfür ein anderes Schlüsselwort. ESPEasy hat hierzu eine Referenzseite. Sicher gibt es so etwas auch für Tasmota. -
@homecineplexx :
Ich nicht. -
@homecineplexx sagte in Senden von Schaltzuständen auf ein Relaisboard:
Verwendet das auch jemand in Verbindung mit der Smart Grid Funktion?
Dafür wäre ESPAltherma eigentlich vorbereitet (es funktioniert bei mir aber eben nicht über den ioBroker), wobei ich da für mich keinen großen Sinn sehe.
Im Endeffekt möchte ich mit den Relais über des X85A Stecker die verschiedenen Power-Limitations schalten: https://github.com/raomin/ESPAltherma/discussions/170
Dazu müssen aber erst einmal die SG Relais funktionieren, der Rest sollte dann mittels dieser Erweiterung möglich sein: https://github.com/raomin/ESPAltherma/pull/262/files -
@marc-berg @Ralf-6
Vielleicht fehlen wirklich die entsprechenden Objekte. Es wundert mich allerdings, dass bei Verwendung des Sonoff Adapters für Anzeigen und Schreiben das gleiche Objekt verwendet wird.
Bei Ändern des Werts mqtt - 1 - ESP_Relay_Board - cmnd - POWER ändert sich nichts (das ist aber auch bei Verwendung des Sonoff Adapers so).Wie würde den der Befehl vom MQTT Explorer aussehen, um das Objekt
mqtt - 1 - ESP_Relay_Board - cmnd - POWERx als state anzulegen? -
@dieterb sagte in Senden von Schaltzuständen auf ein Relaisboard:
Wie würde den der Befehl vom MQTT Explorer aussehen, um das Objekt
mqtt - 1 - ESP_Relay_Board - cmnd - POWERx als state anzulegen?ESP_Relay_Board/cmnd/POWER1
-
@dieterb :
Auf der Konfigurationsoberfläche meines ESPs der mit ESPEasy geflasht ist, habe ich folgende Einstellungen, abgekupfert aus einer Anleitung, gemacht:
Dabei die beiden Pfade für "Controller Subscribe:" und "Controller Publish:" angepasst.
Aufbauend darauf nach den bereits geschriebenen Anleitung weiter gemacht.
Vermutlich gibt es etwas vergleichbares unter Tasmota. Und so wie es aussieht kennt Marc Berg sich damit aus.Für Tasmota kenn ich die Befehle nicht. Ich besitze nur einen Tasmota der mir den Stromzähler ausließt und dort habe ich nichts zu schalten.
-
@dieterb sagte in Senden von Schaltzuständen auf ein Relaisboard:
Dazu habe ich Tasmota geflashed
Welche .bin Version ?
Zu Mqtt, beste Wahl ist hier den Mqtt Adapter auf Port 1883 zu belassen.
Installiere den Sonoff Adapter auf Port 1886 oder 1887 dies ist viel einfacher.Ein Bild von Tasmota Einstellungen GPIO wäre von Vorteil.
-
@dieterb sagte in Senden von Schaltzuständen auf ein Relaisboard:
Bei Ändern des Werts mqtt - 1 - ESP_Relay_Board - cmnd - POWER ändert sich nichts (das ist aber auch bei Verwendung des Sonoff Adapers so).
Was ich jetzt erst gesehen habe:
Das kann so nicht funktionieren. Da müsste
mqtt.1.* (statt iobroker.*)
drin stehen, damit die Änderungen auch publiziert werden.
-
nachdem es ja hier um das ESPAltherma Projekt geht.
wie weiß ich denn, welches Altherma-language(***).h File für meine am besten ist?ich hab eine Daikin Altherma 3 H MT F mit Bizone Kit (EPRA12EW1 / ETVH12S23E9W)
danke und lg
-
@marc-berg sagte in Senden von Schaltzuständen auf ein Relaisboard:
ESP_Relay_Board/cmnd/POWER1
Wenn ich das mache passiert gar nichts, weder in ioBroker noch im MQTT Explorer.
Ist es dabei egal, was im MQTT Explorer rechts oben unter Topic angezeigt wird?
PUBLISH wurde da schon ausgeführt. -
@ralla66
MQTT.0 ist auf 1883, da laufen mehrere Geräte. Um hier eine Überschneidung zu verhindern, habe ich eine zweite MQTT.1 Instanz installiert (aktuell auf 1886).
Den Sonoff Adapter benötige ich eigentlich nicht, den verwende ich hier nur, um zu sehen, dass die Hardware funktioniert und sich die Relais mittels ioBroker im Prinzip schalten lassen.
Noch einmal zur Erinnerung: das finale Ziel ist ESPAltherma zu flashen. Ich hatte halt gehofft die notwendigen Einstellungen des MQTT Server/Client Adapters, damit auch Relais schaltbar sind, mit Tasmota heraus zu finden. -
@dieterb :
Wenn ich Befehle mit MQQT Explorer absende, setze ich noch den Befehl dazu. z.B. "0" , "1", "TRUE" oder was auch immer benötigt wird.
Der Pfad ist schon an der richtigen Stelle. Den Befehl setze ich das Feld unter "raw, xml, json"