Ansteuerung HmIP-RGBW

Hallo Zusammen,
ich hab mir den HmIP-RGBW Aktor geholt um einen LED-Stripe im Treppenhaus anzusteuern.

Die Helligkeit lässt sich ohne weiteres mit HM_WriteValueFloat(55181,‚LEVEL‘,0.3); setzten.
Doch leider kann ich die Parameter für die Farbzusammenstellung nicht setzten.
Hier bekomme ich immer folgenden Fehler:

Warning: HomeMatic Fehler: Generic error (MISSING_NON_OPTIONAL_PARAMETER) in C:\ProgramData\Symcon\scripts\48101.ips.php on line 4

Ich vermute das wenn man die Farbe über die CCU einstellt das hier ein Kombinierter Parameter an den Aktor übertragen wird

image

Hat jemand von euch schon ein paar Erfahrungen mit diesem Aktor gemacht und kann mir evtl. weiterhelfen?

Vielen Dank und Grüße
mirank

Ich kenne den Aktor nicht, aber der Ansatz über den COMBINED_PARAMETER wird wohl der richtige sein.

Versuche es mal mit

HM_WriteValueString(<ID von Kanal 1>, 'COMBINED_PARAMETER', 'L=101,OT=111600, ...');

Danke für deinen Input bumaas,

ich kann dir nicht genau sagen warum aber es funktioniert inzwischen genau so.
Beim ersten Versuch hat der Befehl überhaupt nicht funktioniert. Es kam wieder die Fehlermeldung wie beschrieben. Jetzt hab ich mich eben nochmal drangesetzt und hab den Aktor von der CCU gelöscht und neu angelernt und sie da es funktioniert.

Manchmal versteh ich es einfach nicht. Trotzdem nochmal danke für deine Hilfestellung.

Grüße
Miran

Hallo!
Habe hier jetzt auch die ersten RGBW-Controller vor mir.
Aber die Ansteuerung ist ja eine reine Katastrophe!? :confused:
Hat noch jemand son teil und da was umgesetzt? Vor allem wie Visualisieren??

Hallo ChristianL,
ich hab das Ding wieder rausgeschmissen und gegen einen Shelly ersetzt.
Der lässt sich leichter ansteuern.

Grüße
mirank

Bitte in dem RGBW-Ding unbedingt den richtigen Betriebsmodus einstellen!

Also Grundsätzlich bekomme ich ihn per Script angesteuert und RGB Werte nach entsprechender Umrechnung gesetzt.
Aber die Visualisierung bzw. das setzten der Farbe via App/Webfront geht noch gar nicht.
Hier hoffe ich aktuell auf die neuen Profile, die auch den HSL Farbraum unterstützen sollen.
@paresy wird das mit der 7.1 kommen?

Moin zusammen.

Beschäftige mich mal wieder mit den HMIP Dingern, da es ja jetzt möglich ist mit der neuen Darstellung auch einen HSL-Farbwert zu setzen und damit den Controller anzusteuern…

Nun ist mir allerdings aufgefallen, dass es laut Device Dokumentation auch einen Parameter „EFFECT“ im Kanal 1 geben sollte, mit dem man die Effekte ansteuern kann.
Diese Variable wird mir im Symcon allerdings nicht erstellt und fehlt somit.

Habe die aktuelle FW und auch die CCU ist up to date. Gerät schon einmal komplett aus der CCU gelöscht und neu angelernt, ändert allerdings nichts.

Jemand eine Idee dazu?

Besten Dank,
Christian

Write Only Datenpunkte werden nicht als Variable erstellt. Da es ein Integer ist wäre HM_WriteValueInteger() der richtige Weg, den Datenpunkt zu setzen.

2 „Gefällt mir“

Hab mal einen Script Baustein gebaut, um den bockigen HM-IP RGBW Dimmer in Symcon zu integrieren und die Farbkachel in der VISU zu verwenden. Möchte diesen Baustein hier mal teilen.

Damit kann die Bedienung sowohl per Symcon als auch in Homematic z.B. mit direkten Verknüpfungen erfolgen. Die Visualisierung wird in beide Richtungen synchronisiert.

Die Farb Kachel in Symcon benötigt eine String Variable um den HSV Farbraum zu verwenden - der Aktor hat aber nur Float Variablen für HUE (Farbe), SATURATION und LEVEL.

Setzen von Saturation ist nur über den oben schon erwähnten „combined“ Befehl möglich.
In dem Baustein ist diese Problematik ebenfalls gelöst.

