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.
event-on-Change sollte das Reizwort sein
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.
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...)
Erst alles anlegen lassen, dann fuer MQTT2_DEVICE(!) autocreate 0 setzen, und dann ueberfluessige Readings loeschen.
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.
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.
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
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?
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.