MQTT - Wie organisieren in fhem

Begonnen von pula, 06 Juli 2017, 19:42:25

Vorheriges Thema - Nächstes Thema

pula

Hallo,

versuche grade, einen Arduino von configurable Firmata auf MQTT umzustellen.
Grundsätzlich funktioniert alles, mir ist allerdings noch nicht ganz klar, wie hier die best practice in fhem ist.
Für den Anfang habe ich mal einen Arduino genommen, der nur einen Taster und ein Relais bedient. Mit dem Taster ist das kein Problem, aber mit dem Relais habe ich ein wenig Verständnis-Probleme.
Habe mal folgendes Device angelegt:
Internals:
   CFGFN
   IODev      mqtt
   NAME       zirkulationspumpe_pumpe_mqtt
   NR         885152
   STATE      off on
   TYPE       MQTT_DEVICE
   qos        0
   retain     0
   Readings:
     2017-07-05 22:46:14   Pumpe           0
     2017-07-05 22:46:06   state           1
     2017-07-05 22:46:14   transmission-state incoming publish received
   Message_ids:
   Publishsets:
     :
       topic      /heizungskeller/zirkulationspumpe/pumpe
       values:
         1
         0
   Sets:
     0
     1
     status
   subscribe:
     /heizungskeller/zirkulationspumpe/pumpe
   subscribeExpr:
     ^\/heizungskeller\/zirkulationspumpe\/pumpe$
   Subscribereadings:
     /heizungskeller/zirkulationspumpe/pumpe Pumpe
Attributes:
   IODev      mqtt
   devStateIcon Pumpe:on:FS20.on Pumpe:*:FS20.off
   eventMap   1:on 0:off
   publishSet 1 0 /heizungskeller/zirkulationspumpe/pumpe
   room       Heizungskeller,MQTT
   stateFormat Pumpe state
   subscribeReading_Pumpe /heizungskeller/zirkulationspumpe/pumpe

Grundsätzlich soweit so gut.
Was mich aber stört bzw was ich nicht ganz verstehe:
Mit state kann ich dem Arduino sagen, daß er das Relais einschalten soll, was auch geschieht. Dieser meldet dann brav per MQTT zurück, daß er das gemacht hat (was ich in subscribeReading_Pumpe wieder in fhem empfange).
Aber irgendwie stört mich diese Dualität. Wäre es nicht möglich/besser, hier das gleiche Topic zu nutzen? Oder verstehe ich das total falsch?
Zusatzfrage: Im Arduino habe ich auch noch eine Funktion für "status" eingebaut (also, wenn in dem Topic /heizungskeller/zirkulationspumpe/pumpe ein "status" gesendet wird, wird wieder der aktuelle Status des Relais gepublished)....
Wie ist das in fhem am besten abzubilden? Verstehe scheinbar noch nicht das ganze Konzept...
Für Hilfe und Vorschläge wäre ich dankbar.

Cheers,

Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

pula

fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

Billy

FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

pula

Das erste kannte ich, hat mir aber bei dem Problem nicht weiter geholfen. Ich versuchs mal in dem zweiten Thread... Danke für den Hinweis!

Cheers,

Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram