MQTT2_DEVICE

Begonnen von Schuetze5, 08 November 2020, 10:44:55

Vorheriges Thema - Nächstes Thema

Schuetze5

Guten Morgen, ich bin dabei von MQTT auf MQTT2 umzustellen und habe ein Problem für das ich keine Lösung finde bzw. zu blöd zum Suchen bin.
Ich habe alle MQTT Geräte in FHEM gelöscht und auch den Broker,
dann habe ich einen MQTT2_CLIENT eingerichtet ( bei mir läuft ein Mosquitto Server ),
dann habe ich das erste MQTT Gerät  (einen Shellydimmer ) neu gestartet und er wurde auch sofort erkannt und kann bedient werden,
es wurde ein neuer Raum angelegt MQTT2_DEVICE in dem der Dimmer ist.
Soweit alles gut nur wenn ich dann das nächste Gerät starte taucht es in den Readings des Dimmers auf und kann nicht bedient werden?
Ich habe dann den Dimmer umbenannt von MQTT2_mybroker in Shellydimmer, dann wurden überhaupt keine neuen Geräte mehr gefunden!

Wer kann mir Helfen?
Hier noch die RAW von dem Dimmer ohne das ich ihn umbenannt habe, und das zweite Gerät in den Readings:


defmod MQTT2_mybroker MQTT2_DEVICE mybroker
attr MQTT2_mybroker IODev mybroker
attr MQTT2_mybroker devStateIcon {my $lderr = ReadingsVal($name,"loaderror","true") eq "true"?"10px-kreis-rot":"10px-kreis-gruen";; my $light = ReadingsVal($name,"ison","false") eq "true"?"on":"off";; my $cons = ReadingsVal($name,"light_0_power","unknown");; FW_makeImage($lderr)."<a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Leistung: $cons</div>"}
attr MQTT2_mybroker genericDeviceType light
attr MQTT2_mybroker icon light_control
attr MQTT2_mybroker jsonMap brightness:pct
attr MQTT2_mybroker model shellydimmer
attr MQTT2_mybroker readingList shellies/shellydimmer/light/0/status:.* {json2nameValue($EVENT,'',$JSONMAP)}\
  shellies/shellydimmer/light/0:.* state\
  shellies/shellydimmer/light/0/power:.* light_0_power\
  shellies/shellydimmer/light/0/energy:.* light_0_energy\
  shellies/shellydimmer/temperature:.* temperature\
  shellies/shellydimmer/temperature_f:.* temperature_f\
  shellies/shellydimmer/online:.* online\
  shellies/shellydimmer/overtemperature:.* overtemperature\
  shellies/shellydimmer/overload:.* overload\
  shellies/shellydimmer/loaderror:.* loaderror\
  shellies/announce:.* { $EVENT =~ m,..id...shellydimmer...mac.*, ? json2nameValue($EVENT) : return }\
mybroker:shellies/shellydimmer/command:.* command\
mybroker:shellies/shellydimmer/announce:.* { json2nameValue($EVENT) }\
mybroker:shellies/shellydimmer/light/0/command:.* light_0_command\
mybroker:shellies/shellydimmer/light/0/set:.* { json2nameValue($EVENT) }\
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/tele/LWT:.* LWT\
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/cmnd/POWER:.* POWER\
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/tele/INFO1:.* { json2nameValue($EVENT) }\
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/tele/INFO2:.* { json2nameValue($EVENT) }\
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/tele/INFO3:.* { json2nameValue($EVENT) }\
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/RESULT:.* { json2nameValue($EVENT) }\
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/POWER1:.* POWER1\
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/tele/STATE:.* { json2nameValue($EVENT) }
attr MQTT2_mybroker room MQTT2_DEVICE
attr MQTT2_mybroker setList off:noArg shellies/shellydimmer/light/0/command off\
  on:noArg shellies/shellydimmer/light/0/command on\
  pct:slider,0,1,100 shellies/shellydimmer/light/0/set {"turn": "on","brightness": $EVTPART1}\
  dimup:noArg { my $num=int((ReadingsNum($NAME,'pct',0)+4)/10)*10+10;; return qq {shellies/shellydimmer/light/0/set {"turn": "on", "brightness": $num}};; }\
  dimdown:noArg { my $num=int((ReadingsNum($NAME,'pct',0)+7)/10)*10-10;; return qq {shellies/shellydimmer/light/0/set {"turn": "on", "brightness": $num}};; }\
  x_mqttcom shellies/shellydimmer/command $EVTPART1
