Sunrise/Sunset Rule

It would advise to bind the channels to Things as you may use them in other rules as well:

   Switch		TagNacht				"Wenn Tag, dann An, Wenn Nacht, dann Aus"			<time>		(Home, gVar)
   Switch		Vormittag				"An zum Sonnenaufgang, Aus zum Mittag"				<time>		(Home, gVar)

   String		Tagesanfang				"Beginn der Dämmerung, Sonnenaufgang"				<time>		(Home, gVAR)
   String		Tagesende				"Sonnenuntergang, Ende der Dämmerung"				<time>		(Home, gVAR)
   String		ACT_AZ_SH				"Azimut / Sonnenwinkel [%s]"					<sun>		(Home, gVAR)

   DateTime		Sonnenaufgang_Anfang			"Sonnenaufgang Beginn [%1$tH:%1$tM]"				<sunrise>	(gAstro)	{channel="astro:sun:local:rise#start"}
   DateTime		Sonnenaufgang_Ende			"Sonnenaufgang Ende [%1$tH:%1$tM]"				<sunrise>	(gAstro)	{channel="astro:sun:local:rise#end"}
   Number:Time		Sonnenaufgang_Dauer			"Dauer des Sonnenaufgangs [%.0f Minuten]"			<sunrise>	(gAstro)	{channel="astro:sun:local:rise#duration"}

   DateTime		Sonnenuntergang_Anfang			"Sonnenuntergang Beginn [%1$tH:%1$tM]"				<sunset>	(gAstro)	{channel="astro:sun:local:set#start"}
   DateTime		Sonnenuntergang_Ende			"Sonnenuntergang Ende [%1$tH:%1$tM]"				<sunset>	(gAstro)	{channel="astro:sun:local:set#end"}
   Number:Time		Sonnenuntergang_Dauer			"Dauer des Sonnenuntergangs [%.0f Minuten]"			<sunset>	(gAstro)	{channel="astro:sun:local:set#duration"}

   DateTime     	Mittag_Zeit_Anfang			"Mittag Beginn [%1$tH:%1$tM]"  					<sun>		(gAstro)	{channel="astro:sun:local:noon#start"}
   DateTime     	Mittag_Zeit_Ende			"Mittag Ende [%1$tH:%1$tM]"					<sun>		(gAstro)	{channel="astro:sun:local:noon#end"}
   Number:Time		Mittag_Dauer				"Dauer des Mittags [%.0f Minuten]"				<sun>		(gAstro)	{channel="astro:sun:local:noon#duration"}

   DateTime		Nacht_Zeit_Anfang			"Nacht Beginn [%1$tH:%1$tM]"					<sun>		(gAstro)	{channel="astro:sun:local:night#start"}
   DateTime		Nacht_Zeit_Ende				"Nacht Ende [%1$tH:%1$tM]"					<sun>		(gAstro)	{channel="astro:sun:local:night#end"}
   Number:Time		Nacht_Dauer				"Dauer der Nacht [%.0f Minuten]"				<sun>		(gAstro)	{channel="astro:sun:local:night#duration"}

   DateTime		Morgenliche_Nacht_Anfang		"Morgenliche Nacht Beginn [%1$tH:%1$tM]"			<sun>		(gAstro)	{channel="astro:sun:local:morningNight#start"}
   DateTime		Morgenliche_Nacht_Ende			"Morgenliche Nacht Ende [%1$tH:%1$tM]"				<sun>		(gAstro)	{channel="astro:sun:local:morningNight#end"}
   Number:Time		Morgenliche_Nacht_Dauer			"Dauer der morgenlichen Nacht [%.0f Minuten]"			<sun>		(gAstro)	{channel="astro:sun:local:morningNight#duration"}

   DateTime		Astronomische_Morgendaemmerung_Anfang	"Astronomische Morgendämmerung Beginn [%1$tH:%1$tM]"		<sun>		(gAstro)	{channel="astro:sun:local:astroDawn#start"}
   DateTime		Astronomische_Morgendaemmerung_Ende	"Astronomische Morgendämmerung Ende [%1$tH:%1$tM]"		<sun>		(gAstro)	{channel="astro:sun:local:astroDawn#end"}
   Number:Time		Astronomische_Morgendaemmerung_Dauer	"Dauer der astronomischen Morgendämmerung [%.0f Minuten]"	<sun>		(gAstro)	{channel="astro:sun:local:astroDawn#duration"}

   DateTime		Nautische_Morgendaemmerung_Anfang	"Nautische Morgendämmerung Beginn [%1$tH:%1$tM]"		<sun>		(gAstro)	{channel="astro:sun:local:nauticDawn#start"}
   DateTime		Nautische_Morgendaemmerung_Ende		"Nautische Morgendämmerung Ende [%1$tH:%1$tM]"			<sun>		(gAstro)	{channel="astro:sun:local:nauticDawn#end"}
   Number:Time		Nautische_Morgendaemmerung_Dauer	"Dauer der nautischen Morgendämmerung [%.0f Minuten]"		<sun>		(gAstro)	{channel="astro:sun:local:nauticDawn#duration"}

   DateTime		Buergerliche_Morgendaemmerung_Anfang	"Bürgerliche Morgendämmerung Beginn [%1$tH:%1$tM]"		<sun>		(gAstro)	{channel="astro:sun:local:civilDawn#start"}
   DateTime		Buergerliche_Morgendaemmerung_Ende	"Bürgerliche Morgendämmerung Ende [%1$tH:%1$tM]"		<sun>		(gAstro)	{channel="astro:sun:local:civilDawn#end"}
   Number:Time		Buergerliche_Morgendaemmerung_Dauer	"Dauer der bürgerlichen Morgendämmerung [%.0f Minuten]"		<sun>		(gAstro)	{channel="astro:sun:local:civilDawn#duration"}

   DateTime		Astronomische_Abenddaemmerung_Anfang	"Astronomische Abenddämmerung Beginn [%1$tH:%1$tM]"		<sun>		(gAstro)	{channel="astro:sun:local:astroDusk#start"}
   DateTime		Astronomische_Abenddaemmerung_Ende	"Astronomische Abenddämmerung Ende [%1$tH:%1$tM]"		<sun>		(gAstro)	{channel="astro:sun:local:astroDusk#end"}
   Number:Time		Astronomische_Abenddaemmerung_Dauer	"Dauer der astronomischen Abenddämmerung [%.0f Minuten]"	<sun>		(gAstro)	{channel="astro:sun:local:astroDusk#duration"}

   DateTime		Nautische_Abenddaemmerung_Anfang	"Nautische Abenddämmerung Beginn [%1$tH:%1$tM]"			<sun>		(gAstro)	{channel="astro:sun:local:nauticDusk#start"}
   DateTime		Nautische_Abenddaemmerung_Ende		"Nautische Abenddämmerung Ende [%1$tH:%1$tM]"			<sun>		(gAstro)	{channel="astro:sun:local:nauticDusk#end"}
   Number:Time		Nautische_Abenddaemmerung_Dauer		"Dauer der nautischen Abenddämmerung [%.0f Minuten]"		<sun>		(gAstro)	{channel="astro:sun:local:nauticDusk#duration"}

   DateTime		Buergerliche_Abenddaemmerung_Anfang	"Bürgerliche Abenddämmerung Beginn [%1$tH:%1$tM]"		<sun>		(gAstro)	{channel="astro:sun:local:civilDusk#start"}
   DateTime		Buergerliche_Abenddaemmerung_Ende	"Bürgerliche Abenddämmerung Ende [%1$tH:%1$tM]"			<sun>		(gAstro)	{channel="astro:sun:local:civilDusk#end"}
   Number:Time		Buergerliche_Abenddaemmerung_Dauer	"Dauer der bürgerlichen Abenddämmerung [%.0f Minuten]"		<sun>		(gAstro)	{channel="astro:sun:local:civilDusk#duration"}

