Philips HUE Modul

welche ZigBee-Anbieter und welche ZigBee-Geräte kann man mittlerweile mit deinem HUE-Modul steuern ?

Braucht man DeConZ ?

Gruß
Bernd

Hi,
Du brauchst dafür die Hue-Bridge. Hue ist recht wählerisch welche Geräte es zulässt. Neben Hue waren es bei mir noch einige Osram-Sachen aber auch nicht alle.

Ralf

Da ich aktuell noch dieses, ich sag mal „ältere Hue Modul“ nutze, und dafür testweise ein Adaptive Lightning Script gebaut habe, wollte es gerne hier zur Verfügung stellen. Ich triggere das Script alle 1 min und durch auslösen einer der im Array definierten Lampen.

Skriptbeschreibung

Das Skript „Adaptive Lighting für IP-Symcon mit symconHUE Modul von traxanos (Version 4.13)“ passt die Farbtemperatur von Hue-Lampen im Laufe des Tages an, um eine natürliche Beleuchtungsumgebung zu simulieren. Es verwendet durchschnittliche Sonnenaufgangs- und Sonnenuntergangszeiten, die basierend auf dem aktuellen Monat saisonal angepasst werden. In der Nacht wird eine warme Farbtemperatur verwendet, während am Tag die Farbtemperatur graduell von warm zu kalt und wieder zu warm übergeht, wobei die kälteste Farbtemperatur um die Mittagszeit erreicht wird.

Definierte Variablen

  1. WARM_COLOR_TEMP: Die wärmste Farbtemperatur (Standard: 500).
  2. COLD_COLOR_TEMP: Die kälteste Farbtemperatur (Standard: 153).
  3. $bridgeId: Die ID der Hue Bridge für den Abgleich des Status aller Lampen.
  4. $lightIDs: Ein Array, das die Instanz-IDs der zu steuernden Hue Lampen enthält.
  5. $minutesAdjustmentPerMonth: Die Anzahl der Minuten pro Monat, die für die saisonale Anpassung der Sonnenaufgangs- und Sonnenuntergangszeiten verwendet wird (Standard: 10 Minuten).

Funktionsweise

  • Das Skript berechnet basierend auf dem aktuellen Monat eine saisonale Anpassung der durchschnittlichen Sonnenaufgangs- und Sonnenuntergangszeiten.
  • Die Farbtemperatur wird entsprechend der aktuellen Tageszeit berechnet: Warme Farbtemperatur wird nachts und kalte Farbtemperatur tagsüber verwendet.
  • Tagsüber ändert sich die Farbtemperatur graduell, wobei sie um die Mittagszeit am kältesten ist.
  • Die berechnete Farbtemperatur wird nur auf eingeschaltete Hue Lampen angewendet.

Hinweis:
Wenn man den Wert der Variable $minutesAdjustmentPerMonth von 10 auf 30 Minuten ändern, hat das zur Folge, dass die saisonale Anpassung der Sonnenuntergangszeit stärker ausfällt. Im Juni, dem sechsten Monat des Jahres, würde dies bedeuten, dass die Sonnenuntergangszeit um 6 x 30 Minuten = 180 Minuten, also 3 Stunden, nach hinten verschoben wird.

<?php
// Version 4.13 des Adaptive Lighting Scripts für IP-Symcon mit symconHUE Modul von traxanos


// Definiere den Bereich der Farbtemperaturwerte
define('WARM_COLOR_TEMP', 500); // Wärmste Farbtemperatur
define('COLD_COLOR_TEMP', 153); // Kälteste Farbtemperatur


###### Variablen ID´s und Anpassungen pflegen ab hier #######

// Bridge-ID für den Abgleich des Status aller Lampen
$bridgeId = 44142;
HUE_SyncStates($bridgeId);

// Array der Lampen-Instanz IDs der Hue Lampen
$lightIDs = [   29078, 
                25604, 
                26644];

// Variable zur Anpassung der Zeit (Minuten pro Monat für saisonale Anpassung)
$minutesAdjustmentPerMonth = 30; // Standardwert ist 10 Minuten

###### Variablen ID´s und Anpassungen pflegen endet hier #######



// Aktuelle Zeit und Monat definieren
$currentTime = time();
$currentHour = intval(date('G', $currentTime));
$currentMonth = intval(date('n', $currentTime));

// Berechnung der saisonalen Anpassung der Zeiten
$seasonalAdjustment = ($currentMonth <= 6) ? ($currentMonth - 1) * $minutesAdjustmentPerMonth : (12 - $currentMonth) * $minutesAdjustmentPerMonth;
$sunriseTime = max(6 - $seasonalAdjustment / 60, 4); // Sonnenaufgang nicht früher als 4 Uhr
$sunsetTime = min(18 + $seasonalAdjustment / 60, 22); // Sonnenuntergang nicht später als 22 Uhr

// Farbtemperatur basierend auf der Tageszeit berechnen
if ($currentHour < $sunriseTime || $currentHour >= $sunsetTime) {
    // Nachtzeit
    $currentColorTemp = WARM_COLOR_TEMP;
} else {
    // Tageszeit
    $dayProgress = ($currentHour < 12) ? ($currentHour - $sunriseTime) / (12 - $sunriseTime) : ($currentHour - 12) / ($sunsetTime - 12);
    $currentColorTemp = intval(($currentHour < 12) ? WARM_COLOR_TEMP - ($dayProgress * (WARM_COLOR_TEMP - COLD_COLOR_TEMP)) : COLD_COLOR_TEMP + ($dayProgress * (WARM_COLOR_TEMP - COLD_COLOR_TEMP)));
}

// Stelle sicher, dass die Farbtemperatur innerhalb des gültigen Bereichs bleibt
$currentColorTemp = max(min($currentColorTemp, WARM_COLOR_TEMP), COLD_COLOR_TEMP);

// Konvertiere Timestamp in lesbare Datums- und Zeitformate
$currentDateTime = date('Y-m-d H:i:s', $currentTime);

// Ausgabe der aktuellen und berechneten Werte
// echo "Aktuelle Uhrzeit: " . $currentDateTime . "\n";
// echo "Aktuelle Farbtemperatur: " . $currentColorTemp . "\n";

// Wende die Farbtemperatur nur auf eingeschaltete Hue Lampen an
foreach ($lightIDs as $lightId) {
    // Überprüfe, ob die Lampe eingeschaltet ist
    $isLightOn = HUE_GetValue($lightId, 'STATE');
    // Aktualisiere die Farbtemperatur der Lampe, wenn sie eingeschaltet ist
    if ($isLightOn) {
        HUE_SetValue($lightId, 'COLOR_TEMPERATURE', $currentColorTemp);
    }
}