attr MQTT2_mybroker webCmd pct:on:off


Danke

TomLee

Moin,

liest sich so das du nach dem anlegen des MQTT2_CLIENT auf das erste automatisch angelegte Device nicht das  MQTT2_CLIENT_general_bridge-Template angewendet hast ?

https://wiki.fhem.de/wiki/MQTT2_CLIENT#autocreate_und_bridgeRegexp

Gruß

Thomas

rudolfkoenig

Oder auch: autocreate funktioniert mit MQTT2_SERVER direkt, MQTT2_CLIENT braucht manuelle Nachhilfe.
Perfekt sind beide nicht.

Schuetze5

Bei MQTT2_CLIENT steht autocreate auf simple.
Ich habe jetzt alles nochmal gelöscht und habe dann bei dem ersten automatisch angelegtem Device das MQTT2_CLIENT_general_bridge-Template angewendet und es werden schonmal alle shellys einzelnd angelegt nur die Sonoff / Tasmota stehen immer noch alle in dem ersten DeVice.

rudolfkoenig

D.h. das vom Template gesetzte bridgeRegexp Attribut ist in deinem Fall nicht ganz richtig.

Ich sehe mehrere Loesungen:
- bridgeRegexp korrigieren
- in den nicht angelegten Geraeten die MQTT Topics so anpassen, dass bridgeRegexp sie erkennt
- die fehlenden Geraete (analog zum alten MQTT) per Hand anlegen, und readingsList jeweils setzen
- auf MQTT2_SERVER umsteigen

TomLee

Aus Interesse hab ich bei einer OBI-WLAN-Steckdose ein Update auf die neueste Version 9.1.0 gemacht, auf einem aktuellen Testsystem einen MQTT2_CLIENT definiert und auf das erste erstellte Device das Template angewendet.
autocreate funzt hier ohne Probleme mit Tasmota (und auf den ersten Blick mit allen anderen sonstigen Geräten).

An der bridgeRegexp kanns schonmal nicht liegen.

Auch wenn sich mMn laut Änderungshistorie nie was am regexp geändert hat, hast du ein aktuelles System ?

Wie sieht denn die bridgeRegexp bei dir aus ?


OdfFhem

@Schuetze5

Ich nutze schon seit der Einführung der MQTT2-Module mosquitto und MQTT2_CLIENT - habe bislang keinerlei Probleme.

Für die Analyse Deines Problems wäre ein list der "general bridge" hilfreich ...

Schuetze5

Hier das List des ersten Devices das automatisch angelegt wurde und dann von mir mit dem MQTT2_CLIENT_general_bridge-Template versehen wurde:

