Exclude-Möglichkeit beim Autocreate des MQTT2-Servers?

Begonnen von FunkOdyssey, 05 Februar 2019, 12:35:29

Vorheriges Thema - Nächstes Thema

FunkOdyssey

Hallo,

besteht die Möglichkeit, gewisse Readings nicht durch das Autocreate des MQTT2-Server anlegen zu lassen?

Ich habe ein Reading, welches ich nur loswerde, wenn ich Autocreate deaktiviere. (welches ich aber gerne eingeschaltet lassen möchte)

ebusd/global/uptime:.* uptime

Das Uptime-Reading aktualisiert sich sekündlich und müllt mir die Logs voll.

Auf der eBusd-Seite kann ich es auch nicht deaktivieren.

Oder hat jemand vielleicht eine andere Idee?

Danke vielmals.

Wuppi68

FHEM unter Proxmox als VM

FunkOdyssey

Ja und nein.

Sicherlich hast du Recht und ich könnte alle anderen Readings in event-on-change-reading aufnehmen.
(Am Rande: Ich würde immer noch eine Variante begrüßen, in denen man bei event-on-change... mit einer Blacklist arbeiten könnte. Dieser Wunsch ist mir schon oft gekommen. Ein RegEx quasi "alle bis auf uptime".  :) )

Ich finde es jedoch schade, dass man nicht nur bestimmte Readings "abonnieren" kann. Man empfängt quasi alles und wird es nicht mehr los. Das wird in einigen Geräte extrem unordentlich.

Beta-User

Ungetestet:
Ein Device anlegen mit einer readingList, die alle "ungewollten" Readings enthält. Das dann einfach nicht loggen.

Erklärung: der autocreate-Mechanismus bei MQTT2_DEVICE versucht erst, die message an vorhandene Devices zu verteilen. Erst wenn das nicht klappt, werden vorhandene Devices ergänzt (wenn die bridgeRegexp paßt) bzw. neue angelegt.

