Autor Thema: MQTT2, Befehle senden  (Gelesen 1132 mal)

Offline Guzzi-Charlie

  • Jr. Member
  • **
  • Beiträge: 97
MQTT2, Befehle senden
« am: 10 Februar 2019, 15:27:08 »
Hallo,
ich stehe gerade komplett auf dem Schlauch.

ich habe schon jede Menge Tasmota-Devices (Sonoff Basic, Wemos Mini D1) über MQTT2 in FHEM eingebunden. Schalten und Schaltzustand melden (auch bei Schalten über das Web-IF der Geräte) funktioniert einwandfrei.

Jetzt wollte ich noch einen Shelly 1 über MQTT2 einbinden.
  • Automatisches Anlegen ==> kein Problem
  • Readings werden (beim Schalten über das WEB-IF des Shelly) richtig aktualisiert
  • Schalten aus FHEM funktioniert nicht (nicht richtig)
Wenn ich extern schalte, dann wird das Reading "relay_0" auf "on" oder "off" aktuallisiert
Wenn ich aus FHEM schalte, dann wird aber das Reading "state" geschaltet und nicht "relay_0" und damit auch nicht das physische Relais im Shelly.
Ich suche/probiere jetzt schon seit Stunden, finde aber den Fehler nicht.

Funktionierende Konfi eines Sonoff Basic:
defmod MQTT2_DVES_D5A12E MQTT2_DEVICE DVES_D5A12E
attr MQTT2_DVES_D5A12E IODev MQTT2_FHEM_Server
attr MQTT2_DVES_D5A12E alias Stehlampe
attr MQTT2_DVES_D5A12E devStateIcon EIN:li_wht_on on:li_wht_on AUS:li_wht_off off:li_wht_off
attr MQTT2_DVES_D5A12E event-on-change-reading POWER
attr MQTT2_DVES_D5A12E eventMap on:EIN off:AUS
attr MQTT2_DVES_D5A12E group EG.Diele
attr MQTT2_DVES_D5A12E icon light_floor_lamp
attr MQTT2_DVES_D5A12E readingList DVES_D5A12E:tele/IoT_Stehlampe_Flur/LWT:.* LWT\
DVES_D5A12E:cmnd/IoT_Stehlampe_Flur/POWER:.* POWER\
DVES_D5A12E:tele/IoT_Stehlampe_Flur/INFO1:.* { json2nameValue($EVENT) }\
DVES_D5A12E:tele/IoT_Stehlampe_Flur/INFO2:.* { json2nameValue($EVENT) }\
DVES_D5A12E:tele/IoT_Stehlampe_Flur/INFO3:.* { json2nameValue($EVENT) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/RESULT:.* { json2nameValue($EVENT) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/POWER:.* POWER\
DVES_D5A12E:tele/IoT_Stehlampe_Flur/STATE:.* { json2nameValue($EVENT) }\
DVES_D5A12E:tele/IoT_Stehlampe_Flur/UPTIME:.* { json2nameValue($EVENT) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/STATUS:.* { json2nameValue($EVENT, 'STATUS_', $JSONMAP) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/STATUS1:.* { json2nameValue($EVENT, 'STATUS1_', $JSONMAP) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/STATUS2:.* { json2nameValue($EVENT, 'STATUS2_', $JSONMAP) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/STATUS3:.* { json2nameValue($EVENT, 'STATUS3_', $JSONMAP) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/STATUS4:.* { json2nameValue($EVENT, 'STATUS4_', $JSONMAP) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/STATUS5:.* { json2nameValue($EVENT, 'STATUS5_', $JSONMAP) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/STATUS6:.* { json2nameValue($EVENT, 'STATUS6_', $JSONMAP) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/STATUS7:.* { json2nameValue($EVENT, 'STATUS7_', $JSONMAP) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/STATUS10:.* { json2nameValue($EVENT, 'STATUS10_', $JSONMAP) }\
DVES_D5A12E:stat/IoT_Stehlampe_Flur/STATUS11:.* { json2nameValue($EVENT, 'STATUS11_', $JSONMAP) }\
DVES_D5A12E:EG:.* EG
attr MQTT2_DVES_D5A12E room Aktoren,Erdgeschoß
attr MQTT2_DVES_D5A12E setList on cmnd/IoT_Stehlampe_Flur/POWER ON\
off cmnd/IoT_Stehlampe_Flur/POWER OFF
attr MQTT2_DVES_D5A12E sortby 05
attr MQTT2_DVES_D5A12E webCmd EIN:AUS

setstate MQTT2_DVES_D5A12E EIN
setstate MQTT2_DVES_D5A12E 2019-01-25 18:15:04 EG off
setstate MQTT2_DVES_D5A12E 2018-12-29 23:30:34 FallbackTopic DVES_D5A12E
setstate MQTT2_DVES_D5A12E 2018-12-29 23:30:34 GroupTopic sonoffs
setstate MQTT2_DVES_D5A12E 2018-12-29 23:30:34 Hostname IoT_Stehlampe_Flur-0302
setstate MQTT2_DVES_D5A12E 2018-12-29 23:30:34 IPAddress 192.168.178.161
setstate MQTT2_DVES_D5A12E 2019-02-10 15:21:04 LWT online
setstate MQTT2_DVES_D5A12E 2018-12-29 23:30:34 Module Sonoff Basic
setstate MQTT2_DVES_D5A12E 2019-02-10 15:21:04 POWER
setstate MQTT2_DVES_D5A12E 2018-12-29 23:30:34 RestartReason Software Watchdog
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:48 STATUS10_StatusSNS_Time 2019-01-25T17:24:41
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:49 STATUS11_StatusSTS_POWER ON
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:49 STATUS11_StatusSTS_Time 2019-01-25T17:24:41
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:49 STATUS11_StatusSTS_Uptime 26T17:55:56
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:49 STATUS11_StatusSTS_Vcc 3.191
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:49 STATUS11_StatusSTS_Wifi_AP 1
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:49 STATUS11_StatusSTS_Wifi_BSSId 38:10:D5:CD:8B:0A
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:49 STATUS11_StatusSTS_Wifi_Channel 6
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:49 STATUS11_StatusSTS_Wifi_RSSI 64
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:49 STATUS11_StatusSTS_Wifi_SSId WLAN FRITZ!Mesh
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS1_StatusPRM_Baudrate 115200
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS1_StatusPRM_BootCount 29
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS1_StatusPRM_GroupTopic sonoffs
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS1_StatusPRM_OtaUrl http://thehackbox.org/tasmota/release/sonoff.bin
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS1_StatusPRM_RestartReason Software Watchdog
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS1_StatusPRM_SaveAddress F4000
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS1_StatusPRM_SaveCount 384
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS1_StatusPRM_Sleep 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS1_StatusPRM_StartupUTC 2018-12-29T22:28:45
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS1_StatusPRM_Uptime 26T17:55:56
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS2_StatusFWR_Boot 7
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS2_StatusFWR_BuildDateTime 2018.11.28 21:30:26
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS2_StatusFWR_Core 2_3_0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS2_StatusFWR_SDK 1.5.3(aec24ac9)
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS2_StatusFWR_Version 6.3.0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS3_StatusLOG_LogHost
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS3_StatusLOG_LogPort 514
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS3_StatusLOG_SSId_1 WLAN FRITZ!Mesh
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS3_StatusLOG_SSId_2
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS3_StatusLOG_SerialLog 2
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS3_StatusLOG_SetOption_1 00008009
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS3_StatusLOG_SetOption_2 55818000
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS3_StatusLOG_SetOption_3 00000001
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS3_StatusLOG_SysLog 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS3_StatusLOG_TelePeriod 300
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS3_StatusLOG_WebLog 2
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:42 STATUS4_StatusMEM_Features_1 00000407
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:42 STATUS4_StatusMEM_Features_2 0FDAE794
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:42 STATUS4_StatusMEM_Features_3 240183A0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:42 STATUS4_StatusMEM_Features_4 23B617CE
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:42 STATUS4_StatusMEM_Features_5 00003BC0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:42 STATUS4_StatusMEM_FlashMode 3
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:42 STATUS4_StatusMEM_FlashSize 1024
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:42 STATUS4_StatusMEM_Free 508
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:42 STATUS4_StatusMEM_Heap 17
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:42 STATUS4_StatusMEM_ProgramFlashSize 1024
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:42 STATUS4_StatusMEM_ProgramSize 492
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:43 STATUS5_StatusNET_DNSServer 192.168.178.1
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:43 STATUS5_StatusNET_Gateway 192.168.178.1
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:43 STATUS5_StatusNET_Hostname IoT_Stehlampe_Flur-0302
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:43 STATUS5_StatusNET_IPAddress 192.168.178.161
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:43 STATUS5_StatusNET_Mac DC:4F:22:D5:A1:2E
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:43 STATUS5_StatusNET_Subnetmask 255.255.255.0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:43 STATUS5_StatusNET_Webserver 2
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:43 STATUS5_StatusNET_WifiConfig 5
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:44 STATUS6_StatusMQT_KEEPALIVE 15
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:44 STATUS6_StatusMQT_MAX_PACKET_SIZE 1000
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:44 STATUS6_StatusMQT_MqttClient DVES_D5A12E
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:44 STATUS6_StatusMQT_MqttClientMask DVES_%06X
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:44 STATUS6_StatusMQT_MqttHost 192.168.178.130
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:44 STATUS6_StatusMQT_MqttPort 1883
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:44 STATUS6_StatusMQT_MqttType 1
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:44 STATUS6_StatusMQT_MqttUser DVES_USER
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:45 STATUS7_StatusTIM_EndDST Sun Oct 27 03:00:00 2019
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:45 STATUS7_StatusTIM_Local Fri Jan 25 17:24:41 2019
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:45 STATUS7_StatusTIM_StartDST Sun Mar 31 02:00:00 2019
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:45 STATUS7_StatusTIM_Sunrise 08:29
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:45 STATUS7_StatusTIM_Sunset 17:35
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:45 STATUS7_StatusTIM_Timezone 1
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:45 STATUS7_StatusTIM_UTC Fri Jan 25 16:24:41 2019
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_ButtonRetain 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_ButtonTopic 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_FriendlyName_1 Stehlampe Diele
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_LedState 1
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_Module 1
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_Power 1
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_PowerOnState 3
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_PowerRetain 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SaveData 1
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SaveState 1
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SensorRetain 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SwitchMode_1 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SwitchMode_2 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SwitchMode_3 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SwitchMode_4 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SwitchMode_5 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SwitchMode_6 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SwitchMode_7 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SwitchRetain 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_SwitchTopic 0
setstate MQTT2_DVES_D5A12E 2019-01-25 17:24:41 STATUS_Status_Topic IoT_Stehlampe_Flur
setstate MQTT2_DVES_D5A12E 2019-02-10 15:13:10 Time 2019-02-10T15:13:08
setstate MQTT2_DVES_D5A12E 2019-02-10 15:13:10 Uptime 42T15:44:23
setstate MQTT2_DVES_D5A12E 2019-02-10 15:13:10 Vcc 3.193
setstate MQTT2_DVES_D5A12E 2018-12-29 23:30:34 Version 6.3.0
setstate MQTT2_DVES_D5A12E 2018-12-29 23:30:34 WebServerMode Admin
setstate MQTT2_DVES_D5A12E 2019-02-10 15:13:10 Wifi_AP 1
setstate MQTT2_DVES_D5A12E 2019-02-10 15:13:10 Wifi_BSSId C8:0E:14:44:82:0B
setstate MQTT2_DVES_D5A12E 2019-02-10 15:13:10 Wifi_Channel 1
setstate MQTT2_DVES_D5A12E 2019-02-10 15:13:10 Wifi_RSSI 82
setstate MQTT2_DVES_D5A12E 2019-02-10 15:13:10 Wifi_SSId WLAN FRITZ!Mesh
setstate MQTT2_DVES_D5A12E 2019-02-10 14:13:31 state on

Nicht funktionierende Konfi eines des Shelly 1:
defmod MQTT2_shelly1_12CB79 MQTT2_DEVICE shelly1_12CB79
attr MQTT2_shelly1_12CB79 IODev MQTT2_FHEM_Server
attr MQTT2_shelly1_12CB79 alias Pumpe WW (Speicher)
attr MQTT2_shelly1_12CB79 devStateIcon EIN:li_wht_on on:li_wht_on AUS:li_wht_off off:li_wht_off
attr MQTT2_shelly1_12CB79 event-on-change-reading .*
attr MQTT2_shelly1_12CB79 group Heizung
attr MQTT2_shelly1_12CB79 icon sani_pump
attr MQTT2_shelly1_12CB79 readingList shelly1_12CB79:shellies/shelly1-12CB79/online:.* online\
shelly1_12CB79:shellies/shelly1-12CB79/relay/0:.* relay_0\
shelly1_12CB79:shellies/shelly1-12CB79/input/0:.* input_0
attr MQTT2_shelly1_12CB79 room Kellergeschoß,MQTT2_DEVICE
attr MQTT2_shelly1_12CB79 setList on cmd/shellies/shelly1-12CB79/relay/0 on\
off cmd/shellies/shelly1-12CB79/relay/0 off
attr MQTT2_shelly1_12CB79 sortby 04
attr MQTT2_shelly1_12CB79 webCmd on:off

setstate MQTT2_shelly1_12CB79 on
setstate MQTT2_shelly1_12CB79 2019-02-10 15:21:49 input_0 0
setstate MQTT2_shelly1_12CB79 2019-02-10 14:48:48 online true
setstate MQTT2_shelly1_12CB79 2019-02-10 11:38:05 power off
setstate MQTT2_shelly1_12CB79 2019-02-10 15:21:49 relay_0 off
setstate MQTT2_shelly1_12CB79 2019-02-10 14:48:46 shelly1-12CB79 false
setstate MQTT2_shelly1_12CB79 2019-02-10 15:05:24 state on
- Raspberry PI 3+: (Cuno V2 mit 2x KS300, JeeLink mit 9x EC3000, Wetterstation WS101 (USB über Fowsr) ==> außer Betrieb
- Stromzähler: 38x DRS155M (B+G E-Tech) FHEM nicht möglich
- LAN: Intertechno LAN-Gateway mit 28x RMF-R1 (Rohrmotor24) ==> noch nicht in FHEM
- DECT: 4x DECT200
- WLAN: 1x Shelly 4

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20218
Antw:MQTT2, Befehle senden
« Antwort #1 am: 10 Februar 2019, 15:44:21 »
attr MQTT2_shelly1_12CB79 setList on cmd/shellies/shelly1-12CB79/relay/0 on\
off cmd/shellies/shelly1-12CB79/relay/0 off

Ohne den "Shelly 1" zu kennen (bzw. das gilt fuer alle Geraete): man muss das Attribut setList "richtig" setzen, d.h. topic und message muessen genau sein.
Was richtig ist, kann man aus der Geraete/Firmware-Doku und aus der aktuellen Konfiguration des Geraetes entnehmen.
Einen Hinweis fuer die topics findet man beim Einsatz von MQTT2_SERVER per "list .* subscriptions", weil die Geraete nur auf diese topics hoeren.

Informativ Informativ x 1 Liste anzeigen

Offline DasQ

  • Full Member
  • ***
  • Beiträge: 109
    • ich
Antw:MQTT2, Befehle senden
« Antwort #2 am: 10 Februar 2019, 16:29:55 »
list .* subscriptions

erstmal thx für diese info.

gehört aber in mein augen irgendwo dokumentiert ... commandref? wiki?
Alles was man nicht in Assembler programmieren kann,
muß man löten.

Dont drink and drive, if you can smoke and fly

Offline Guzzi-Charlie

  • Jr. Member
  • **
  • Beiträge: 97
Antw:MQTT2, Befehle senden
« Antwort #3 am: 10 Februar 2019, 18:21:28 »
Hallo Rudi,

vielen Dank. Hätte ich ja auch selbst drauf kommen können. Das war schonmal die Hälfte der "Miete". In der Shelly-Doku ist der richtige Befehl beschrieben, d.h.
"on shellies/shelly1-12CB79/relay/0/command on"

und NICHT

"on cmd/shellies/shelly1-12CB79/relay/0 on" (Das paßt für Sonoff).

Ich kann jetzt den Shelly von FHEM aus schalten und die Anzeigen in FHEM (DevStateIcon) und im Shelly Web-IF funktionieren und passen.


Was noch nicht funktioniert, bzw. ich auch noch nicht richtig verstehe ist, daß ein externes Schalten (also über das Shelly Web-IF) die Anzeige in FHEM nicht umschaltet. Das zuständige Reading heißt "relay_0" und wird richtig umgeschaltet, egal von wo ich schalte, aber die Anzeige in FHEM schaltet nur richtig wenn ich über FHEM schalte. Auf was bezieht sich denn das "on/off" in DevStateIcon? Normal ja auf das Reading "state", aber das ändert sich nicht, egal von wo ich schalte.

- Raspberry PI 3+: (Cuno V2 mit 2x KS300, JeeLink mit 9x EC3000, Wetterstation WS101 (USB über Fowsr) ==> außer Betrieb
- Stromzähler: 38x DRS155M (B+G E-Tech) FHEM nicht möglich
- LAN: Intertechno LAN-Gateway mit 28x RMF-R1 (Rohrmotor24) ==> noch nicht in FHEM
- DECT: 4x DECT200
- WLAN: 1x Shelly 4

Offline Guzzi-Charlie

  • Jr. Member
  • **
  • Beiträge: 97
Antw:MQTT2, Befehle senden
« Antwort #4 am: 10 Februar 2019, 18:51:37 »
Hallo,

also ich weiß nicht warum, aber das Reading "state" verändert sich nun doch. Damit ist zumindest wieder alles logisch.

Trotzdem bleibt noch die Frage wie kann ich das attr "DevStateIcon" dazu bringen auf das Reading "relay_0" zu hören und NICHT auf das Reading "state"? Kann man das irgendwie "mappen"?

Gruß
- Raspberry PI 3+: (Cuno V2 mit 2x KS300, JeeLink mit 9x EC3000, Wetterstation WS101 (USB über Fowsr) ==> außer Betrieb
- Stromzähler: 38x DRS155M (B+G E-Tech) FHEM nicht möglich
- LAN: Intertechno LAN-Gateway mit 28x RMF-R1 (Rohrmotor24) ==> noch nicht in FHEM
- DECT: 4x DECT200
- WLAN: 1x Shelly 4

Offline Guzzi-Charlie

  • Jr. Member
  • **
  • Beiträge: 97
Antw:MQTT2, Befehle senden
« Antwort #5 am: 10 Februar 2019, 19:29:52 »
So, ich habe jetzt mal (zumindest temporär) eine Lösungsmöglichkeit gefunden. Ich habe einfach in meiner readingList dem Wert für ...relay/0 das Reading "state" zugewiesen. Damit habe ich mein "mapping" und es funktioniert alles so wie es soll.

Allerdings funktioniert das natürlich nur für einen Shelly 1. Bei einem Shelly 2, oder 4 (mit seinen 2, bzw. 4 Kanälen) funktioniert dieser Workaround natürlich nicht mehr. D.h. mein Problem bleibt weiterhin aktuell.

Wie kann ich das attr "DevStateIcon" dazu bringen auf das Reading "relay_0" zu hören und NICHT auf das Reading "state"? Kann man das irgendwie "mappen"?

Gruß und noch einen schönen Sonntag Abend
- Raspberry PI 3+: (Cuno V2 mit 2x KS300, JeeLink mit 9x EC3000, Wetterstation WS101 (USB über Fowsr) ==> außer Betrieb
- Stromzähler: 38x DRS155M (B+G E-Tech) FHEM nicht möglich
- LAN: Intertechno LAN-Gateway mit 28x RMF-R1 (Rohrmotor24) ==> noch nicht in FHEM
- DECT: 4x DECT200
- WLAN: 1x Shelly 4

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5983
  • Eigentlich USER! svn: templates mqtt2+httpmod
Antw:MQTT2, Befehle senden
« Antwort #6 am: 10 Februar 2019, 20:03:22 »
Du hast aber schon gesehen, dass für viele der Dinge, die du hier abarbeitest vielleicht Lösungen in den AttrTemplates enthalten sind?
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | CUL_HM: div. Hardware mit VCCU | MySensors seriell (2.3.1@RS485, daran div. Sensoren usw., u.a. DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline Guzzi-Charlie

  • Jr. Member
  • **
  • Beiträge: 97
Antw:MQTT2, Befehle senden
« Antwort #7 am: 12 Februar 2019, 12:56:39 »
@Beta-User

ja klar, habe ich schon gesehen, aber leider funktioniert es eben nicht richtig.

Ok, das mit dem Command war mein Fehler. Ist mir einfach nicht aufgefallen daß beim Sonoff der "cmd" vorne steht und beim Shelly der "command" hinten.

Aber bezüglich dem 2. Punkt "mappen" von reading relay_0 auf state war das zwar im Template vorhanden, funktioniert aber nicht, d.h.
defmod MQTT2_shelly1_12CB79 MQTT2_DEVICE shelly1_12CB79
attr MQTT2_shelly1_12CB79 IODev MQTT2_FHEM_Server
attr MQTT2_shelly1_12CB79 alias Pumpe WW (Speicher)
attr MQTT2_shelly1_12CB79 devStateIcon EIN:li_wht_on on:li_wht_on AUS:li_wht_off off:li_wht_off
attr MQTT2_shelly1_12CB79 event-on-change-reading .*
attr MQTT2_shelly1_12CB79 group Heizung
attr MQTT2_shelly1_12CB79 icon sani_pump
attr MQTT2_shelly1_12CB79 model A_10_shelly1
attr MQTT2_shelly1_12CB79 readingList shellies/shelly1-12CB79/relay/0:.* state\
  shellies/shelly1-12CB79/relay/0:.* relay0\
  shellies/shelly1-12CB79/input/0:.* input0\
  shellies/shelly1-12CB79/online:.* online\
  shellies/shelly1-12CB79/announce:.* { json2nameValue($EVENT, '', $JSONMAP) }
attr MQTT2_shelly1_12CB79 room Kellergeschoß,MQTT2_DEVICE
attr MQTT2_shelly1_12CB79 setList off:noArg shellies/shelly1-12CB79/relay/0/command off\
  on:noArg shellies/shelly1-12CB79/relay/0/command on
attr MQTT2_shelly1_12CB79 sortby 04
attr MQTT2_shelly1_12CB79 webCmd on:off

Wenn ich von FHEM aus schalte ist alles ok:
- DeviceStateIcon schaltet um
- Anzeige im Shelly Web-IF schaltet um

Wenn ich aber vom Shelly Web-IF aus schalte, dann:
- Shelly schaltet
- richtige Anzeige im Shelly Web-IF
- richtiger Wert im Reading relay_0
- keine Änderung im Reading state
  --> dadurch natürlich auch keine Änderung des DeviceStateIcon

Irgend etwas funktioniert mit der "Namensauflösung" nicht.
Wenn ich
attr MQTT2_shelly1_12CB79 readingList shellies/shelly1-12CB79/relay/0:.* state\auf
attr MQTT2_shelly1_12CB79 readingList shelly1_12CB79:shellies/shelly1-12CB79/relay/0:.* state\ändere, dann funktioniert alles richtig.

Ein von der autocreate-Funktion angelegtes Shelly Device hat den Shelly-Namen "shelly1_12CB79:" noch vorne im Pfad stehen. Erst durch das Template wird das gelöscht. Das wird aber offensichtlich benötigt. Ist das noch ein Fehler im Template?

Bei den restlichen Readings habe ich das noch nicht ergänzt, gehört da aber wohl auch hin.

Gruß
- Raspberry PI 3+: (Cuno V2 mit 2x KS300, JeeLink mit 9x EC3000, Wetterstation WS101 (USB über Fowsr) ==> außer Betrieb
- Stromzähler: 38x DRS155M (B+G E-Tech) FHEM nicht möglich
- LAN: Intertechno LAN-Gateway mit 28x RMF-R1 (Rohrmotor24) ==> noch nicht in FHEM
- DECT: 4x DECT200
- WLAN: 1x Shelly 4

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5983
  • Eigentlich USER! svn: templates mqtt2+httpmod
Antw:MQTT2, Befehle senden
« Antwort #8 am: 12 Februar 2019, 13:20:04 »
Hmmm,

eigentlich sollte die Angabe der CID vorneweg nicht erforderlich sein (shelly1_12CB79:).Könnte nur sein, dass das damit zusammenhängt, dass es zwei "Abonnenten" für diese Info gibt (relay0 und state) und du quasi durch die Angabe der CID state "erzwingst" (um den Preis, dass ggf. relay0 nicht mehr aktuell ist? Ob es in der jüngeren Vergangenheit Änderungen gab, die sowas verursachen, kann evtl. Rudi besser beantworten).

"Notfalls" sollte "stateFormat relay0" helfen.
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | CUL_HM: div. Hardware mit VCCU | MySensors seriell (2.3.1@RS485, daran div. Sensoren usw., u.a. DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline Guzzi-Charlie

  • Jr. Member
  • **
  • Beiträge: 97
Antw:MQTT2, Befehle senden
« Antwort #9 am: 12 Februar 2019, 14:05:16 »
Ok, dann werde ich noch ein wenig testen.

Allerdings ist der CID nach autocreate vorangestellt und wird ja erst durch das Template "quasi" entfernt.

Ich hatte das mit dem "mappen" des relay0-values auf state eigentlich nur als Workaround gesehen, aber wenn ich das jetzt richtig verstehe dann ist das DevStateIcon immer fest an "state" gebunden und kann auch nicht umgeleitet werden, oder? Außerdem kann es auch immer nur ein Icon geben. Damit muß man bei mehrkanaligen Geräten zwangsläufig für jeden Kanal ein eigenes Device anlegen, oder? Es sei denn man baut was mit Dummies, Readinggroups, etc. So hab ich das im Moment noch mit meinem Shelly 4Pro gemacht, den ich über das Shelly-Modul steuere. Da das Shelly-Modul aber die energy-Werte (kWh) nicht abfragt werde ich das demnächst rausschmeißen und dann alle Shellies über MQTT2 anbinden. Ist sowieso besser, da dann die Infos direkt vom Device kommen und nicht extra gepollt werden müssen.

Gruß
- Raspberry PI 3+: (Cuno V2 mit 2x KS300, JeeLink mit 9x EC3000, Wetterstation WS101 (USB über Fowsr) ==> außer Betrieb
- Stromzähler: 38x DRS155M (B+G E-Tech) FHEM nicht möglich
- LAN: Intertechno LAN-Gateway mit 28x RMF-R1 (Rohrmotor24) ==> noch nicht in FHEM
- DECT: 4x DECT200
- WLAN: 1x Shelly 4

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5983
  • Eigentlich USER! svn: templates mqtt2+httpmod
Antw:MQTT2, Befehle senden
« Antwort #10 am: 12 Februar 2019, 14:21:16 »
Vorsicht, du wirfst da ein paar Dinge durcheinander...

Vielleicht immer noch verkürzt: stateFormat mappt nicht irgendwas auf state, sondern beeinflußt STATE. STATE ist in der Regel Grundlage für devStateIcon. Further reading: https://wiki.fhem.de/wiki/DeviceOverview_anpassen

Es gibt aber auch eine Perl-Variante von devStateIcon, mit der lassen sich auch mehrere Icons samt unterschiedlicher "Klick"-Befehle auf die einzelnen Icons generieren. In den mqtt2.templates findet sich da z.B. was beim 4-Ch-Tasmota ;) . Dabei ist man nicht mal auf Readings des "eigentlichen" Devices beschränkt - ich nutze das neuerdings, um meine HM-Thermostate grafisch netter darzustellen (ca. eine Handvoll Ions für die Funkverbindung/Batterie, manual/auto, Valve-Zustand...).

Schau mal bei den Tasmota-templates nach und melde dich, wenn du (nach eigenen Experimenten dazu, bitte) Hilfe benötigst :) .
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | CUL_HM: div. Hardware mit VCCU | MySensors seriell (2.3.1@RS485, daran div. Sensoren usw., u.a. DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline Guzzi-Charlie

  • Jr. Member
  • **
  • Beiträge: 97
Antw:MQTT2, Befehle senden
« Antwort #11 am: 12 Februar 2019, 14:35:20 »
Das mit "STATE" (großgeschrieben) habe ich schon verstanden. Ich bezog mich mit dem "mappen" auch nicht auf stateFormat sondern auf die Zuweisung des Readings "...relay/0" auf "state" (kleingeschrieben).

Deinen Tip mit den 4-ch Tasmotas werde ich mir mal genau anschauen. Hört sich sehr interessant an. Mal sehen.

Ich muß noch ein wenig weiter testen, aber bis jetzt sieht es so aus das der CID auf jeden Fall in der setList vorangestellt werden muß. Sonst wird "state" beim Bedienen über das Shelly Web-IF nicht umgesetzt. HW-Eingang am Shelly hab ich noch nicht probiert. Ich denke aber das wird das gleiche Ergebnis liefern.

Gruß
- Raspberry PI 3+: (Cuno V2 mit 2x KS300, JeeLink mit 9x EC3000, Wetterstation WS101 (USB über Fowsr) ==> außer Betrieb
- Stromzähler: 38x DRS155M (B+G E-Tech) FHEM nicht möglich
- LAN: Intertechno LAN-Gateway mit 28x RMF-R1 (Rohrmotor24) ==> noch nicht in FHEM
- DECT: 4x DECT200
- WLAN: 1x Shelly 4

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5983
  • Eigentlich USER! svn: templates mqtt2+httpmod
Antw:MQTT2, Befehle senden
« Antwort #12 am: 12 Februar 2019, 14:44:47 »
Sorry, dass ich das mit dem "mappen" mißverstanden hatte.

Vielleicht kannst du auch testweise mal die beiden Angaben relay0 und state in der readingList tauschen? Würde mich interessieren, ob wirklich nur eines (das letzte?) bedient wird.

Das mit der CID (bzw. dem Entfernen derselben) ist jedenfalls früher kein Problem gewesen. Nutzt man MQTT2_CLIENT als IO, ist die CID sowieso wenigstens unnötig, im schlimmsten Fall hinderlich; m.E. ist es daher kein Fehler, die zu entfernen.
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | CUL_HM: div. Hardware mit VCCU | MySensors seriell (2.3.1@RS485, daran div. Sensoren usw., u.a. DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN

Offline Guzzi-Charlie

  • Jr. Member
  • **
  • Beiträge: 97
Antw:MQTT2, Befehle senden
« Antwort #13 am: 12 Februar 2019, 15:00:31 »
Mit "Tauschen" meinst Du die Reihenfolge, also Zeile in der setList, oder? Hab ich noch nicht probiert, kann ich aber gleich mal versuchen. Was ich allerdings sicher sagen kann ist, daß es ohne vorangestellte CID nicht geht. Allerdings: Wenn ich beide Readings in der setList habe (also relay0 UND state) und beide haben die CID vorangestellt, dann funktioniert es auch nicht. Ich nutze den MQTT2-Server.

Im Moment habe ich es so:
attr MQTT2_shelly1_12CB79 readingList shelly1_12CB79:shellies/shelly1-12CB79/relay/0:.* state\
shelly1_12CB79:shellies/shelly1-12CB79/input/0:.* input0\
shelly1_12CB79:shellies/shelly1-12CB79/online:.* online\
shelly1_12CB79:shellies/shelly1-12CB79/announce:.* { json2nameValue($EVENT, '', $JSONMAP) }
Damit funktioniert erstmal alles so wie es soll.
- Raspberry PI 3+: (Cuno V2 mit 2x KS300, JeeLink mit 9x EC3000, Wetterstation WS101 (USB über Fowsr) ==> außer Betrieb
- Stromzähler: 38x DRS155M (B+G E-Tech) FHEM nicht möglich
- LAN: Intertechno LAN-Gateway mit 28x RMF-R1 (Rohrmotor24) ==> noch nicht in FHEM
- DECT: 4x DECT200
- WLAN: 1x Shelly 4

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5983
  • Eigentlich USER! svn: templates mqtt2+httpmod
Antw:MQTT2, Befehle senden
« Antwort #14 am: 12 Februar 2019, 15:08:29 »
Mit "Tauschen" meinst Du die Reihenfolge, also Zeile in der setList, oder?
Ja, das war gemeint gewesen.

Dass es mit der "doppelten" CID vorangestellt dann auch nicht geht, beruhigt mich irgendwie - du kannst die vorangestellten CID's m.E. daher auch wieder löschen... Auch der Reihenfolge-Test bringt vermutlich nur das Ergebnis, dass eben eines (das letzte?) der Readings bedient wird. Ich würde daher erst mal empfehlen, das "eigentliche" Reading relay0 zu füllen und dann mit stateFormat zu arbeiten. Dann sind wenigstens die Daten in sich konsistent(er), geschrieben wird auf relay/0, empfangen auch...
Server: HP-T5740 mit Debian stretch (i386) + aktuellem FHEM | ConfigDB | CUL_HM: div. Hardware mit VCCU | MySensors seriell (2.3.1@RS485, daran div. Sensoren usw., u.a. DS18B20) | Milight@ESP-GW@MQTT2 | zigbee2mqtt@MQTT2 | SIGNALduino | MapleCUN