Internals:
   CID        mybroker
   DEF        mybroker
   DEVICETOPIC MQTT2_mybroker
   FUUID      5fa7cce0-f33f-d66a-a5a9-5cf99b751f3b2c43
   FVERSION   10_MQTT2_DEVICE.pm:0.224580/2020-07-24
   IODev      mybroker
   LASTInputDev mybroker
   MSGCNT     24
   NAME       MQTT2_mybroker
   NR         446
   STATE      ???
   TYPE       MQTT2_DEVICE
   mybroker_MSGCNT 24
   mybroker_TIME 2020-11-08 17:42:35
   READINGS:
     2020-11-08 17:38:03   AM2301_Humidity 41.6
     2020-11-08 17:38:03   AM2301_Temperature 25.6
     2020-11-08 11:52:40   Backlog         StateText1 off; StateText2 on; StateText3 toggle; StateText4 hold; SetOption26 1; SaveData 1
     2020-11-08 17:42:35   ENERGY_ApparentPower 0
     2020-11-08 17:42:35   ENERGY_Current  0.000
     2020-11-08 17:42:35   ENERGY_Factor   0.00
     2020-11-08 17:42:35   ENERGY_Period   0
     2020-11-08 17:42:35   ENERGY_Power    0
     2020-11-08 17:42:35   ENERGY_ReactivePower 0
     2020-11-08 17:42:35   ENERGY_Today    3.906
     2020-11-08 17:42:35   ENERGY_Total    69.792
     2020-11-08 17:42:35   ENERGY_TotalStartTime 2020-02-03T00:00:00
     2020-11-08 17:42:35   ENERGY_Voltage  0
     2020-11-08 17:42:35   ENERGY_Yesterday 1.265
     2020-11-08 12:18:39   FallbackTopic   cmnd/Friteuse_fb/
     2020-11-08 12:18:39   GroupTopic      Smarthome/Kueche/sonoffs/cmnd/
     2020-11-08 17:42:35   Heap            27
     2020-11-08 12:18:39   Hostname        Verbrauch_Server
     2020-11-08 12:18:39   IPAddress       10.1.30.49
     2020-11-08 17:34:48   LWT             Online
     2020-11-08 17:42:35   LoadAvg         19
     2020-11-08 12:18:39   Module          Sonoff Pow
     2020-11-08 17:42:35   MqttCount       2
     2020-11-08 17:42:35   POWER           OFF
     2020-11-08 17:39:18   POWER1          off
     2020-11-08 12:25:47   Power           off
     2020-11-08 12:18:39   RestartReason   Software/System restart
     2020-11-08 11:52:41   SaveData        on
     2020-11-08 11:52:41   SetOption26     on
     2020-11-08 17:42:35   Sleep           50
     2020-11-08 17:42:35   SleepMode       Dynamic
     2020-11-08 11:52:40   StateText1      off
     2020-11-08 11:52:40   StateText2      on
     2020-11-08 11:52:41   StateText3      toggle
     2020-11-08 11:52:41   StateText4      hold
     2020-11-08 12:25:47   Status          0
     2020-11-08 12:25:47   StatusFWR_Boot  7
     2020-11-08 12:25:47   StatusFWR_BuildDateTime 2019.12.25 12:47:07
     2020-11-08 12:25:47   StatusFWR_CR    404/699
     2020-11-08 12:25:47   StatusFWR_Core  2_6_1
     2020-11-08 12:25:47   StatusFWR_Hardware ESP8285
     2020-11-08 12:25:47   StatusFWR_SDK   2.2.2-dev(38a443e)
     2020-11-08 12:25:47   StatusFWR_Version 8.1.0(tasmota)
     2020-11-08 12:25:47   StatusLOG_LogHost
     2020-11-08 12:25:47   StatusLOG_LogPort 514
     2020-11-08 12:25:47   StatusLOG_MqttLog 0
     2020-11-08 12:25:47   StatusLOG_Resolution 558180C0
     2020-11-08 12:25:47   StatusLOG_SSId_1 Sonoffhome
     2020-11-08 12:25:47   StatusLOG_SSId_2
     2020-11-08 12:25:47   StatusLOG_SerialLog 2
     2020-11-08 12:25:47   StatusLOG_SetOption_1 04008009
     2020-11-08 12:25:47   StatusLOG_SetOption_2 2805C8000100060000005A00000000000000
     2020-11-08 12:25:47   StatusLOG_SetOption_3 00000000
     2020-11-08 12:25:47   StatusLOG_SetOption_4 00000000
     2020-11-08 12:25:47   StatusLOG_SysLog 0
     2020-11-08 12:25:47   StatusLOG_TelePeriod 300
     2020-11-08 12:25:47   StatusLOG_WebLog 2
     2020-11-08 12:25:47   StatusMEM_Drivers 1,2,3,4,5,6,7,8,9,10,12,16,18,19,20,21,22,24,26,29
     2020-11-08 12:25:47   StatusMEM_Features_1 00000407
     2020-11-08 12:25:47   StatusMEM_Features_2 8FDAE397
     2020-11-08 12:25:47   StatusMEM_Features_3 043683A0
     2020-11-08 12:25:47   StatusMEM_Features_4 22B617CD
     2020-11-08 12:25:47   StatusMEM_Features_5 01001BC0
     2020-11-08 12:25:47   StatusMEM_Features_6 00007881
     2020-11-08 12:25:47   StatusMEM_FlashChipId 144051
     2020-11-08 12:25:47   StatusMEM_FlashMode 3
     2020-11-08 12:25:47   StatusMEM_FlashSize 1024
     2020-11-08 12:25:47   StatusMEM_Free  436
     2020-11-08 12:25:47   StatusMEM_Heap  25
     2020-11-08 12:25:47   StatusMEM_ProgramFlashSize 1024
     2020-11-08 12:25:47   StatusMEM_ProgramSize 567
     2020-11-08 12:25:47   StatusMEM_Sensors 1,2,3,4,5,6,7,8,9,10,14,15,17,18,20,22,26,34
     2020-11-08 12:25:47   StatusMQT_KEEPALIVE 30
     2020-11-08 12:25:47   StatusMQT_MAX_PACKET_SIZE 1000
     2020-11-08 12:25:47   StatusMQT_MqttClient Badezimmer_Rest
     2020-11-08 12:25:47   StatusMQT_MqttClientMask Badezimmer_Rest
     2020-11-08 12:25:47   StatusMQT_MqttCount 1
     2020-11-08 12:25:47   StatusMQT_MqttHost 192.168.2.2
     2020-11-08 12:25:47   StatusMQT_MqttPort 48287
     2020-11-08 12:25:47   StatusMQT_MqttUser DVES_USER
     2020-11-08 12:25:47   StatusNET_DNSServer 10.1.30.1
     2020-11-08 12:25:47   StatusNET_Gateway 10.1.30.1
     2020-11-08 12:25:47   StatusNET_Hostname Badezimmer_Rest
     2020-11-08 12:25:47   StatusNET_IPAddress 10.1.30.41
     2020-11-08 12:25:47   StatusNET_Mac   D8:F1:5B:8D:3B:BC
     2020-11-08 12:25:47   StatusNET_Subnetmask 255.255.255.0
     2020-11-08 12:25:47   StatusNET_Webserver 2
     2020-11-08 12:25:47   StatusNET_WifiConfig 4
     2020-11-08 12:25:47   StatusPRM_Baudrate 115200
     2020-11-08 12:25:47   StatusPRM_BootCount 30
     2020-11-08 12:25:47   StatusPRM_CfgHolder 4617
     2020-11-08 12:25:47   StatusPRM_GroupTopic tasmotas
     2020-11-08 12:25:47   StatusPRM_OtaUrl http://thehackbox.org/tasmota/release/tasmota.bin
     2020-11-08 12:25:47   StatusPRM_RestartReason Software/System restart
     2020-11-08 12:25:47   StatusPRM_SaveAddress F9000
     2020-11-08 12:25:47   StatusPRM_SaveCount 718
     2020-11-08 12:25:47   StatusPRM_Sleep 50
     2020-11-08 12:25:47   StatusPRM_StartupUTC
     2020-11-08 12:25:47   StatusPRM_Uptime 0T00:34:36
     2020-11-08 12:04:52   StatusSNS_AM2301_Humidity 41.6
     2020-11-08 12:04:52   StatusSNS_AM2301_Temperature 23.5
     2020-11-08 12:04:52   StatusSNS_TempUnit C
     2020-11-08 12:25:47   StatusSNS_Time  1970-01-01T00:34:35
     2020-11-08 12:25:47   StatusSTS_Heap  25
     2020-11-08 12:25:47   StatusSTS_LoadAvg 20
     2020-11-08 12:25:47   StatusSTS_MqttCount 1
     2020-11-08 12:04:52   StatusSTS_POWER OFF
     2020-11-08 12:25:47   StatusSTS_POWER1 off
     2020-11-08 12:25:47   StatusSTS_Sleep 50
     2020-11-08 12:25:47   StatusSTS_SleepMode Dynamic
     2020-11-08 12:25:47   StatusSTS_Time  1970-01-01T00:34:35
     2020-11-08 12:25:47   StatusSTS_Uptime 0T00:34:36
     2020-11-08 12:25:47   StatusSTS_UptimeSec 2076
     2020-11-08 12:25:47   StatusSTS_Wifi_AP 1
     2020-11-08 12:25:47   StatusSTS_Wifi_BSSId 1A:E8:29:EA:38:4B
     2020-11-08 12:25:47   StatusSTS_Wifi_Channel 1
     2020-11-08 12:25:47   StatusSTS_Wifi_Downtime 0T00:00:06
     2020-11-08 12:25:47   StatusSTS_Wifi_LinkCount 1
     2020-11-08 12:25:47   StatusSTS_Wifi_RSSI 90
     2020-11-08 12:25:47   StatusSTS_Wifi_SSId Sonoffhome
     2020-11-08 12:25:47   StatusSTS_Wifi_Signal -55
     2020-11-08 12:25:47   StatusTIM_EndDST Thu Jan 01 00:00:00 1970
     2020-11-08 12:25:47   StatusTIM_Local Thu Jan 01 00:34:35 1970
     2020-11-08 12:25:47   StatusTIM_StartDST Thu Jan 01 00:00:00 1970
     2020-11-08 12:25:47   StatusTIM_Sunrise 07:43
     2020-11-08 12:25:47   StatusTIM_Sunset 16:03
     2020-11-08 12:25:47   StatusTIM_Timezone +00:00
     2020-11-08 12:25:47   StatusTIM_UTC   Thu Jan 01 00:34:35 1970
     2020-11-08 12:25:47   Status_ButtonRetain 0
     2020-11-08 12:25:47   Status_ButtonTopic 0
     2020-11-08 12:25:47   Status_FriendlyName_1 Badezimmer_Rest
     2020-11-08 12:25:47   Status_LedMask  FFFF
     2020-11-08 12:25:47   Status_LedState 1
     2020-11-08 12:25:47   Status_Module   1
     2020-11-08 12:25:47   Status_Power    0
     2020-11-08 12:25:47   Status_PowerOnState 3
     2020-11-08 12:25:47   Status_PowerRetain 0
     2020-11-08 12:25:47   Status_SaveData 1
     2020-11-08 12:25:47   Status_SaveState 1
     2020-11-08 12:25:47   Status_SensorRetain 0
     2020-11-08 12:25:47   Status_SwitchMode_1 0
     2020-11-08 12:25:47   Status_SwitchMode_2 0
     2020-11-08 12:25:47   Status_SwitchMode_3 0
     2020-11-08 12:25:47   Status_SwitchMode_4 0
     2020-11-08 12:25:47   Status_SwitchMode_5 0
     2020-11-08 12:25:47   Status_SwitchMode_6 0
     2020-11-08 12:25:47   Status_SwitchMode_7 0
     2020-11-08 12:25:47   Status_SwitchMode_8 0
     2020-11-08 12:25:47   Status_SwitchRetain 0
     2020-11-08 12:25:47   Status_SwitchTopic 0
     2020-11-08 12:25:47   Status_Topic    Badezimmer_Rest
     2020-11-08 17:38:03   TempUnit        C
     2020-11-08 17:42:35   Time            1970-01-01T05:24:02
     2020-11-08 17:42:35   Uptime          0T05:22:12
     2020-11-08 17:42:35   UptimeSec       19332
     2020-11-08 12:18:39   Version         8.1.0(tasmota)
     2020-11-08 12:18:39   WebServerMode   Admin
     2020-11-08 17:42:35   Wifi_AP         1
     2020-11-08 17:42:35   Wifi_BSSId      1A:E8:29:E4:91:6A
     2020-11-08 17:42:35   Wifi_Channel    6
     2020-11-08 17:42:35   Wifi_Downtime   0T00:00:06
     2020-11-08 17:42:35   Wifi_LinkCount  1
     2020-11-08 17:42:35   Wifi_RSSI       74
     2020-11-08 17:42:35   Wifi_SSId       Sonoffhome
     2020-11-08 17:42:35   Wifi_Signal     -63
     2020-11-08 11:50:50   attrTemplateVersion 20200625_2
     2020-11-08 12:27:31   fw_ver          20200320-123430/v1.6.2@514044b4
     2020-11-08 12:27:31   id              shelly1-0591F5
     2020-11-08 12:27:31   ip              10.1.30.2
     2020-11-08 12:27:31   mac             CC50E30591F5
     2020-11-08 12:27:31   new_fw          false