Sollte das klappen, sollte man es evtl. in den "Praxisbeispielen" im Wiki ergänzen (darf gerne mal jemand anderes machen...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rudolfkoenig

Erst alles anlegen lassen, dann fuer MQTT2_DEVICE(!) autocreate 0 setzen, und dann ueberfluessige Readings loeschen.

FunkOdyssey

Danke für eure Tipps. Ich probiere das mal aus.

Zitat von: rudolfkoenig am 05 Februar 2019, 13:21:42
Erst alles anlegen lassen, dann fuer MQTT2_DEVICE(!) autocreate 0 setzen, und dann ueberfluessige Readings loeschen.

Danke Rudi. Das hat bei mir aber nicht geklappt. Ich habe das Reading und den Eintrag in der readingList gelöscht. Das reading uptime taucht später in einem anderen MQTT2-DEVICE wieder auf.
Vielleicht sollte ich dabeisagen, dass ich den Namen des MQTT2-DEVICE individualisiert habe. Heißt also nicht mehr MQTT2_ebusd_3.3_1, sondern MQTT2_ebusd.


rudolfkoenig

ZitatVielleicht sollte ich dabeisagen, dass ich den Namen des MQTT2-DEVICE individualisiert habe. Heißt also nicht mehr MQTT2_ebusd_3.3_1, sondern MQTT2_ebusd.
Das ist egal. Mein Vorschlag funktioniert nur mit MQTT2_SERVER, und clients, die clientID estzen.
Wenn das bei Dir der Fall ist, dann bitte ein List vom MQTT2_DEVICE und danach ein MQTT2_SERVER "verbose 5" Protokoll anhaengen.
Und vorher sicherstellen, dass "attr MQTT2_ebusd autocreate 0" gesetzt ist.

FunkOdyssey


list MQTT2_ebusd


Internals:
   CID        ebusd_3.2_1
   DEF        ebusd_3.2_1
   DEVICETOPIC MQTT2_ebusd
   FUUID      5c42dca8-f33f-47ae-00fa-e252c1c430735a84
   IODev      mqtt2Server
   LASTInputDev mqtt2Server
   MSGCNT     6246
   NAME       MQTT2_ebusd
   NR         636
   STATE      Normal
   TYPE       MQTT2_DEVICE
   mqtt2Server_MSGCNT 6246
   mqtt2Server_TIME 2019-02-05 14:29:01
   OLDREADINGS:
   READINGS:
     2019-02-05 14:18:31   Ablufttemperatur 18.3
     2019-02-05 14:16:06   Aussenlufttemperatur 5.0
     2019-01-27 11:01:16   BeleuchtungDisplay 10;0;100;5;10
     2019-02-05 00:07:09   BetriebsstundenTotal 30030;32768;32767;1;0
     2019-01-29 20:30:04   BypassHysterese 2.0;0.0;5.0;0.5;2.0
     2019-01-29 20:29:54   BypassTemperatur 21.0;15.0;35.0;0.5;22.0
     2019-01-29 20:30:14   Bypassbetrieb   auto;0;2;1;0
     2019-01-29 20:27:54   Bypassstrom     0
     2019-01-29 20:32:49   Contact1Position 0
     2019-01-29 20:32:59   Contact2Position 0
     2019-01-29 20:30:39   DruckungleichgewichtZulaessig zulaessig;0;1;1;1
     2019-01-27 11:01:11   EWTStatus       1
     2019-01-29 20:32:04   Errors          3;0;0;0;0;0;0;0;0;0;0
     2019-01-29 20:30:49   FestesDruckungleichgewicht 0;-100;100;1;0
     2019-01-29 20:28:04   FilterStatus    Clean
     2019-01-27 15:05:32   FrostStatus     No Frost
     2019-02-05 14:29:01   IstwertAbluftdruck 60.3
     2019-02-05 14:29:01   IstwertZuluftdruck 59.2
     2019-01-29 20:26:14   LeistungNachheizregister 0
     2019-01-27 10:58:46   LeistungVorheizregister 0
     2019-01-29 20:27:19   LuefterStatus   Const. Flow
     2019-01-27 14:03:46   LuftmengeFilterSchwellwert 432
     2019-02-04 22:15:59   LuftmengeMitFilter 24
     2019-01-29 20:29:09   LuftmengeStufe0 50;0;50;50;50
     2019-01-29 20:29:19   LuftmengeStufe1 100;50;400;5;100
     2019-01-27 14:04:41   LuftmengeStufe2 200;50;400;5;200
     2019-01-29 20:29:44   LuftmengeStufe3 300;50;400;5;300
     2019-02-05 09:04:40   LuftmengeTotal  5672000;32768;32767;1;0
     2019-01-29 20:33:24   OptionTemperature 0
     2019-01-29 20:32:39   PerilexPosition 1
     2019-02-05 13:47:06   PosStufenschalter 1
     2019-01-29 20:31:09   RHSensorEmpfindlichkeit -1;-1;-1;-1;-1
     2019-01-29 20:30:59   RHSensorVorhanden -;-;-;-;-
     2019-01-29 20:31:44   SoftwareVersion S1.04.02 0001
     2019-02-05 13:57:41   SollAbluftmenge 200
     2019-02-05 13:57:36   SollZuluftmenge 200
     2019-01-27 10:58:07   StatusBypass    Closed
     2019-01-29 20:26:04   StatusNachheizregister Disabled
     2019-02-05 14:09:32   StatusVorheizregister Disabled
     2019-02-04 16:09:48   TageMitFilter   8
     2019-02-05 14:24:12   TatsaechlicheAbluftmenge 200
     2019-02-05 14:28:56   TatsaechlicheDrehzahlAbluft 2220
     2019-02-05 14:29:01   TatsaechlicheDrehzahlZuluft 2955
     2019-02-05 14:29:01   TatsaechlicheZuluftmenge 201
     2019-02-05 13:55:26   Ventilatorbetrieb Normal
     2019-01-29 20:31:34   VorheizRegister_inst -
     2019-01-27 11:01:16   WertDIPSchalter 29
     2019-01-27 14:05:36   ZentralheizungWRG aus;0;1;1;0
     2019-01-29 20:32:29   eBusSynchFehler 0
     2019-01-29 20:26:09   error           E000
     2019-01-29 20:35:34   id              ENCON;  ;-;-
     2019-02-04 10:15:11   running         true
     2018-10-11 16:12:15   scan.7c         ENCON;  ;-;-
     2019-02-04 10:15:10   signal          true
     2018-09-21 16:50:02   state           LuftmengeStufe3
     2019-01-29 20:26:49   updatecheck     revision v3.3-4-g212b22d available
     2019-02-05 14:05:47   uptime          582074
     2019-02-04 10:15:11   version         ebusd 3.3.v3.3
Attributes:
   IODev      mqtt2Server
   autocreate 0
   event-on-change-reading .*
   getList    Ventilatorbetrieb Ventilatorbetrieb ebusd/kwl/Ventilatorbetrieb/get
LuftmengeStufe0 LuftmengeStufe0 ebusd/kwl/LuftmengeStufe0/get
LuftmengeStufe1 LuftmengeStufe1 ebusd/kwl/LuftmengeStufe1/get
LuftmengeStufe2 LuftmengeStufe2 ebusd/kwl/LuftmengeStufe2/get
LuftmengeStufe3 LuftmengeStufe3 ebusd/kwl/LuftmengeStufe3/get
BypassTemperatur BypassTemperatur ebusd/kwl/BypassTemperatur/get
BypassHysterese BypassHysterese ebusd/kwl/BypassHysterese/get
Bypassbetrieb Bypassbetrieb ebusd/kwl/Bypassbetrieb/get
VorheizRegister_an VorheizRegister_an ebusd/kwl/VorheizRegister_an/get
DruckungleichgewichtZulaessig DruckungleichgewichtZulaessig ebusd/kwl/DruckungleichgewichtZulaessig/get
FestesDruckungleichgewicht FestesDruckungleichgewicht ebusd/kwl/FestesDruckungleichgewicht/get
   group      MQTT
   readingList ebusd/global/running:.* running
ebusd/global/updatecheck:.* updatecheck
ebusd/global/version:.* version
ebusd/global/signal:.* signal
ebusd/kwl/Ventilatorbetrieb:.* Ventilatorbetrieb
ebusd/kwl/TatsaechlicheDrehzahlAbluft:.* TatsaechlicheDrehzahlAbluft
ebusd/kwl/IstwertAbluftdruck:.* IstwertAbluftdruck
ebusd/kwl/FrostStatus:.* FrostStatus
ebusd/kwl/LeistungVorheizregister:.* LeistungVorheizregister
ebusd/kwl/TatsaechlicheDrehzahlZuluft:.* TatsaechlicheDrehzahlZuluft
ebusd/kwl/StatusBypass:.* StatusBypass
ebusd/kwl/Aussenlufttemperatur:.* Aussenlufttemperatur
ebusd/kwl/PosStufenschalter:.* PosStufenschalter
ebusd/broadcast/error:.* error
ebusd/kwl/eBusSynchFehler:.* eBusSynchFehler
ebusd/kwl/IstwertZuluftdruck:.* IstwertZuluftdruck
ebusd/kwl/StatusVorheizregister:.* StatusVorheizregister
ebusd/kwl/FilterStatus:.* FilterStatus
ebusd/kwl/LuftmengeStufe1:.* LuftmengeStufe1
ebusd/broadcast/id:.* id
ebusd/scan.7c/:.* scan.7c
ebusd/kwl/TatsaechlicheAbluftmenge:.* TatsaechlicheAbluftmenge
ebusd/kwl/FestesDruckungleichgewicht:.* FestesDruckungleichgewicht
ebusd/kwl/LuftmengeStufe2:.* LuftmengeStufe2
ebusd/kwl/TageMitFilter:.* TageMitFilter
ebusd/kwl/Ablufttemperatur:.* Ablufttemperatur
ebusd/kwl/TatsaechlicheZuluftmenge:.* TatsaechlicheZuluftmenge
ebusd/kwl/LuftmengeStufe3:.* LuftmengeStufe3
ebusd/kwl/BypassTemperatur:.* BypassTemperatur
ebusd/kwl/ZentralheizungWRG:.* ZentralheizungWRG
ebusd/kwl/Bypassbetrieb:.* Bypassbetrieb
ebusd/kwl/BetriebsstundenTotal:.* BetriebsstundenTotal
ebusd/kwl/DruckungleichgewichtZulaessig:.* DruckungleichgewichtZulaessig
ebusd/kwl/LuftmengeFilterSchwellwert:.* LuftmengeFilterSchwellwert
ebusd/kwl/BeleuchtungDisplay:.* BeleuchtungDisplay
ebusd/kwl/LuftmengeMitFilter:.* LuftmengeMitFilter
ebusd/kwl/LuftmengeTotal:.* LuftmengeTotal
ebusd/kwl/VorheizRegister_inst:.* VorheizRegister_inst
ebusd/kwl/SoftwareVersion:.* SoftwareVersion
ebusd/kwl/LuftmengeStufe0:.* LuftmengeStufe0
ebusd/kwl/BypassHysterese:.* BypassHysterese
ebusd/kwl/SollZuluftmenge:.* SollZuluftmenge
ebusd/kwl/SollAbluftmenge:.* SollAbluftmenge
ebusd/kwl/LuefterStatus:.* LuefterStatus
ebusd/kwl/Bypassstrom:.* Bypassstrom
ebusd/kwl/RHSensorVorhanden:.* RHSensorVorhanden
ebusd/kwl/RHSensorEmpfindlichkeit:.* RHSensorEmpfindlichkeit
ebusd/kwl/StatusNachheizregister:.* StatusNachheizregister
ebusd/kwl/LeistungNachheizregister:.* LeistungNachheizregister
ebusd/kwl/Errors:.* Errors
ebusd/kwl/WertDIPSchalter:.* WertDIPSchalter
ebusd/kwl/PerilexPosition:.* PerilexPosition
ebusd/kwl/Contact1Position:.* Contact1Position
ebusd/kwl/Contact2Position:.* Contact2Position
ebusd/kwl/EWTStatus:.* EWTStatus
ebusd/kwl/OptionTemperature:.* OptionTemperature
   setList    Ventilatorbetrieb ebusd/kwl/Ventilatorbetrieb/set
LuftmengeStufe0 ebusd/kwl/LuftmengeStufe0/set
LuftmengeStufe1 ebusd/kwl/LuftmengeStufe1/set
LuftmengeStufe2 ebusd/kwl/LuftmengeStufe2/set
LuftmengeStufe3 ebusd/kwl/LuftmengeStufe3/set
BypassTemperatur ebusd/kwl/BypassTemperatur/set
BypassHysterese ebusd/kwl/BypassHysterese/set
Bypassbetrieb ebusd/kwl/Bypassbetrieb/set
VorheizRegister_an ebusd/kwl/VorheizRegister_an/set
DruckungleichgewichtZulaessig ebusd/kwl/DruckungleichgewichtZulaessig/set
FestesDruckungleichgewicht ebusd/kwl/FestesDruckungleichgewicht/set

   stateFormat Ventilatorbetrieb
   verbose    5


list mqtt2Server

Internals:
   CONNECTS   5
   DEF        1883 global
   FD         196
   FUUID      5c42dca8-f33f-47ae-2088-d7ffce4c6a0a6300
   NAME       mqtt2Server
   NR         635
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   READINGS:
     2019-02-04 10:15:11   RETAIN          {"ebusd/global/running":"true","ebusd/global/updatecheck":"revision v3.3-4-g212b22d available","ebusd/global/version":"ebusd 3.3.v3.3","ebusd/kwl/TatsaechlicheDrehzahlAbluft/get":""}
     2019-02-05 14:00:43   nrclients       1
     2019-02-04 10:14:56   state           Initialized
   clients:
     mqtt2Server_172.19.0.41_59760 1
   retain:
     ebusd/global/running:
       ts         1549271711.50414
       val        true
     ebusd/global/updatecheck:
       ts         1549271696.93532
       val        revision v3.3-4-g212b22d available
     ebusd/global/version:
       ts         1549271711.50348
       val        ebusd 3.3.v3.3
     ebusd/kwl/TatsaechlicheDrehzahlAbluft/get:
       ts         1549271696.93532
       val       
Attributes:
   autocreate 1
   verbose    5



Log

2019.02.05 14:28:01.460 5: PUBLISH: 0+(0)%ebusd/kwl/TatsaechlicheDrehzahlAbluft22
2019.02.05 14:28:01.460 4: mqtt2Server_192.168.0.41_59760 ebusd_3.3_1 PUBLISH ebusd/kwl/TatsaechlicheDrehzahlAbluft:2211
2019.02.05 14:28:01.461 5: mqtt2Server: dispatch autocreate\000ebusd_3.3_1\000ebusd/kwl/TatsaechlicheDrehzahlAbluft\0002211
2019.02.05 14:28:01.462 4: MQTT2_DEVICE_Parse: MQTT2_ebusd ebusd/kwl/TatsaechlicheDrehzahlAbluft => TatsaechlicheDrehzahlAbluft
2019.02.05 14:28:11.470 5: PUBLISH: 0(27)(0)(19)ebusd/global/uptime5834
2019.02.05 14:28:11.470 4: mqtt2Server_192.168.0.41_59760 ebusd_3.3_1 PUBLISH ebusd/global/uptime:583418
2019.02.05 14:28:11.471 5: mqtt2Server: dispatch autocreate\000ebusd_3.3_1\000ebusd/global/uptime\000583418
2019.02.05 14:28:17.476 5: PINGREQ:
2019.02.05 14:28:17.476 4: mqtt2Server_192.168.0.41_59760 ebusd_3.3_1 PINGREQ
2019.02.05 14:28:27.488 5: PUBLISH: 0(27)(0)(19)ebusd/global/uptime5834
2019.02.05 14:28:27.488 4: mqtt2Server_192.168.0.41_59760 ebusd_3.3_1 PUBLISH ebusd/global/uptime:583434
2019.02.05 14:28:27.488 5: mqtt2Server: dispatch autocreate\000ebusd_3.3_1\000ebusd/global/uptime\000583434
2019.02.05 14:28:43.504 5: PUBLISH: 0(27)(0)(19)ebusd/global/uptime5834
2019.02.05 14:28:43.504 4: mqtt2Server_192.168.0.41_59760 ebusd_3.3_1 PUBLISH ebusd/global/uptime:583450
2019.02.05 14:28:43.505 5: mqtt2Server: dispatch autocreate\000ebusd_3.3_1\000ebusd/global/uptime\000583450
2019.02.05 14:28:43.524 2: autocreate: define MQTT2_ebusd_3.3_1 MQTT2_DEVICE ebusd_3.3_1
2019.02.05 14:28:43.530 2: autocreate: define FileLog_MQTT2_ebusd_3.3_1 FileLog ./log/MQTT2_ebusd_3.3_1-%Y-%m.log MQTT2_ebusd_3.3_1
2019.02.05 14:28:56.518 5: PUBLISH: 0+(0)%ebusd/kwl/TatsaechlicheDrehzahlAbluft22
2019.02.05 14:28:56.519 4: mqtt2Server_192.168.0.41_59760 ebusd_3.3_1 PUBLISH ebusd/kwl/TatsaechlicheDrehzahlAbluft:2220
2019.02.05 14:28:56.519 5: mqtt2Server: dispatch autocreate\000ebusd_3.3_1\000ebusd/kwl/TatsaechlicheDrehzahlAbluft\0002220
2019.02.05 14:28:56.539 4: MQTT2_DEVICE_Parse: MQTT2_ebusd ebusd/kwl/TatsaechlicheDrehzahlAbluft => TatsaechlicheDrehzahlAbluft
2019.02.05 14:28:59.522 5: PUBLISH: 0(27)(0)(19)ebusd/global/uptime5834
2019.02.05 14:28:59.522 4: mqtt2Server_192.168.0.41_59760 ebusd_3.3_1 PUBLISH ebusd/global/uptime:583466
2019.02.05 14:28:59.522 5: mqtt2Server: dispatch autocreate\000ebusd_3.3_1\000ebusd/global/uptime\000583466

rudolfkoenig

Falls ich dein Beispiel nachstelle, dann wird ein MQTT2_ebusd_3.3_1 angelegt (wie bei Dir), was ok ist, weil CID vom MQTT2_ebusd in deinem Beispiel ebusd_3.2_1 ist, als ungleich.
Falls ich dein Beispiel mit ebusd_3.2_1 wiederhole, dann bekomme weder ein Neues Geraet angelegt, noch neue Readings, und readingsList wird nicht angefasst.
Mit autocreate 1 wird readingsList erweitert.
=> Alles so, wie es sein soll.

Hast du noch andere Geraete mit CID ebusd_3.3_1?

FunkOdyssey

Oh man, ebusd nutzt ja u.a. die Versionsnummer in der ClientID.
[ebusd_<version>_<pid>]

Und es tut mir wirklich leid. Ich habe den Unterschied in den beiden CIds nicht gesehen. 3.2/3.3

Man kann das mittlerweile parametieren und das habe ich jetzt auch gemacht.

Und es stimmt: Bei gleicher CID und autocreate=0 wird das Reading nicht wieder angelegt.

Danke und sorry.