Browse Source

add filter truncating dyness battery serial numbers & chain it into home assistant filters

The last 7 digits are truncated, which hides about as many values as truncating MAC addresses to 24 bits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fabian Peter Hammerle 1 week ago
parent
commit
346619f1d5
1 changed files with 7 additions and 2 deletions
  1. 7 2
      gitconfig

+ 7 - 2
gitconfig

@@ -48,15 +48,20 @@
 	required = true
 
 [filter "home-assistant-config-entries"]
-	clean = jq '.data.entries[].data |= with_entries(if (.key | IN(\"password\", \"access_token\", \"noise_psk\")) and .value != null then .value = \"…\" else . end)' | eval \"$(git config --get filter.truncate-mac-address-to-24-bits.clean)\"
+	clean = jq '.data.entries[].data |= with_entries(if (.key | IN(\"password\", \"access_token\", \"noise_psk\")) and .value != null then .value = \"…\" else . end)' | eval \"$(git config --get filter.truncate-mac-address-to-24-bits.clean)\" | eval \"$(git config --get filter.truncate-dyness-battery-serial-numbers.clean)\"
 	smudge = cat
 	required = true
 
 [filter "home-assistant-device-registry"]
 	required = true
-	clean = "jq '.data.devices[] |= if .manufacturer == \"Victron Energy BV\" then (.name, .serial_number) |= if . != null then sub(\"(?<p>HQ[0-9]{4}[[:alnum:]])[[:alnum:]]{4}(?=[^[:alnum:]]|$)\"; \"\\(.p)…\") else . end else . end' | eval \"$(git config --get filter.truncate-mac-address-to-24-bits.clean)\""
+	clean = "jq '.data.devices[] |= if .manufacturer == \"Victron Energy BV\" then (.name, .serial_number) |= if . != null then sub(\"(?<p>HQ[0-9]{4}[[:alnum:]])[[:alnum:]]{4}(?=[^[:alnum:]]|$)\"; \"\\(.p)…\") else . end else . end' | eval \"$(git config --get filter.truncate-mac-address-to-24-bits.clean)\" | eval \"$(git config --get filter.truncate-dyness-battery-serial-numbers.clean)\""
 	smudge = cat
 
+[filter "truncate-dyness-battery-serial-numbers"]
+	clean = sed -E -e 's/(^|[^[:alnum:]])([Bb][0-9]{6})[0-9]{7}([^[:alnum:]]|$)/\\1\\2…\\3/g'
+	smudge = cat
+	required = true
+
 [filter "truncate-mac-address-to-24-bits"]
 	clean = sed -E     -e 's/(^|[^[:xdigit:]:])([[:xdigit:]]{2}(:[[:xdigit:]]{2}){2})(:[[:xdigit:]]{2}){3}([^[:xdigit:]:]|$)/\\1\\2:…\\5/g'     -e 's/(-[[:xdigit:]]{4}-40e7-(8e6c|9f6c)-[[:xdigit:]]{6})[[:xdigit:]]{6}([^[:xdigit:]]|$)/\\1…\\3/gI'     -e 's/(:[[:xdigit:]]{0,4}:[[:xdigit:]]{0,2}ff:fe)[[:xdigit:]]{2}:[[:xdigit:]]{1,4}([^[:xdigit:]:]|$)/\\1…\\2/gI'     -e 's/(^|[^[:xdigit:]-])([[:xdigit:]]{6})[[:xdigit:]]{6}([^[:xdigit:]]|$)/\\1\\2…\\3/g'
 	smudge = cat