Attributes:
   IODev      mybroker
   autocreate 1
   bridgeRegexp (tele|stat)[/]([^/]+)[/].*:.* "$2"
  shellies[/]([^/]+)[/].*:.* "$1"
  (zigbee2mqtt)/bridge/.*:.* "$1"
  (ESPClient_[^/]+)/.*:.* "$1"
  (ebusd)/global/.*:.* "$1"
  valetudo[/]([^/]+)[/].*:.* "$1"
  [^/]+[/](ems-esp[^/]+)/start:.* "$1"
  wallpanel[/]([^/]+)[/].*:.* "wallpanel_$1"
  (wled)[/]([^/]+)[/].*:.* "$1_$2"
  (go-eCharger)[/]([^/]+)[/].*:.* "go_eCharger_$2"
  (owntracks)[/]([^/:]+)[/]([^/:]+).*:.* "$1_$2$3"
  Advantech[/]([^/]+)[/].*:.* "$1"
  (sonos)/connected.* "$1"
  (tvheadend)[/][^/:]+.* "$1"
  (mygateway[\d]+)-(in|out)/.* "$1"
  (milight)/LWT:.* "$1"
  home/(O[^/]*M[^/]*G[^/]*)/LWT:.* "$1"
  homeassistant/.*/config:.* ""
   comment    Do not use very open bridgeRegexp expressions! This might lead to irritating results... Especially make sure to not have two regexpes that may both match!
   icon       mqtt_bridge_2
   model      MQTT2_CLIENT_general_bridge
   readingList mybroker:Smarthome/Badezimmer/Badezimmer_Rest/tele/LWT:.* LWT
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/cmnd/POWER:.* POWER
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/tele/INFO1:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/tele/INFO2:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/tele/INFO3:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/RESULT:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/POWER1:.* POWER1
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/tele/STATE:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/cmnd/Backlog:.* Backlog
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/cmnd/POWER1:.* POWER1
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/tele/LWT:.* LWT
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/cmnd/POWER:.* POWER
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/tele/INFO1:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/tele/INFO2:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/tele/INFO3:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/RESULT:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/POWER:.* POWER
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/tele/STATE:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/tele/SENSOR:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/cmnd/Power:.* Power
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/cmnd/Status:.* Status
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/STATUS:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/STATUS1:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/STATUS2:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/STATUS3:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/STATUS4:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/STATUS5:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/STATUS6:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/STATUS7:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/STATUS10:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmertemperatur/stat/STATUS11:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Flur/Tueroeffner/tele/LWT:.* LWT
mybroker:Smarthome/Flur/Tueroeffner/cmnd/POWER:.* POWER
mybroker:Smarthome/Flur/Tueroeffner/tele/INFO1:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Flur/Tueroeffner/tele/INFO2:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Flur/Tueroeffner/tele/INFO3:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Flur/Tueroeffner/stat/RESULT:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Flur/Tueroeffner/stat/POWER1:.* POWER1
mybroker:Smarthome/Flur/Tueroeffner/tele/STATE:.* { json2nameValue($EVENT) }
mybroker:shellies/announce:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Kueche/Friteuse/tele/LWT:.* LWT
mybroker:Smarthome/Kueche/Friteuse/cmnd/POWER:.* POWER
mybroker:Smarthome/Kueche/Friteuse/tele/INFO1:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Kueche/Friteuse/tele/INFO2:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Kueche/Friteuse/tele/INFO3:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Kueche/Friteuse/stat/RESULT:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Kueche/Friteuse/stat/POWER:.* POWER
mybroker:Smarthome/Kueche/Friteuse/tele/STATE:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Kueche/Friteuse/tele/SENSOR:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/cmnd/Power:.* Power
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/cmnd/Status:.* Status
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/STATUS:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/STATUS1:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/STATUS2:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/STATUS3:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/STATUS4:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/STATUS5:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/STATUS6:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/STATUS7:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/STATUS10:.* { json2nameValue($EVENT) }
mybroker:Smarthome/Badezimmer/Badezimmer_Rest/stat/STATUS11:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE
   setList    clear_all:noArg {fhem("deleteattr $NAME readingList; deletereading -q $NAME (?!associatedWith).*");return undef}
   setStateList on off

