[gelöst] Virtueller Stufenschalter in FHEM (auch FTUI) zum Schalten via MQTT ?

Begonnen von purehunter, 20 Dezember 2022, 14:55:21

Vorheriges Thema - Nächstes Thema

purehunter

Hallo zusammen,

ich habe mir einen CO2 Sensor auf ESP Basis gebaut, der publisht via MQTT regelmäßig die CO2 Werte auf "indoor/co2".
Dann habe ich mir jetzt noch eine Steuerung für die Lüftungsanlage (Aus, 3 Stufen) gebaut, ebenfalls mit ESP. Der Lüftungs-ESP hat den MQTT Kanal "indoor/co2" abonniert und holt sich dort die ppm-Werte und stellt die Lüftungsanlage entsprechend ein (Auto-Betrieb). Bis hierhin funktioniert alles bestens.
Dann habe ich dem Lüftungs-ESP zusätzlich noch ein subscribe auf "indoor/kwl" spendiert, wo er sich manuelle Einstellwünsche abholen soll.
So und jetzt habe ich ein Brett vor dem Kopf: wie kann ich in FHEM ein virtuelles Device (Stufenschalter) generieren, dessen Stellung auf dem MQTT2-Server in "indoor/kwl" gepublisht wird?
Oder geht das so gar nicht? (kann ich mir nicht vorstellen ;-) )
Ich suche nach einer Möglichkeit die Einstellung der Lüftungsanlage über die FHEM Oberfläche (und später FTUI) vorzunehmen.
Bitte bei der Antwort bedenken, dass ich noch Anfänger mit FHEM bin!

purehunter

eki

Ich nehme mal an, Du nutzt MQTT2_SERVER, dann einfach ein MQTT2_DEVICE definieren, in etwa so:


defmod Stufenschalter MQTT2_DEVICE Stufenschalter
attr Stufenschalter IODev MQTT2_FHEM_Server
attr Stufenschalter room MQTT2_DEVICE
attr Stufenschalter setList state:0,1,2,3 indoor/kwl/stufe:r

purehunter

Vielen Dank, das ist schon mal ein guter Startpunkt! Ja ich benutze den MQTT2 Server in FHEM.

Auf das Kommando
attr Stufenschalter IODev MQTT2_FHEM_Server
erhalte ich folgenden Fehler:
unknown IODev MQTT2_FHEM_Server specified
Trotzdem scheint das Attribut angelegt worden zu sein.


Die Attribute sind jetzt folgendermaßen (Das Device heißt jetzt Luft):


IODev  MQTT2_FHEM_Server
room  MQTT2_DEVICE
setList  state:0,1,2,3 indoor/kwl/stufe:r




im FHEM Log sehe ich nach einem "set state" Kommando:
2022.12.20 17:39:19 3: MQTT2_DEVICE set Luft state 1
2022.12.20 17:41:05 3: MQTT2_DEVICE set Luft state 2


in dem Readings des Devices steht:
IODev myBroker 2022-12-20 17:31:59
state state 2022-12-20 17:51:30

Dabei ist die "state" Zeile rot. Ich vermute das heißt, dass das Device das nicht quittiert hat.
Das Device hat aber auch nichts mit dem Topic "indoor/kwl/" empfangen, während die anderen Nachrichten von "indoor/co2/" weiter empfangen werden.

Kann man im Log sichtbar machen, was der MQTT2 Server im Detail "tut"?

purehunter

purehunter

Nach einigem Suchen das Problem gefunden: Das Device hat das Topic "indoor/kwl" abonniert, aber der "Stufenschalter" hat das Topic "/indoor/kwl" bedient. (...)

Eigentlich ganz einfach.

Aber ohne den Hinweis von eki hätte ich gar nicht gewusst wie sowas in FHEM realisiert werden kann. Mir fehlt bei FHEM einfach noch der Durchbruch zum Verständnis der Zusammenhänge. Und leider sind viele Texte der Hilfe und Command-Ref. "von Wissenden für Wissende" geschrieben, was den Einstieg nicht leicht macht.

purehunter