diff --git a/frontend/src/components/RoomCard.vue b/frontend/src/components/RoomCard.vue
index 3156ef22470c25496943329d39aca58af3e859aa..76d1ac01c11bb1425483237e1a7a9f7a06fd3ebc 100644
--- a/frontend/src/components/RoomCard.vue
+++ b/frontend/src/components/RoomCard.vue
@@ -1,5 +1,5 @@
 <template>
-  <RouterLink :to="`/rooms/${room}`" class="room-card">
+  <RouterLink :to="`/rooms/${encodeURIComponent(room)}`" class="room-card">
     <div class="card-content">
       <h3>{{ room }}</h3>
     </div>
diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts
index 9bc21d2b0035313022ead7e36fce89e75fcedee7..acc846fe60b1dcc046298900150459f36d8be1e9 100644
--- a/frontend/src/router/index.ts
+++ b/frontend/src/router/index.ts
@@ -39,6 +39,12 @@ const router = createRouter({
             name: 'charts',
             component: ChartView
         },
+        {
+            path: '/rooms/:room',
+            name: 'RoomChart',
+            component: () => import('../views/ChartView.vue'),
+            props: true
+        },        
         {
             path: '/about',
             name: 'about',
diff --git a/frontend/src/views/ChartView.vue b/frontend/src/views/ChartView.vue
index 8bb71567909a1131f3639946cf7ee7002edff36d..e0ec4d4128abeea2766c4f586b7296d67ed3ddaf 100644
--- a/frontend/src/views/ChartView.vue
+++ b/frontend/src/views/ChartView.vue
@@ -1,7 +1,69 @@
 <template>
-    <MyChart />
+  <div class="chart-view">
+    <h2>Daten für Raum: {{ room }}</h2>
+
+    <ChartCard
+      title="COâ‚‚ Verlauf"
+      :labels="labels"
+      :data="co2Data"
+      borderColor="#ff6384"
+    />
+
+    <!-- Debug-Ausgabe -->
+    <pre>Labels: {{ labels }}</pre>
+    <pre>COâ‚‚: {{ co2Data }}</pre>
+  </div>
 </template>
 
-<script setup lang="ts">
-import MyChart from '@/components/Chart.vue'
+<script lang="ts">
+import { defineComponent, ref, onMounted } from 'vue'
+import { useRoute } from 'vue-router'
+import ChartCard from '../components/ChartCard.vue'
+
+export default defineComponent({
+  name: 'ChartView',
+  components: { ChartCard },
+  setup() {
+    const route = useRoute()
+    const room = decodeURIComponent(route.params.room as string)
+
+    const labels = ref<string[]>([])
+    const co2Data = ref<number[]>([])
+
+    onMounted(async () => {
+      try {
+        const url = `http://localhost:8000/api/room_data_range?room=${encodeURIComponent(room)}&start=-7d&stop=now()`
+        const response = await fetch(url)
+
+        if (!response.ok) {
+          throw new Error(`HTTP-Fehler: ${response.status}`)
+        }
+
+        const json = await response.json()
+        const entries = Object.entries(json.data).sort(
+          ([a], [b]) => new Date(a).getTime() - new Date(b).getTime()
+        )
+
+        const labelsArray = entries.map(([timestamp]) =>
+          new Date(timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })
+        )
+
+        const co2DataArray = entries.map(([, values]) => values.co2)
+
+        labels.value = labelsArray
+        co2Data.value = co2DataArray
+      } catch (err) {
+        console.error('❌ Fehler beim Laden der Daten:', err)
+      }
+    })
+
+    return { room, labels, co2Data }
+  }
+})
 </script>
+
+<style scoped>
+.chart-view {
+  padding: 2rem;
+}
+</style>