FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: stonev am 29 Januar 2019, 13:17:22

Titel: MQTT2 Device - Schalter realisieren und Verbindung mit Name:Passwort sichern
Beitrag von: stonev am 29 Januar 2019, 13:17:22
Ich habe einen Wemos D1 mini mit Tasmota geflasht und ein Relais, sowie nen Sensor dran. Läuft soweit auch einwandfrei.

In Fhem habe ich einen MQTT2 Server eingerichtet. List:
Internals:
   CONNECTS   1
   DEF        1883 global
   FD         9
   FUUID      5c4e1069-f33f-d066-448c-1972bae8b308b4d8
   NAME       MQTT2server
   NR         49
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   READINGS:
     2019-01-29 12:05:59   RETAIN          {"tele/Wemos-Garage/LWT":"Online"}
     2019-01-29 12:05:59   nrclients       1
     2019-01-29 12:05:49   state           Initialized
   clients:
     MQTT2server_192.168.1.90_61693 1
   retain:
     tele/Wemos-Garage/LWT:
       ts         1548759959.5231
       val        Online
Attributes:
   autocreate 1
   room       MQTT2
   verbose    5


Der Wemos wurde als Device erkannt und die Readings sind da. List:
Internals:
   CID        DVES_25823333
   DEF        DVES_25823333
   DEVICETOPIC Wemos_Garage
   FUUID      5c4e1923-f33f-d066-e5d7-26cd9515c4e7f9f0
   IODev      MQTT2server
   LASTInputDev MQTT2server
   MQTT2server_MSGCNT 27
   MQTT2server_TIME 2019-01-29 13:05:22
   MSGCNT     27
   NAME       Wemos_Garage
   NR         50
   STATE      T: 10.0   H: 70.4 Fan: OFF
   TYPE       MQTT2_DEVICE
   Helper:
     DBLOG:
       humidity:
         logdb:
           TIME       1548763522.95742
           VALUE      70.4
       temperature:
         logdb:
           TIME       1548763522.95742
           VALUE      10.0
   READINGS:
     2019-01-29 12:05:59   LWT             Online
     2019-01-29 13:05:22   LoadAvg         19
     2019-01-29 13:05:22   POWER           OFF
     2019-01-29 13:05:22   SHT1X_Humidity  70.4
     2019-01-29 13:05:22   SHT1X_Temperature 10.0
     2019-01-29 13:05:22   Sleep           50
     2019-01-29 13:05:22   SleepMode       Dynamic
     2019-01-29 13:05:22   TempUnit        C
     2019-01-29 13:05:22   Time            2019-01-29T13:05:23
     2019-01-29 13:05:22   Uptime          0T22:45:28
     2019-01-29 13:05:22   Vcc             3.038
     2019-01-29 13:05:22   Wifi_AP         1
     2019-01-29 13:05:22   Wifi_BSSId      08:96:D7:DB:89:52
     2019-01-29 13:05:22   Wifi_Channel    6
     2019-01-29 13:05:22   Wifi_RSSI       74
     2019-01-29 13:05:22   Wifi_SSId       Stones
     2019-01-29 13:05:22   humidity        70.4
     2019-01-29 13:01:18   state           off
     2019-01-29 13:05:22   temperature     10.0
Attributes:
   IODev      MQTT2server
   alias      Wemos Garage
   readingList DVES_25823333:tele/Wemos-Garage/LWT:.* LWT
DVES_25823333:cmnd/Wemos-Garage/POWER:.* POWER
DVES_25823333:tele/Wemos-Garage/INFO1:.* { json2nameValue($EVENT) }
DVES_25823333:tele/Wemos-Garage/INFO2:.* { json2nameValue($EVENT) }
DVES_25823333:tele/Wemos-Garage/INFO3:.* { json2nameValue($EVENT) }
DVES_25823333:stat/Wemos-Garage/RESULT:.* { json2nameValue($EVENT) }
DVES_25823333:stat/Wemos-Garage/POWER:.* POWER
DVES_25823333:tele/Wemos-Garage/STATE:.* { json2nameValue($EVENT) }
DVES_25823333:tele/Wemos-Garage/SENSOR:.* { json2nameValue($EVENT) }
DVES_25823333:tele/Wemos-Garage/UPTIME:.* { json2nameValue($EVENT) }
   room       MQTT2
   setList    on cmnd/Wemos_Garage_Fan/Power on
off cmnd/Wemos_Garage_Fan/Power off
   stateFormat T: temperature   H: humidity Fan: POWER
   userReadings temperature { ReadingsVal("Wemos_Garage","SHT1X_Temperature",0) }, humidity { ReadingsVal("Wemos_Garage","SHT1X_Humidity",0) }
   webCmd     on:off


1. Problem
Den Schalter hab ich versucht mit
setList    on cmnd/Wemos_Garage_Fan/Power on
off cmnd/Wemos_Garage_Fan/Power off


und

webCmd     on:off

Das ganze funktioniert auch auch in de Form, dass der State des Device zwischen on:off wechselt. Es hat nur leider keinerlei Auswirkung auf den Wemos. Das Reading "POWER" bleibt stur bei "off".

Jemand eine Idee, was ich hier falsch gemacht habe?


2. Problem:
Die Wlan Verbindung wollte ich zumindest per User:Pass sichern. In der CommandRef heißt es zum MQTT2:
   to set user/password use an allowed instance and its basicAuth feature (set/attr)

Ich finde aber weder im Server noch im Device das attr basicAuth??? Eigentlich sollte es doch beim Device zu finden sein?




Titel: Antw:MQTT2 Device - Schalter realisieren und Verbindung mit Name:Passwort sichern
Beitrag von: Beta-User am 29 Januar 2019, 13:40:09
Ad 1: Warum ist das set-Topic von anders als das Reading-Topic?
Logischer wäre für mich:
setList    on cmnd/Wemos-Garage/Power on
off cmnd/Wemos-Garage/Power off

Ad 2.: bei "allowed" handelt es sich ausweislich der zitierten cref um "eine Instanz", also ein eigenes Device; siehe "help allowed".
Titel: Antw:MQTT2 Device - Schalter realisieren und Verbindung mit Name:Passwort sichern
Beitrag von: stonev am 29 Januar 2019, 15:19:31
Zitat von: Beta-User am 29 Januar 2019, 13:40:09
Ad 1: Warum ist das set-Topic von anders als das Reading-Topic?
Logischer wäre für mich:
setList    on cmnd/Wemos-Garage/Power on
off cmnd/Wemos-Garage/Power off


Ich hatte vorher schon ein wenig damit gespielt. Hatte schon den Devicenamen Wemos_Garage erfolglos an dieser Stelle geschrieben.
Mir war nicht aufgefallen, dass ich das Device in Tasmota Wemos-Garage - also mit Bindestrich statt Unterstrich - geschrieben habe. So taucht es auch in den Readings auf. Habe es nun mit Bindestrich geschrieben und es funktioniert. Der Teufel ist ein Eichhörnchen ... manchmal auch ein Bindestrich  ;D

Das mir dem eigenen Device bei Allowed hatte ich nicht geschnallt. Danke für den Hinweis, damit sollte ich weiterkommen.