util: look up the integer range by string key, not the range builtin (#5384)
representation() called dp._config.get(range) when building a sample
DPS value for an integer datapoint. The dict comes from YAML, so all
keys are strings; passing the built-in range() function as a key meant
the lookup always returned None and the configured min was ignored,
falling back to 0 for every int DP. Read the 'range' string key instead,
and guard against a non-dict or missing 'min' before subscripting.
This matters for the CLI utilities (duplicates, match_against) that
consume make_sample_dps: a device with range.min: 40 was producing a
sample of 0, which can fail _typematch against configs that require
values in [40, 70] and turn a real-match case into a false negative.
Co-authored-by: Zo Bot <github-automation@zo.computer>