TomLee

#8
Alles klar, denke das einfachste wäre dann hier das gleich am Anfang erwähnte Info-Feld zu beachten.

Oder die bridgeRegexp anpassen, auf den Pfad den du in den MQTT-Einstellungen im Tasmota-UI vergeben hast.

edit:

die readingList des mybroker-Device nicht vergessen zu löschen nachdem du dich für irgendeine Lösung entschieden hast

OdfFhem

#9
@Schuetze5

Du erhälst Tasmota-Topics nach folgendem Muster

Smarthome/Badezimmer/Badezimmer_Rest/tele/INFO1:xyz

und willst den FHEM-Devicenamen lt. folgendem regExp ermitteln

(tele|stat)[/]([^/]+)[/].*:.* "$2"

Damit ist klar, dass es keine Übereinstimmung geben kann.


Meine Topic-Struktur deckt sich fast mit Deiner Struktur und bei z.B.

SmartHome/Tasmota/Steckdose/TasmotaBiber4/tele/INFO1:xyz

erhalte ich mit meinem eingesetzen regExp

SmartHome/Tasmota/Steckdose/([A-Za-z0-9]*)/.*:.* "tasmota_$1"

ein FHEM-Device mit dem Namen MQTT2_tasmota_TasmotaBiber4


Vermutlich reicht bei Dir aber ein einfacher Tausch im allgemeineren regExp:
aus
(tele|stat)[/]([^/]+)[/].*:.* "$2"
könnte
([^/]+)[/](tele|stat)[/].*:.* "$1"
werden ...

