Hallo,
ich würde gerne in Summe sechs Relais eines tasmotageflashten Electrodragons steuern. Vier der sechs Relais befinden sich auf einer Relaiskarte, die ich auch schon über die Tasmotaoberfläche steuern kann.
Muss man hierzu via publishSet erstmal sämtliche zu schaltenden Relais anlegen und falls ja, wie?
So?
ON OFF cmnd/heizung/power1 ON2 OFF2 cmnd/heizung/power2 ON3 OFF3 cmnd/heizung/power3..
Was ist da ein sinnvoller Weg?
Gruß Chris
Hallo Chris,
sieh Dir dazu publishSet_<reading> an:
Zitatattr <name> publishSet_<reading> [<values>]* <topic>
configures reading that may be used to both set 'reading' (to optionally configured values) and publish to configured topic
attr <mqtt-device> publishSet_power1 ON,OFF cmnd/heizung/power1
attr <mqtt-device> publishSet_power2 ON,OFF cmnd/heizung/power2
...
Gruss Helmut
Perfekt, danke!
Gruß Chris
Hallo,
ich versuche gerade mit den Relais und einer Widerstandsleiter am Zielgerät (Wärmepumpe, deren Betriebsart sich über einen Widerstand steuern lässt) unterschiedliche Widerstände zu "erzeugen". Es wäre nun natürlich super, wenn ich die unterschiedlichen Schaltzustäde der einzelnen Relais (0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111) in lesbare Zustände packen könnte, so dass z.B. der Schaltzustand 1011 dann in der FHEM-Weboberfläche "Heizmodus" heisst und die Relais dann mehr oder weniger gemeinsam schalten. Ein paar Millisekunden hin oder her ist egal.
Sprich die einzelnen Relais sollen dann abhängig vom gewählten Zustand gemeinsam schalten.
Geht das noch innerhalb des Devices, oder müsste ich das dann irgendwie "außerhalb" mit DOIFs oder etwas Ahnlichem abbilden?
Vier dieser sechs Relais bilden die Widerstandsleiter, während die zwei Anderen jeweils eine andere Funktion haben.
Wäre es dann für diesen Fall u.U. sinnvoller mehrere MQTT-Devices anzulegen, obwohl es sich ja physikalisch um ein Gerät handelt?
Gruß Chris
Internals:
IODev mqtt
NAME heizung
NR 39
STATE ???
TYPE MQTT_DEVICE
qos *:1
retain *:1
OLDREADINGS:
READINGS:
2018-07-22 11:32:16 resistor1 OFF
2018-07-22 11:32:15 resistor2 OFF
2018-07-22 11:32:14 resistor3 OFF
2018-07-22 11:32:11 resistor4 OFF
2018-07-22 11:41:16 transmission-state outgoing publish acknowledged
2018-07-22 11:41:16 wwAnf OFF
2018-07-22 11:32:18 wwPumpe OFF
message_ids:
publishSets:
resistor1:
topic cmnd/heizung/power3
values:
ON,OFF
resistor2:
topic cmnd/heizung/power4
values:
ON,OFF
resistor3:
topic cmnd/heizung/power5
values:
ON,OFF
resistor4:
topic cmnd/heizung/power6
values:
ON,OFF
wwAnf:
topic cmnd/heizung/power1
values:
ON,OFF
wwPumpe:
topic cmnd/heizung/power2
values:
ON,OFF
sets:
resistor1 ON,OFF
resistor2 ON,OFF
resistor3 ON,OFF
resistor4 ON,OFF
wwAnf ON,OFF
wwPumpe ON,OFF
subscribe:
subscribeExpr:
subscribeQos:
subscribeReadings:
Attributes:
IODev mqtt
alias Heizung
publishSet_resistor1 ON,OFF cmnd/heizung/power3
publishSet_resistor2 ON,OFF cmnd/heizung/power4
publishSet_resistor3 ON,OFF cmnd/heizung/power5
publishSet_resistor4 ON,OFF cmnd/heizung/power6
publishSet_wwAnf ON,OFF cmnd/heizung/power1
publishSet_wwPumpe ON,OFF cmnd/heizung/power2
qos 1
retain 1
room UG
Zitat von: chq am 22 Juli 2018, 11:55:55
Geht das noch innerhalb des Devices, oder müsste ich das dann irgendwie "außerhalb" mit DOIFs oder etwas Ahnlichem abbilden?
Hallo Chris,
der gerade Weg waere der direkt im Device "heizung" mit dem Tasmota Backlog Kommando gewesen.
Das Problem ist das Leerzeichen im Power Komando. Das hier funktioniert
attr heizung publishSet_P0000 state;;status cmnd/heizung/Backlog
und das leider nicht
attr heizung publishSet_P0000 power3 off;;power4 off;;power5 off;;power6 off cmnd/heizung/Backlog
Ich habe alles mir bekannte versucht die Leerzeichen, die als Trenner fungieren, zu maskieren - ohne Erfolg.
Wenn Du das Tasmota-Device direkt ueber das "MQTT" Device, also die Verbindung zum Broker, ansprichst, geht es so.
set <dein-mqtt-device> publish cmnd/heizung/Backlog power3 off;;power4 off;;power5 off;; power6 off
Das fuer die GUI ansprechend zu verpacken, fehlt mir momentan die Idee. Vielleicht faellt Dir da etwas ein.
Gruss Helmut
Hallo Helmut,
vielen Dank für die Mühe, die Du Dir da gemacht hast! :)
Wenn ich das Ganze direkt über den MQTT-Broker ansprechen würde, hätte ich nur leider keinerlei Feedback über den Status meiner Wärmepumpe.
Gruß Chris
Hallo Chris,
warum glaubst Du, da kaeme kein Feedback? Das sendet Tasmota doch in Form mehrerer RESULTs zurueck
und wenn Du RESULT subskribiert hast und mit expandJSON auseinandernehmen laesst, hast den Status
der einzelnen Relais. Diese mit stateFormat aufzubereiten wird zwar etwas laenglich, ist aber mit ein wenig
Perl-Code moeglich.
Gruss Helmut
Ich werde das vertiefen, danke!
Gruß Chris