Hue Bewegungsmelder in der CCU nicht zu finden

HomeMatic-Addon zum Steuern von Philips Hue

Moderator: Co-Administratoren

Antworten
Findley
Beiträge: 3
Registriert: 02.01.2014, 21:50

Hue Bewegungsmelder in der CCU nicht zu finden

Beitrag von Findley » 06.04.2021, 14:32

Hallo Zusammmen,

ich habe mir einen Hue Bewegungsmelder zugelegt, den ich problemlos mit der Hue Bridge verbinden konnte.
Leider finde ich ihn nicht, so wie die anderen Lampen, in der CCU.

Muss ich den Bewegungsmelder irgendwie manuel in die CCU einbinden?

Die Lampen waren sichtbar, sobald ich sie in der Hue Bridge angemeldet hatte.

Vielen Dank

Benutzeravatar
Rosagallica
Beiträge: 81
Registriert: 22.07.2018, 15:54
System: CCU
Hat sich bedankt: 14 Mal
Danksagung erhalten: 6 Mal

Re: Hue Bewegungsmelder in der CCU nicht zu finden

Beitrag von Rosagallica » 11.04.2021, 10:55

Sowohl das eq3- als auch das Plugin von jan unterstützen nur die Leuchtmittel von der Bridge.
Man kann natürlich über die Hue-API den Zustand des Hue-Bewegungsmelders auslesen und in ein CUxD-Bewegungsmeldergerät übertragen. Geht aber nur zeitgesteuert (z.B. über CCU-Programme) und nicht ereignisbasiert wie Homematic-nativ oder innerhalb von Hue.

Code: Alles auswählen

! Bewegung Hue-Bewegungsmelder in Cuxd-Device übertragen. 
! (90) Universal Wrapper Device, Funktion State, Geräte-Icon: Innen-Bewegungsmelder;; USE_HMDATAPT abwählen
string cuxdDevice = "CUxD.CUX9001001";
string lastUpdatedSysVarName = "CUX9001001:1-LastUpdated";
! j-a-n-Hue-Addon
string bridgeId = "00123456789abcde";
string presenceSensor = "11";
string hueScript = "/usr/local/addons/hue/hue.tcl";
string cmd = "request GET sensors/";

string stdout;
string stderr;
string cmdLine = hueScript # " " # bridgeId # " " # cmd # presenceSensor;
system.Exec(cmdLine, &stdout, &stderr);
WriteLine(">"#stdout#"<");
WriteLine(">"#stderr#"<");
boolean reachable = stdout.Contains('"reachable":true');
if (reachable) {
  string fieldPresence = '"presence":';
  string valuePresence;
  integer i = stdout.Find(fieldPresence);
  if (i>0) {
    ! Presence-Wert auslesen
    string valuePresence = stdout.Substr(i).StrValueByIndex(",", 0).StrValueByIndex(":",1);
    if (valuePresence && valuePresence!= "null") {
      integer presence = (valuePresence == "true").ToInteger();
      WriteLine("Bewegung erkannt: " # presence); 
      ! Letzte Aenderung-Wert auslesen
      string fieldLastUpdated = '"lastupdated":"';
      string valueLastUpdated = "";
      integer i = stdout.Find(fieldLastUpdated);
      if (i>0) {
        string valueLastUpdated = stdout.Substr(i).StrValueByIndex(',', 0).StrValueByIndex('":"',1).Substr(2);
        valueLastUpdated = valueLastUpdated.Substr(0, valueLastUpdated.Find("\""));
        WriteLine("Last Update: >" # valueLastUpdated #"<");
        if ((valueLastUpdated.Length() == 19) && valueLastUpdated.Contains("T")) {
          ! UTC in lokale CE(S)T-Zeit umwandeln
          time utcTime = valueLastUpdated.Replace("T", " ").ToTime();
          if (utcTime.IsDST()==1) {
            valueLastUpdated = (utcTime+7200).Format("%F %T");
          } else {
            valueLastUpdated = (utcTime+3600).Format("%F %T");
          }
        }
      }
      var dp = dom.GetObject(ID_DATAPOINTS).Get(cuxdDevice # ":1.SET_STATE");
      var sysvar = dom.GetObject(ID_SYSTEM_VARIABLES).Get(lastUpdatedSysVarName);
      if (!sysvar) {
        WriteLine("Keine Systemvariable '" # lastUpdatedSysVarName # "' angelegt.");
      }
      if (dp) {
        string oldLastUpdated = sysvar.Value();
        if (valueLastUpdated <> oldLastUpdated) {
         dp.State(presence);
         sysvar.State(valueLastUpdated);
        } else { 
          WriteLine("Kein neuer Status."); 
        }
      } else { WriteLine("kein DP"); }
    } else {
      ! Wert "null": Bewegungsmelder ist deaktiviert, sendet dann keine Daten
      WriteLine("Bewegung: " # "n/a"); 
    }
  }
} else {
  WriteLine("Hue sensor nicht erreichbar.");
}
Das gleiche ist analog auch für den Temperatursensor (JSON-Attribut: temperature) und für den Helligkeitssensor (Attribut: lightlevel) möglich, die im Hue-Bewegungsmelder mit verbaut sind und eine andere Sensor-Id haben.

Antworten

Zurück zu „Hue-Addon“