diff --git a/Programmierhandbuch_V2.6.pdf b/Programmierhandbuch_V2.6.pdf
deleted file mode 100644
index 8942a6c..0000000
Binary files a/Programmierhandbuch_V2.6.pdf and /dev/null differ
diff --git a/README.md b/README.md
index a28eaf3..24920ce 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# Disco-Kugel und IR Blaster
+# IR Blaster
 
-http://lounge-ir-disco.n39.eu
+http://ir-blaster.n39.eu
 
 ## Installation und Flashen
 
@@ -11,80 +11,19 @@ http://lounge-ir-disco.n39.eu
     ```
 2. esphome installieren
     ```bash
-    pip install esphome
+    pip installv esphome
     ```
 3. `secrets.yaml` anlegen:
     ```yaml
     WifiPassword: "changeme"
-    OtaPassword: "changeme"
+    OtaPassword: "chamgeme"
     ```
 4. config hochladen
     ```bash
     esphome run config.yaml
     ```
 
-## Disco-Kugel
-
-Jeder Befehl muss mit `#*` anfangen. Das spricht alle Steuerungen im Bus an. 
-Außerdem muss jeder Befehl mit `\r` enden. Eingestellte Boudrate sind 9600-8-N-1.
-
-### Setup
-
-Folgende Befehle konfigurieren halbwegs sicheres Verhalten der Steuerung.
-Da dies ein Industrieprodukt ist kann sie so viel mehr, vorallem schneller, als wir das jemals bräuchten für die Discokugel. Es ist zu empfehlen diese Befehle vor jeder Drehzahländerung zu schicken, jedoch nicht zum stoppen. Zum Stoppen reicht es `#*S1` zu senden.
-
-- Rampenart ':ramp_mode' auf 2 - Jerk-free
-- Phasenstrom 'i' auf 25, ca. 0.5A 
-- Phasenstrom im Stillstand 'r' auf 0 - 0A
-- Positionierart 'p' auf 5 - Drehzahlmodus
-- Minimalfrequenz 'u' auf 10
-- Maximalfrequenz 'o' auf wie schnell die kugel drehen soll
-- Beschleunigungsrampe 'b' auf 1
-- Bremsrampe 'B' auf 1
-- Drehrichtung 'd' auf 0 oder 1 
-- Wiederholungen 'W' auf 0 - unendlich 
-- Folgesatz 'N' auf 0, kein folgesatz
-- 'A' motor starten
-- 'S1' motor mit bremsrampe entschleunigen
-
-Weitere Infos können der Herstellerdoku entnommen werden. [Befehlsreferenz](./Programmierhandbuch_V2.6.pdf) | [Technische / Elektrische Referenz](./SMCI33_Technisches_Handbuch_V2.1.pdf)
-
-### Befehle zum Verändern der Drehzahl
-
-`{}` Platzhalter für `[Steps / s]` 
-Steuerung hat 16 Microsteps eingestellt, Motoren haben 200 Vollsteps pro Umdrehung.  
-
-Umrechnung Drehzahl zu Steps / s.
-
-```
-d = 1 / min
-{} = (d / 60) * 200 * 16
-```
-
-{} Darf kein Komma enthalten beim Befehl absenden
-
-```
-#*:ramp_mode2
-#*i25
-#*r0
-#*p5
-#*u10
-#*o{}
-#*b1
-#*B1
-#*W0
-#*N0
-#*A
-```
-
-### Kugel anhalten
-
-`#*S1` senden
-
-
-## IR-Blaster
-
-### Codes bearbeiten
+## Codes bearbeiten
 
 1. Debug-Konsole öffnen (http://ir-blaster.n39.eu oder USB Serial)
 
@@ -98,16 +37,4 @@ d = 1 / min
   * OK (0x2FD847B)
   * Lauter (0x2FD58A7)
   * Leiser (0x2FD7887)
-  * On/Off (0x2FD48B7)
-
-### Multisync X401S
-  * Taste 0
-  * Taste 1
-  * Taste 2
-  * Taste 3
-  * Taste 4
-  * Taste 5
-  * Taste 6
-  * Taste 7
-  * Taste 8
-  * Taste 9
\ No newline at end of file
+  * On/Off (0x2FD48B7)
\ No newline at end of file
diff --git a/SMCI33_Technisches_Handbuch_V2.1.pdf b/SMCI33_Technisches_Handbuch_V2.1.pdf
deleted file mode 100644
index 646ae5b..0000000
Binary files a/SMCI33_Technisches_Handbuch_V2.1.pdf and /dev/null differ
diff --git a/config.yaml b/config.yaml
index 6894193..c999dee 100644
--- a/config.yaml
+++ b/config.yaml
@@ -1,9 +1,7 @@
 esphome:
-  name: lounge-ir-disco
-
-# https://devices.esphome.io/devices/Sonoff-TH10
-esp8266:
-  board: esp01_1m
+  name: ir-blaster
+  platform: ESP8266
+  board: d1_mini
 
 wifi:
   networks:
@@ -40,43 +38,6 @@ time:
       - ptbtime2.ptb.de
       - ptbtime3.ptb.de
 
-# === Sonoff config ===
-
-binary_sensor:
-  - platform: gpio
-    pin:
-      number: GPIO0
-      mode: INPUT_PULLUP
-      inverted: True
-    name: "Button"
-    on_press:
-      - switch.toggle: relay
-
-output:
-  - platform: esp8266_pwm
-    id: blue_led
-    pin:
-      number: GPIO13
-      inverted: True
-
-switch:
-  - platform: gpio
-    name: "Kugel Power"
-    restore_mode: RESTORE_DEFAULT_OFF
-    pin: GPIO12
-    id: relay
-    on_turn_on:
-      then:
-        - delay: 3s  # Wait for controller to boot
-        - script.execute: apply_kugel_rpm
-light:
-  - platform: monochromatic
-    name: "Blue LED"
-    restore_mode: RESTORE_DEFAULT_OFF
-    output: blue_led
-
-
-# ===== IR config =====
 button:
   - platform: template
     name: Casio Power Button
@@ -94,8 +55,39 @@ button:
   - platform: template
     name: "Ventilator An/Aus"
     on_press:
-      - remote_transmitter.transmit_pronto:
-          data: "0000 006D 0018 0000 002E 0013 002E 0013 000E 0034 002D 0013 002E 0013 000E 0034 000D 0034 000D 0034 000D 0034 000D 0034 000D 0034 002E 0117 002E 0013 002E 0013 000E 0034 002E 0013 002E 0013 000E 0034 000D 0034 000D 0034 000D 0034 000D 0034 000D 0034 002E 0181 06C3"
+      - remote_transmitter.transmit_raw:
+          code: [1212, -473, 1214, -470, 372, -1313, 1217, -473, 1214, -470, 374, -1312, 380, -1314, 370, -1310, 378, -1309, 374, -1314, 373, -1313, 1217, -7222, 1212, -475, 1212, -469, 378, -1310, 1222, -464, 1224, -466, 371, -1316, 371, -1314, 372, -1315,372, -1313, 374, -1312, 374, -1319, 1211, -7217, 1291, -397, 1218, -467, 376, -1310, 1293, -394, 1217, -470, 377, -1309, 380, -1307, 373, -1314, 373, -1314, 447, -1240, 372, -1312, 1221, -7214, 1218, -468, 1216, -471, 373, -1315, 1215, -470, 1216,-470, 375, -1315, 370, -1313, 373, -1287, 401, -1313, 372, -1320, 367, -1317, 1213]
+          repeat:
+            times: 5
+            wait_time: 16ms
+          carrier_frequency: 38kHz
+  - platform: template
+    name: "Ventilator Oscil"
+    on_press:
+      - remote_transmitter.transmit_raw:
+          code: [1215, -470, 1223, -463, 375, -1312, 1217, -469, 1223, -465, 372, -1314, 373, -1320, 1210, -470, 373, -1314, 373, -1314, 377, -1309, 372, -8061, 1218, -468, 1217, -475, 369, -1312, 1216, -477, 1210, -470, 373, -1313, 373, -1314, 1218, -468,375, -1312, 374, -1313, 372, -1317, 370, -8061, 1215, -473, 1215, -468, 373, -1314, 1216, -475, 1212, -470, 373, -1313, 374, -1313, 1217, -470, 378, -1308, 373, -1313, 374, -1313, 373, -8060, 1221, -470, 1212, -470, 379, -1309, 1215, -470, 1219, -467,374, -1314, 372, -1314, 1216, -472, 371, -1315, 377, -1309, 374, -1311, 375, -8059, 1216, -470, 1216, -470, 374, -1313, 1218, -468, 1217, -470, 373, -1313, 376, -1312, 1216, -470, 373, -1316, 370, -1313, 373, -1314, 373, -8065, 1212, -473, 1217, -466,379, -1310, 1214, -471, 1216, -470, 378, -1308, 373, -1315, 1216, -475, 367, -1316, 371, -1313, 374, -1313, 377]
+          repeat:
+            times: 5
+            wait_time: 16ms
+          carrier_frequency: 38kHz
+  - platform: template
+    name: "Ventilator Speed"
+    on_press:
+      - remote_transmitter.transmit_raw:
+          code: [1220, -468, 1215, -469, 377, -1317, 1212, -468, 1217, -444, 399, -1316, 371, -1313, 376, -1311, 373, -1314, 373, -1314, 1216, -470, 374, -8060, 1217, -469, 1222, -464, 374, -1313, 1224, -463, 1217, -476, 370, -1317, 370, -1317, 366, -1317,370, -1290, 396, -1314, 1220, -466, 373, -8060, 1222, -465, 1216, -469, 374, -1312, 1218, -469, 1218, -468, 374, -1313, 381, -1306, 377, -1309, 374, -1320, 370, -1310, 1216, -471, 373, -8060, 1215, -470, 1216, -445, 398, -1317, 1213, -476, 1212, -468,376, -1311, 372, -1313, 374, -1312, 374, -1314, 380, -1309, 1213, -470, 374]
+          repeat:
+            times: 5
+            wait_time: 16ms
+          carrier_frequency: 38kHz
+  - platform: template
+    name: "Ventilator Mode"
+    on_press:
+      - remote_transmitter.transmit_raw:
+          code: [1217, -473, 1213, -475, 368, -1292, 1238, -470, 1217, -474, 374, -1310, 373, -1315, 371, -1319, 371, -1310, 1216, -471, 373, -1313, 373, -8062, 1215, -471, 1223, -465, 374, -1313, 1215, -471, 1214, -471, 373, -1313, 379, -1308, 373, -1321,367, -1319, 1210, -470, 374, -1320, 370, -8064, 1208, -470, 1220, -467, 373, -1290, 1241, -469, 1217, -470, 373, -1314, 372, -1314, 373, -1314, 373, -1320, 1210, -471, 372, -1316, 371, -8060, 1216, -473, 1214, -471, 372, -1313, 1217, -475, 1211, -470,373, -1318, 369, -1314, 372, -1316, 371, -1313, 1217, -470, 378, -1317, 371]
+          repeat:
+            times: 5
+            wait_time: 16ms
+          carrier_frequency: 38kHz
   - platform: template
     name: "MultisyncX401S Taste 0"
     on_press:
@@ -187,12 +179,13 @@ button:
             wait_time: 16ms
           carrier_frequency: 38kHz
 
+
 remote_receiver:
   pin: 
     number: GPIO2
     inverted: True
     mode: INPUT_PULLUP
-  dump: all
+  dump: raw
 # Change to dump: all to see all protocols, use dump: raw to see raw codes
 
 remote_transmitter:
@@ -200,81 +193,10 @@ remote_transmitter:
   # Infrared remotes use a 50% carrier signal
   carrier_duty_percent: 50%
 
-# === Disco config ====
-
-globals:
-  - id: current_rpm
-    type: float
-    initial_value: '0.0'
-
-number:
-  - platform: template
-    name: "Kugel Geschwindigkeit (RPM)"
-    id: kugel_rpm
-    min_value: -10
-    max_value: 10
-    step: 0.02
-    lambda: |-
-      return id(current_rpm);
-    set_action:
-      then:
-        - lambda: |-
-            id(current_rpm) = x;
-            id(kugel_rpm).publish_state(x);
-        - script.execute: apply_kugel_rpm
-
-script:
-  - id: apply_kugel_rpm
-    mode: restart
-    then:
-      - lambda: |-
-          float rpm = id(current_rpm);
-
-          if (fabs(rpm) < 0.02) {
-            // Stop if near zero
-            id(uart_1).write_str("#*S1\r\n");
-            return;
-          }
-
-          // Calculate speed in steps/s (absolute value), determine direction
-          int steps_per_sec = (fabs(rpm) / 60.0) * 200 * 16;
-          int direction = rpm >= 0 ? 0 : 1;  // 0 = forward, 1 = backward
-
-          char speed_cmd[16];
-          snprintf(speed_cmd, sizeof(speed_cmd), "#*o%d\r\n", steps_per_sec);
-
-          char dir_cmd[10];
-          snprintf(dir_cmd, sizeof(dir_cmd), "#*d%d\r\n", direction);
-
-          id(uart_1).write_str("#*:ramp_mode2\r\n");  // Rampenart ':ramp_mode' auf 2 - Jerk-free
-          id(uart_1).write_str("#*i25\r\n");          // Phasenstrom 'i' auf 25, ca. 0.5A 
-          id(uart_1).write_str("#*r0\r\n");           // Phasenstrom im Stillstand 'r' auf 0 - 0A
-          id(uart_1).write_str("#*p5\r\n");           // Positionierart 'p' auf 5 - Drehzahlmodus
-          id(uart_1).write_str("#*u10\r\n");          // Minimalfrequenz 'u' auf 10
-          id(uart_1).write_str(speed_cmd);            // Maximalfrequenz 'o' auf wie schnell die kugel drehen soll
-          id(uart_1).write_str("#*b1\r\n");           // Beschleunigungsrampe 'b' auf 1
-          id(uart_1).write_str("#*B1\r\n");           // Bremsrampe 'B' auf 1
-          id(uart_1).write_str(dir_cmd);              // Drehrichtung 'd' auf 0 oder 1 
-          id(uart_1).write_str("#*W0\r\n");           // Wiederholungen 'W' auf 0 - unendlich 
-          id(uart_1).write_str("#*N0\r\n");           // Folgesatz 'N' auf 0, kein folgesatz
-          id(uart_1).write_str("#*A\r\n");            // 'A' motor starten
-
-
-uart:
-  id: uart_1
-  tx_pin: GPIO1
-  rx_pin: GPIO3
-  baud_rate: 9600
-  debug:
-    direction: BOTH
-    dummy_receiver: false
-    after:
-      delimiter: "\n"
-
 sensor:
 # Extra sensor to keep track of plug uptime
   - platform: uptime
     name: Uptime Sensor
   - platform: wifi_signal
     name: "WiFi Signal Sensor"
-    update_interval: 60s
+    update_interval: 60s
\ No newline at end of file
diff --git a/scripts/crack_MultisyncX401S_4digit_PIN.py b/scripts/crack_MultisyncX401S_4digit_PIN.py
deleted file mode 100644
index 6167023..0000000
--- a/scripts/crack_MultisyncX401S_4digit_PIN.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import requests
-import time
-from tqdm import tqdm
-
-url = "http://ir-blaster.n39.eu/button/multisyncx401s_taste_%s/press"
-
-for i in tqdm(range(0000, 10000)):
-    num_str = f"{i:04d}"
-    print(f"Sending: {num_str}")
-    for digit in num_str:
-        requests.post(url % digit)
-        time.sleep(0.35)
-    time.sleep(0.35)
\ No newline at end of file