So ähnlich mache ich das auch, allerdings ohne Variablen.
Ich habe unter anderem diese Funktionalität in eine Automation für CarPlay gepackt.
Hier dient CarPlay als Trigger, im Anschluß wird der Fensterstatus abgefragt.
If <Fenster> Contact Sensor State is <open>
Text
Fenster Wohnzimmer
End If
If <Tür> Contact Sensor State is <open>
Text
Terrassentür Wohnzimmer
End if
....
Dann wird der Text kombiniert:
Combine <Text> <Text> + with New Lines
....
Am Ende gesprochen:
If <Combined Text> has any value
Speak <Combined Text>
Otherwise
<Nothing>
....
Viele Grüße