Wird das bridgeRegexp-Attribut verändert, werden "normalerweise/aus bisheriger Erfahrung" das readingList-Attribut sowie die unnütz gewordenen Readings gelöscht.

TomLee

Wie erwähnt nicht vergessen die readingList zu löschen wenn du den regexp anpassen solltest.




Für mich hab ich zu meinem Verständnis den Vorschlag
Zitat
- auf MQTT2_SERVER umsteigen

angeschaut. (weil mir die Erkenntnis nicht bewusst war)

Wenn du in Zukunft auf den bisher verwendeten Mosquitto-Dienst verzichten kannst, dann nimm MQTT2_SERVER.

Auch mit deinem verwendeten Topic-Pfad wird dann das Device automatisch angelegt.

Schuetze5

Ich schaue mir mal MQTT2_SERVER an um das besser zu verstehen.
Vielen Dank an alle

rudolfkoenig

Der MQTT2_SERVER verfuegt ueber die clientID jedes verbundenen Clients, kann deswegen auch unterschiedliche Topics richtig einem MQTT2_DEVICE zuordnen. MQTT-Clients (wie MQTT oder MQTT2_CLIENT) haben diese Info nicht, deswegen muessen sie die Zuordnung anhand des Topics manuell oder halbautomatisch (wie beim Template) machen.

