Anpassungen an der paramod.yaml

This commit is contained in:
Eric Neuber 2026-03-11 17:59:05 +01:00
parent 923a35cad1
commit 825547889c

View File

@ -10,126 +10,771 @@ mqtt:
button_circulation: zigbee2mqtt/WirelessButton button_circulation: zigbee2mqtt/WirelessButton
influxdb: influxdb:
bucket: Paradigma bucket: Paradigma
location: Radebeul
measurement: ParadigmaModbus
org: skaville org: skaville
token: i-sXFQbEkSC1XVzqFEaFwXwzasbsEIciVlK4SaAUOEvk0VjQPkD3fr8d7_3SPeyseTZkqj7ZMZU78b3n2F6_SQ== token: i-sXFQbEkSC1XVzqFEaFwXwzasbsEIciVlK4SaAUOEvk0VjQPkD3fr8d7_3SPeyseTZkqj7ZMZU78b3n2F6_SQ==
url: http://192.168.178.2:8086 url: http://192.168.178.2:8086
location: Radebeul
measurement: ParadigmaModbus
modbus: modbus:
host: 192.168.178.10 host: 192.168.178.10
port: 502 port: 502
max_coils_addr: 8 max_coils_addr: 8
max_holding_addr: 61
max_input_addr: 45 max_input_addr: 45
max_holding_addr: 61
modbus_coils: modbus_coils:
- MgtSystem: {addr: 0, write: false, mqtt: false, influxdb: false, comment: Leitsystem aktiv} - MgtSystem:
- HK1pres: {addr: 1, write: false, mqtt: false, influxdb: false, comment: HK1 vorhanden} addr: 0
- HK2pres: {addr: 2, write: false, mqtt: false, influxdb: false, comment: HK2 vorhanden} write: false
- HK3pres: {addr: 3, write: false, mqtt: false, influxdb: false, comment: HK3 vorhanden} mqtt: false
- TWrelease: {addr: 4, write: true, mqtt: false, influxdb: false, comment: Trinkwassererwärmung freigegeben} influxdb: false
- TWlock: {addr: 5, write: true, mqtt: false, influxdb: false, comment: Trinkwassererwärmung gesperrt} comment: Leitsystem aktiv
- Zrelease: {addr: 6, write: true, mqtt: false, influxdb: false, comment: Zirkulation freigegeben} - HK1pres:
- Zlock: {addr: 7, write: true, mqtt: false, influxdb: false, comment: Zirkulation gesperrt} addr: 1
- SHKpres: {addr: 8, write: false, mqtt: false, influxdb: false, comment: Schwimmbadheizkrei vorhanden} write: false
mqtt: false
influxdb: false
comment: HK1 vorhanden
- HK2pres:
addr: 2
write: false
mqtt: false
influxdb: false
comment: HK2 vorhanden
- HK3pres:
addr: 3
write: false
mqtt: false
influxdb: false
comment: HK3 vorhanden
- TWrelease:
addr: 4
write: true
mqtt: false
influxdb: false
comment: Trinkwassererwärmung freigegeben
- TWlock:
addr: 5
write: true
mqtt: false
influxdb: false
comment: Trinkwassererwärmung gesperrt
- Zrelease:
addr: 6
write: true
mqtt: false
influxdb: false
comment: Zirkulation freigegeben
- Zlock:
addr: 7
write: true
mqtt: false
influxdb: false
comment: Zirkulation gesperrt
- SHKpres:
addr: 8
write: false
mqtt: false
influxdb: false
comment: Schwimmbadheizkrei vorhanden
modbus_input_register: modbus_input_register:
- TA: {addr: 0, type: INT16, factor: 0.1, mqtt: true, influxdb: true} - TA:
- TV: {addr: 1, type: INT16, factor: 0.1, mqtt: true, influxdb: true} addr: 0
- TR: {addr: 2, type: INT16, factor: 0.1, mqtt: true, influxdb: true} type: INT16
- TWO: {addr: 3, type: INT16, factor: 0.1, mqtt: false, influxdb: true} factor: 0.1
- TPO: {addr: 4, type: INT16, factor: 0.1, mqtt: false, influxdb: true} mqtt: true
- TPU: {addr: 5, type: INT16, factor: 0.1, mqtt: false, influxdb: true} influxdb: true
- TZR: {addr: 6, type: INT16, factor: 0.1, mqtt: false, influxdb: false} comment: null
- TV2: {addr: 7, type: INT16, factor: 0.1, mqtt: false, influxdb: false} - TV:
- TR2: {addr: 8, type: INT16, factor: 0.1, mqtt: false, influxdb: false} addr: 1
- RI1: {addr: 9, type: INT16, factor: 0.1, mqtt: false, influxdb: true} type: INT16
- RI2: {addr: 10, type: INT16, factor: 0.1, mqtt: false, influxdb: false} factor: 0.1
- TSA: {addr: 11, type: INT16, factor: 0.1, mqtt: false, influxdb: true} mqtt: true
- FATV: {addr: 12, type: INT16, factor: 0.1, mqtt: false, influxdb: true} influxdb: true
- FATR: {addr: 13, type: INT16, factor: 0.1, mqtt: false, influxdb: true} comment: null
- TVKH: {addr: 14, type: INT16, factor: 0.1, mqtt: false, influxdb: false} - TR:
- TRKH: {addr: 15, type: INT16, factor: 0.1, mqtt: false, influxdb: false} addr: 2
- TPOKH: {addr: 16, type: INT16, factor: 0.1, mqtt: false, influxdb: false} type: INT16
- TV3: {addr: 17, type: INT16, factor: 0.1, mqtt: false, influxdb: false} factor: 0.1
- TR3: {addr: 18, type: INT16, factor: 0.1, mqtt: false, influxdb: false} mqtt: true
- TSB: {addr: 19, type: INT16, factor: 0.1, mqtt: false, influxdb: false} influxdb: true
- TVSB: {addr: 20, type: INT16, factor: 0.1, mqtt: false, influxdb: false} comment: null
- TRSB: {addr: 21, type: INT16, factor: 0.1, mqtt: false, influxdb: false} - TWO:
- TWE: {addr: 22, type: INT16, factor: 0.1, mqtt: false, influxdb: false} addr: 3
- TWA: {addr: 23, type: INT16, factor: 0.1, mqtt: false, influxdb: false} type: INT16
- TWS: {addr: 24, type: INT16, factor: 0.1, mqtt: false, influxdb: false} factor: 0.1
- TVSI: {addr: 25, type: INT16, factor: 0.1, mqtt: false, influxdb: false} mqtt: false
- TK: {addr: 26, type: INT16, factor: 0.1, mqtt: false, influxdb: false} influxdb: true
- FATV1: {addr: 27, type: INT16, factor: 0.1, mqtt: false, influxdb: false} comment: null
- FATV2: {addr: 28, type: INT16, factor: 0.1, mqtt: false, influxdb: false} - TPO:
- FATV3: {addr: 29, type: INT16, factor: 0.1, mqtt: false, influxdb: false} addr: 4
- FATV4: {addr: 30, type: INT16, factor: 0.1, mqtt: false, influxdb: false} type: INT16
- TSE: {addr: 31, type: INT16, factor: 0.1, mqtt: false, influxdb: true} factor: 0.1
- TW: {addr: 32, type: INT16, factor: 0.1, mqtt: false, influxdb: false} mqtt: false
- TSV: {addr: 33, type: INT16, factor: 0.1, mqtt: false, influxdb: true} influxdb: true
- TW2: {addr: 34, type: INT16, factor: 0.1, mqtt: false, influxdb: false} comment: null
- S: {addr: 35, type: INT16, factor: 0.1, mqtt: false, influxdb: true} - TPU:
- TAM: {addr: 36, type: INT16, factor: 0.1, mqtt: false, influxdb: true} addr: 5
- TAM2: {addr: 37, type: INT16, factor: 0.1, mqtt: false, influxdb: false} type: INT16
- TSA1: {addr: 38, type: INT16, factor: 0.1, mqtt: false, influxdb: true} factor: 0.1
- TSA2: {addr: 39, type: INT16, factor: 0.1, mqtt: false, influxdb: false} mqtt: false
- TSP: {addr: 40, type: INT16, factor: 0.1, mqtt: false, influxdb: true} influxdb: true
- TWW: {addr: 41, type: INT16, factor: 0.1, mqtt: false, influxdb: true} comment: null
- TKW: {addr: 42, type: INT16, factor: 0.1, mqtt: false, influxdb: true} - TZR:
- VKW: {addr: 43, type: INT16, factor: 0.1, mqtt: false, influxdb: true} addr: 6
- VSPm: {addr: 44, type: INT16, factor: 0.1, mqtt: false, influxdb: true} type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TV2:
addr: 7
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TR2:
addr: 8
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- RI1:
addr: 9
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- RI2:
addr: 10
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TSA:
addr: 11
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- FATV:
addr: 12
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- FATR:
addr: 13
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TVKH:
addr: 14
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TRKH:
addr: 15
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TPOKH:
addr: 16
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TV3:
addr: 17
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TR3:
addr: 18
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TSB:
addr: 19
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TVSB:
addr: 20
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TRSB:
addr: 21
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TWE:
addr: 22
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TWA:
addr: 23
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TWS:
addr: 24
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TVSI:
addr: 25
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TK:
addr: 26
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- FATV1:
addr: 27
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- FATV2:
addr: 28
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- FATV3:
addr: 29
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- FATV4:
addr: 30
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TSE:
addr: 31
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TW:
addr: 32
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TSV:
addr: 33
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TW2:
addr: 34
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- S:
addr: 35
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TAM:
addr: 36
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TAM2:
addr: 37
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TSA1:
addr: 38
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TSA2:
addr: 39
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TSP:
addr: 40
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TWW:
addr: 41
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TKW:
addr: 42
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- VKW:
addr: 43
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- VSPm:
addr: 44
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
modbus_holding_register: modbus_holding_register:
- nothing: {addr: 0, type: UINT16, factor: 1, mqtt: false, influxdb: false} - nothing:
- ErrLS: {addr: 1, type: UINT16, factor: 1, mqtt: false, influxdb: true} addr: 0
- TVsoll: {addr: 2, type: INT16, factor: 0.1, mqtt: false, influxdb: true} type: UINT16
- TV2soll: {addr: 3, type: INT16, factor: 0.1, mqtt: false, influxdb: false} factor: 1.0
- TV3soll: {addr: 4, type: INT16, factor: 0.1, mqtt: false, influxdb: false} mqtt: false
- HK1soll: {addr: 5, type: UINT16, factor: 1, mqtt: false, influxdb: true} influxdb: false
- HK2soll: {addr: 6, type: UINT16, factor: 1, mqtt: false, influxdb: false} comment: null
- HK3soll: {addr: 7, type: UINT16, factor: 1, mqtt: false, influxdb: false} - ErrLS:
- TWWsoll: {addr: 8, type: INT16, factor: 0.1, mqtt: false, influxdb: true} addr: 1
- TV1max: {addr: 9, type: INT16, factor: 0.1, mqtt: false, influxdb: true} type: UINT16
- TV2max: {addr: 10, type: INT16, factor: 0.1, mqtt: false, influxdb: false} factor: 1.0
- TV3max: {addr: 11, type: INT16, factor: 0.1, mqtt: false, influxdb: false} mqtt: false
- ErrHR: {addr: 12, type: UINT16, factor: 1, mqtt: false, influxdb: true} influxdb: true
- ErrSR: {addr: 13, type: UINT16, factor: 1, mqtt: false, influxdb: true} comment: null
- ErrWE1_1: {addr: 14, type: UINT16, factor: 1, mqtt: false, influxdb: true} - TVsoll:
- ErrWE1_2: {addr: 15, type: UINT16, factor: 1, mqtt: false, influxdb: false} addr: 2
- ErrWE1_3: {addr: 16, type: UINT16, factor: 1, mqtt: false, influxdb: false} type: INT16
- ErrWE1_4: {addr: 17, type: UINT16, factor: 1, mqtt: false, influxdb: false} factor: 0.1
- ErrWE1_5: {addr: 18, type: UINT16, factor: 1, mqtt: false, influxdb: false} mqtt: false
- KollLei: {addr: 19, type: UINT16, factor: 0.1, mqtt: false, influxdb: true} influxdb: true
- TagesS: {addr: 20, type: UINT16, factor: 0.1, mqtt: true, influxdb: true} comment: null
- GesS: {addr: 21, type: UINT32, factor: 0.1, mqtt: false, influxdb: true} - TV2soll:
- GesWW: {addr: 23, type: UINT32, factor: 0.1, mqtt: false, influxdb: true} addr: 3
- GesZ: {addr: 25, type: UINT32, factor: 0.1, mqtt: false, influxdb: true} type: INT16
- HGesK1: {addr: 27, type: UINT32, factor: 1, mqtt: false, influxdb: true} factor: 0.1
- StartK1: {addr: 29, type: UINT32, factor: 1, mqtt: false, influxdb: true} mqtt: false
- HGesPel: {addr: 31, type: UINT32, factor: 1, mqtt: false, influxdb: true} influxdb: false
- VGesPel: {addr: 33, type: UINT16, factor: 0.1, mqtt: false, influxdb: true} comment: null
- StatWW: {addr: 34, type: UINT16, factor: 1, mqtt: false, influxdb: true} - TV3soll:
- StatZ: {addr: 35, type: UINT16, factor: 1, mqtt: false, influxdb: true} addr: 4
- StatHK1: {addr: 36, type: UINT16, factor: 1, mqtt: false, influxdb: true} type: INT16
- StatHK2: {addr: 37, type: UINT16, factor: 1, mqtt: false, influxdb: false} factor: 0.1
- StatHK3: {addr: 38, type: UINT16, factor: 1, mqtt: false, influxdb: false} mqtt: false
- StatS: {addr: 39, type: UINT16, factor: 1, mqtt: false, influxdb: true} influxdb: false
- StatSB: {addr: 40, type: UINT16, factor: 1, mqtt: false, influxdb: false} comment: null
- StatK1: {addr: 41, type: UINT16, factor: 1, mqtt: false, influxdb: true} - HK1soll:
- StatPel: {addr: 42, type: UINT16, factor: 1, mqtt: false, influxdb: true} addr: 5
- StatKH: {addr: 43, type: UINT16, factor: 1, mqtt: false, influxdb: false} type: UINT16
- TPOsoll: {addr: 44, type: UINT16, factor: 0.1, mqtt: false, influxdb: true} factor: 1.0
- FATVsoll: {addr: 45, type: UINT16, factor: 0.1, mqtt: false, influxdb: true} mqtt: false
- TSBsollHK: {addr: 46, type: INT16, factor: 0.1, mqtt: false, influxdb: false} influxdb: true
- TSBsollS: {addr: 47, type: INT16, factor: 0.1, mqtt: false, influxdb: false} comment: null
- BetrHK1: {addr: 48, type: UINT16, factor: 1, mqtt: false, influxdb: true} - HK2soll:
- BetrHK2: {addr: 49, type: UINT16, factor: 1, mqtt: false, influxdb: false} addr: 6
- BetrHK3: {addr: 50, type: UINT16, factor: 1, mqtt: false, influxdb: false} type: UINT16
- BetrSB: {addr: 51, type: UINT16, factor: 1, mqtt: false, influxdb: false} factor: 1.0
- GesKKsoll: {addr: 52, type: INT16, factor: 0.1, mqtt: false, influxdb: false} mqtt: false
- KKsollWE1: {addr: 53, type: UINT16, factor: 0.1, mqtt: false, influxdb: false} influxdb: false
- KKsollWE2: {addr: 54, type: UINT16, factor: 0.1, mqtt: false, influxdb: false} comment: null
- KKsollWE3: {addr: 55, type: UINT16, factor: 0.1, mqtt: false, influxdb: false} - HK3soll:
- KKsollWE4: {addr: 56, type: UINT16, factor: 0.1, mqtt: false, influxdb: false} addr: 7
- ErrWE1: {addr: 57, type: UINT16, factor: 1, mqtt: false, influxdb: false} type: UINT16
- ErrWE2: {addr: 58, type: UINT16, factor: 1, mqtt: false, influxdb: false} factor: 1.0
- ErrWE3: {addr: 59, type: UINT16, factor: 1, mqtt: false, influxdb: false} mqtt: false
- ErrWE4: {addr: 60, type: UINT16, factor: 1, mqtt: false, influxdb: false} influxdb: false
comment: null
- TWWsoll:
addr: 8
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TV1max:
addr: 9
type: INT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TV2max:
addr: 10
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TV3max:
addr: 11
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- ErrHR:
addr: 12
type: UINT16
factor: 1.0
mqtt: false
influxdb: true
comment: null
- ErrSR:
addr: 13
type: UINT16
factor: 1.0
mqtt: false
influxdb: true
comment: null
- ErrWE1_1:
addr: 14
type: UINT16
factor: 1.0
mqtt: false
influxdb: true
comment: null
- ErrWE1_2:
addr: 15
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- ErrWE1_3:
addr: 16
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- ErrWE1_4:
addr: 17
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- ErrWE1_5:
addr: 18
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- KollLei:
addr: 19
type: UINT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TagesS:
addr: 20
type: UINT16
factor: 0.1
mqtt: true
influxdb: true
comment: null
- GesS:
addr: 21
type: UINT32
factor: 0.1
mqtt: false
influxdb: true
comment: null
- GesWW:
addr: 23
type: UINT32
factor: 0.1
mqtt: false
influxdb: true
comment: null
- GesZ:
addr: 25
type: UINT32
factor: 0.1
mqtt: false
influxdb: true
comment: null
- HGesK1:
addr: 27
type: UINT32
factor: 1.0
mqtt: false
influxdb: true
comment: null
- StartK1:
addr: 29
type: UINT32
factor: 1.0
mqtt: false
influxdb: true
comment: null
- HGesPel:
addr: 31
type: UINT32
factor: 1.0
mqtt: false
influxdb: true
comment: null
- VGesPel:
addr: 33
type: UINT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- StatWW:
addr: 34
type: UINT16
factor: 1.0
mqtt: false
influxdb: true
comment: null
- StatZ:
addr: 35
type: UINT16
factor: 1.0
mqtt: false
influxdb: true
comment: null
- StatHK1:
addr: 36
type: UINT16
factor: 1.0
mqtt: false
influxdb: true
comment: null
- StatHK2:
addr: 37
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- StatHK3:
addr: 38
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- StatS:
addr: 39
type: UINT16
factor: 1.0
mqtt: false
influxdb: true
comment: null
- StatSB:
addr: 40
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- StatK1:
addr: 41
type: UINT16
factor: 1.0
mqtt: false
influxdb: true
comment: null
- StatPel:
addr: 42
type: UINT16
factor: 1.0
mqtt: false
influxdb: true
comment: null
- StatKH:
addr: 43
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- TPOsoll:
addr: 44
type: UINT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- FATVsoll:
addr: 45
type: UINT16
factor: 0.1
mqtt: false
influxdb: true
comment: null
- TSBsollHK:
addr: 46
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- TSBsollS:
addr: 47
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- BetrHK1:
addr: 48
type: UINT16
factor: 1.0
mqtt: false
influxdb: true
comment: null
- BetrHK2:
addr: 49
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- BetrHK3:
addr: 50
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- BetrSB:
addr: 51
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- GesKKsoll:
addr: 52
type: INT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- KKsollWE1:
addr: 53
type: UINT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- KKsollWE2:
addr: 54
type: UINT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- KKsollWE3:
addr: 55
type: UINT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- KKsollWE4:
addr: 56
type: UINT16
factor: 0.1
mqtt: false
influxdb: false
comment: null
- ErrWE1:
addr: 57
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- ErrWE2:
addr: 58
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- ErrWE3:
addr: 59
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null
- ErrWE4:
addr: 60
type: UINT16
factor: 1.0
mqtt: false
influxdb: false
comment: null