Mit dem Baustein funktioniert bei mir jetzt die Einbindung des HM-IP RGBW Dimmers.
Umsetzung geht vielleicht auch eleganter …

<?php

/* *******************  HM IP RGBW Dimmer Visualisierung   ***********************************************************
Der RGBW Dimmer hat einige Eigenheiten, die in dem Script behandelt werden.
  - arbeitet mit dem HSL Farbmodell und dieses wird mit dem Parameter HUE als Integer angeboten
  - Symcon benötigt für die Farb Kachel eine String Variable, um das HSL Farbmodell auswählbar zu machen
    Das Script übernimmt die Umrechnung vom Integer Wert (0-355) des Aktors in die String Variable in Symcon {"h":39,"s":100,"v":100} und umgekehrt
  - der Wert für Saturation kann im RGB Dimmer nur über einen sog. Combined Befehl zusammen mit LEVEL und HUE geschrieben werden
    das Combined Befehl wird im Script "komponiert" und an Homematic CCU gesendet
  - das Script erlaubt die beliebige Bedienung über Homematic oder Webfront mit gegenseitig synchronisierung
  */


if ($IPS_SENDER == "WebFront") SetValue($IPS_VARIABLE, $_IPS['VALUE']); 

include '36315.ips.php'; // Global Functions
 include '45990.ips.php'; // Global Variables

//HSV ID der Aktorwerte
$id_aktor = 52959;    

//  ************* Variablendefinitionen vor Installer ****************************************

  $object = IPS_GetObject($_IPS['SELF']);        //print_r ($object); 
  $parentID = $object['ParentID'];                          // Instanz ID Parent festlegen
  

 //**************I N S T A L L E R ********************************************
	 if ($_IPS['SENDER'] == "Execute"){
	 
       $vid = CreateVariableByName($_IPS['SELF'], "HSV", 3, "",$_IPS['SELF'], 20, 0, 0); 
            
       // create event trigger
       //($id, $name, $triggertype (1 Aenderung), $id_trigger, $value (Triggerwert), $subsequent)
       // type: 0 bei bei Aktualisierung, 1 Aenderung, 2 Ueberschreitung, 3 Unter, 4 best Wert
       $vid = CreateEventTrigger($_IPS['SELF'], "HUE_trigger", 0, $id_HUE, 0, false);    // bei Aktualisierung von HUE auslösen    
       
       }
//************* Variablendefinitionen nach Installer *************************
  $id_HUE = @IPS_GetObjectIDByName("HUE", $id_aktor);
  $id_LEV = @IPS_GetObjectIDByName("LEVEL", $id_aktor);
  $id_SAT = @IPS_GetObjectIDByName("SATURATION", $id_aktor);

  $id_HSV = @IPS_GetObjectIDByName("HSV", $IPS_SELF);
  $HUE = getvalue ($id_HUE);                        // HSV Werte vom Aktor abfragen
  $SAT = getvalue ($id_SAT)*100;
  $LEV = getvalue ($id_LEV)*100;

  $HSV = GetValueString ($id_HSV);   //HSV String laden    //print $HSV;


// *********** Script *****************
 
if ($IPS_SENDER == "WebFront") {               // bei webfront aenderung die HSV Werte an den Aktor senden
     //echo $HSV;
     $HSV = substr ($HSV, 5,);               // Zeichen abschneiden vorne 5
     //echo "   schnitt: ". $HSV;            
      $HSV = explode(':', $HSV);               // Array erzeugen mit Trennzeichen ":"
      //print_r($HSV);
      
      $HUE = intval(substr ($HSV[0], 0, -4));   //hinten 4 abschneiden
      //echo "    0: ". $HUE;
      $SAT = intval (substr ($HSV[1], 0,-4));
      //echo "   1: ". $SAT;
      $LEV = substr ($HSV[2], 0,-1);
      //echo "   2: ". $LEV;
    HM_WriteValueString($id_aktor, 'COMBINED_PARAMETER', 'L='.$LEV.',H='.$HUE.',SAT='.$SAT.',OT=0,RT=0,RTTDV=0,RTTDU=0'); 
    }
if ($_IPS['SENDER']=="Variable") {
     //echo $HSV;
     $HSV = '{"h":'. $HUE. ',"s":'. $SAT. ',"v":'. $LEV.'}' ;   //HSV String bilden    //print $HSV;
     setvalue ($id_HSV, $HSV);                             //HSV STring schreiben in Variable zur Visualisierung
   }
?>