tuanchris 3 månader sedan
förälder
incheckning
121010a164
4 ändrade filer med 70 tillägg och 82 borttagningar
  1. 0 59
      check_docker_network.sh
  2. 2 2
      modules/core/state.py
  3. 0 10
      static/js/led-control.js
  4. 68 11
      templates/wled.html

+ 0 - 59
check_docker_network.sh

@@ -1,59 +0,0 @@
-#!/bin/bash
-# Helper script to determine how Docker should access Hyperion on the host
-
-echo "=== Docker Network Configuration Helper ==="
-echo ""
-echo "Checking your network configuration..."
-echo ""
-
-# Check if running in Docker
-if [ -f /.dockerenv ]; then
-    echo "✓ Running inside Docker container"
-    echo ""
-
-    # Show container's network info
-    echo "Container IP addresses:"
-    ip addr show | grep "inet " | grep -v 127.0.0.1
-    echo ""
-
-    # Try to find gateway
-    echo "Docker gateway (try this IP for Hyperion):"
-    ip route | grep default | awk '{print $3}'
-    echo ""
-
-    # Test if we can reach common IPs
-    echo "Testing connectivity to potential Hyperion IPs..."
-
-    for IP in "127.0.0.1" "172.17.0.1" "host.docker.internal"; do
-        echo -n "  Testing $IP:8090 ... "
-        if timeout 2 bash -c "echo > /dev/tcp/$IP/8090" 2>/dev/null; then
-            echo "✓ REACHABLE (use this!)"
-        else
-            echo "✗ Not reachable"
-        fi
-    done
-else
-    echo "✓ Running on host (not in Docker)"
-    echo ""
-
-    # Show host network info
-    echo "Host IP addresses:"
-    if command -v ip &> /dev/null; then
-        ip addr show | grep "inet " | grep -v 127.0.0.1
-    else
-        ifconfig | grep "inet " | grep -v 127.0.0.1
-    fi
-    echo ""
-
-    echo "For Docker containers to reach Hyperion on this host, use one of:"
-    echo "  1. Run container with --network host, then use: 127.0.0.1"
-    echo "  2. Use Docker gateway IP: 172.17.0.1 (most common)"
-    echo "  3. Use host's LAN IP (shown above)"
-fi
-
-echo ""
-echo "=== Recommendations ==="
-echo "If your Docker container is on Raspberry Pi:"
-echo "  • Best: Add --network host to docker run, use 127.0.0.1:8090"
-echo "  • Alternative: Use 172.17.0.1:8090 (Docker bridge gateway)"
-echo ""

+ 2 - 2
modules/core/state.py

@@ -40,7 +40,7 @@ class AppState:
         self.conn = None
         self.port = None
         self.wled_ip = None
-        self.hyperion_ip = None
+        self.hyperion_ip = "127.0.0.1"
         self.hyperion_port = 8090
         self.led_provider = "none"  # "wled", "hyperion", or "none"
         self.led_controller = None
@@ -239,7 +239,7 @@ class AppState:
         self.custom_clear_from_out = data.get("custom_clear_from_out", None)
         self.port = data.get("port", None)
         self.wled_ip = data.get('wled_ip', None)
-        self.hyperion_ip = data.get('hyperion_ip', None)
+        self.hyperion_ip = data.get('hyperion_ip', "127.0.0.1")
         self.hyperion_port = data.get('hyperion_port', 8090)
         self.led_provider = data.get('led_provider', "none")
         self.hyperion_idle_effect = data.get('hyperion_idle_effect', "off")

+ 0 - 10
static/js/led-control.js

@@ -185,16 +185,6 @@ async function initializeHyperionControls() {
         }
     });
 
-    // Default (Off) button - clears priority
-    document.getElementById('hyperion-clear-priority')?.addEventListener('click', async () => {
-        try {
-            await hyperionController.sendCommand('clear', {});
-            showStatus('Returned to default state (off)', 'success');
-        } catch (error) {
-            showStatus(`Failed to return to default: ${error.message}`, 'error');
-        }
-    });
-
     // Save effect settings button
     document.getElementById('save-hyperion-effects')?.addEventListener('click', async () => {
         try {

+ 68 - 11
templates/wled.html

@@ -5,21 +5,38 @@
 .dark .bg-white {
   background-color: #262626;
 }
+.dark .bg-gray-100 {
+  background-color: #1f1f1f;
+}
 .dark .border-slate-200 {
   border-color: #404040;
 }
+.dark .border-slate-300 {
+  border-color: #404040;
+}
 .dark .text-gray-500 {
   color: #9ca3af;
 }
 .dark .text-gray-700 {
   color: #d1d5db;
 }
+.dark .text-slate-500 {
+  color: #a1a1aa;
+}
+.dark .text-slate-600 {
+  color: #d4d4d8;
+}
+.dark .text-slate-700 {
+  color: #e4e4e7;
+}
 .dark .text-slate-800 {
   color: #e5e5e5;
 }
-.dark .border-slate-300 {
-  border-color: #404040;
+.dark .text-slate-900 {
+  color: #f4f4f5;
 }
+
+/* Form elements */
 .dark input[type="range"] {
   background-color: #404040;
 }
@@ -27,6 +44,55 @@
   background-color: #262626;
   border-color: #404040;
 }
+.dark select,
+.dark .form-select {
+  background-color: #1f1f1f;
+  border-color: #404040;
+  color: #e5e5e5;
+}
+.dark select option {
+  background-color: #262626;
+  color: #e5e5e5;
+}
+
+/* Quick color buttons - ensure they remain visible */
+.dark .quick-color {
+  border-color: #525252;
+}
+
+/* Status messages - keep backgrounds but adjust borders */
+.dark .bg-green-50 {
+  background-color: #14532d;
+}
+.dark .border-green-200 {
+  border-color: #166534;
+}
+.dark .text-green-700 {
+  color: #86efac;
+}
+.dark .bg-red-50 {
+  background-color: #450a0a;
+}
+.dark .border-red-200 {
+  border-color: #991b1b;
+}
+.dark .text-red-700 {
+  color: #fca5a5;
+}
+.dark .bg-amber-50 {
+  background-color: #451a03;
+}
+.dark .border-amber-200 {
+  border-color: #92400e;
+}
+.dark .text-amber-700 {
+  color: #fcd34d;
+}
+
+/* Iframe border */
+.dark iframe {
+  border-color: #404040;
+}
 {% endblock %}
 
 {% block content %}
@@ -177,15 +243,6 @@
           <span>Save Effect Settings</span>
         </button>
       </div>
-
-      <!-- Reset Control -->
-      <div class="flex items-center gap-4 pt-4 border-t border-slate-200">
-        <button id="hyperion-clear-priority" class="flex items-center justify-center gap-2 rounded-lg bg-blue-600 px-4 py-2.5 text-sm font-semibold text-white shadow-md hover:bg-blue-700 transition-colors duration-150 focus:outline-none focus:ring-2 focus:ring-blue-400 focus:ring-offset-2">
-          <span class="material-icons text-base">clear_all</span>
-          <span>Default (Off)</span>
-        </button>
-        <p class="text-xs text-slate-500 flex-1">Clears Dune Weaver's control and returns to default state</p>
-      </div>
     </div>
   </section>
 </div>