It’s a classic Roman trap. You need to exclude the first level heading number from the numbering:
#outline()
#set heading(numbering: none)
// #show heading.where(level: 2): set heading(numbering: "1.1.")
#show heading.where(level: 2): set heading(
numbering: (..n) => numbering("I", n.pos().last()),
)
= Anhang
// #counter(heading).update(1)
== Temperaturdiagramme