Leider verwenden manche MQTT Geraete fuer jede Verbindung eine zufaellige ClientID, womit der Vorteil von MQTT2_SERVER in diesen Faellen wegfaellt, hier muss man die Zurodnung anhand des Topics machen.

Schuetze5

Ich bin zu blöd für MQTT2, der Server erkennt garnichts und bleibt auf Initialized stehen...
hier mal ein List:

Internals:
   DEF        2888 global
   FD         77
   FUUID      5fa94523-f33f-d66a-5af4-2d153358d6a08c3e
   FVERSION   00_MQTT2_SERVER.pm:0.225940/2020-08-13
   NAME       MQTT2_FHEM_Server
   NR         446
   PORT       2888
   STATE      Initialized
   TYPE       MQTT2_SERVER
   READINGS:
     2020-11-09 14:34:21   nrclients       0
     2020-11-09 14:34:21   state           Initialized
   clients:
   retain:
Attributes:

mit Port 1883 habe ich es auch probiert, mit dem gleichen Ergebniss.

rudolfkoenig

MQTT2_SERVER ist ein Ersatz fuer (mosquitto und MQTT2_CLIENT).
D.h. entweder ersetzt man mosquitto mit MQTT2_SERVER (gleicher Server, gleicher Port), oder man muss in allen MQTT-Endgeraeten den MQTT Server auf MQTT2_SERVER aendern.