You may then use in rules like the ones you displayed, I am using similar ones to open/close my blinds using g channel triggers as you do. Here are more examples:

rule "Zusammenfassung Daemmerung - Sonnenaufgang"
when
  System started or
  Item Sonnenaufgang_Anfang changed or
  Item Buergerliche_Morgendaemmerung_Anfang changed
then
  val String SUNA = Sonnenaufgang_Anfang.state.format("%1$tH:%1$tM")
  val String BMDA = Buergerliche_Morgendaemmerung_Anfang.state.format("%1$tH:%1$tM")
  var String Ausgabe_D1 = String::format("%s / %s", BMDA, SUNA)
  Tagesanfang.postUpdate(Ausgabe_D1)
end

rule "Zusammenfassung Sonnenuntergang - Daemmerung"
when
  System started or
  Item Sonnenuntergang_Anfang changed or
  Item Nautische_Abenddaemmerung_Anfang changed
then
  val String SUNS = Sonnenuntergang_Anfang.state.format("%1$tH:%1$tM")
  val String BADE = Nautische_Abenddaemmerung_Anfang.state.format("%1$tH:%1$tM")
  var String Ausgabe_D2 = String::format("%s / %s", SUNS, BADE)
  Tagesende.postUpdate(Ausgabe_D2)
end

rule "Azimut und Sonnenhoehe"
when
  System started or
  Item Jahreszeit  changed or
  Item Azimut      changed or
  Item Sonnenhoehe changed
then
  var az	= ((Azimut.state as Number).floatValue)
  var sh	= ((Sonnenhoehe.state as Number).floatValue)
  var String ah	= String::format("%1$.1f° / %2$.1f°", az, sh)
  ACT_AZ_SH.postUpdate(ah)
end