diff --git a/src/mediactl/system.py b/src/mediactl/system.py
index 0f7d76dd98176477591b37d0abfe1eeeb86aff70..611846db72660dfd05b26101845d734c9c441820 100644
--- a/src/mediactl/system.py
+++ b/src/mediactl/system.py
@@ -64,7 +64,7 @@ class System(mediactl.WithLogger):
         )
         self.screen = mediactl.AC123(gpio_numbers=[13, 6, 5], logger=logger)
         self.status = {
-            "system": {"power": PowerState.unknown, "health": SystemHealth.unknown},
+            "system": {"power": PowerState.off, "health": SystemHealth.unknown},
             "projector": self.projector.status,
             "ahm": self.ahm.status,
             "kramer": self.kramer.status,
@@ -187,6 +187,9 @@ class System(mediactl.WithLogger):
         # Screen needs to go up
         await self.screen.move_up()
 
+        # Reset kramer
+        self.kramer.reset()
+
         return {"result": "ok"}
 
     async def power_on(self, source="Script"):
@@ -249,14 +252,14 @@ class System(mediactl.WithLogger):
             return {"result": "ok"}
 
         # Request default media for projector (this may also operate the screen motors)
-        self.switch_media_source(1)
+        await self.switch_media_source(1)
 
         return {"result": "ok"}
 
-    def switch_media_source(self, number):
+    async def switch_media_source(self, number):
         # First media source, screen down!
         if self.kramer.status["active-input"] is None:
-            self.screen.move_down()
+            await self.screen.move_down()
         return self.kramer.switch(number)
 
 
@@ -267,5 +270,5 @@ if __name__ == "__main__":
         logger=None,
     )
 
-    result = asyncio.run(system.power_on2())
+    result = asyncio.run(system.power_on())
     print(result)