HM-Funkmodul für RPI2 & RGB(W)-Controller bestellbar

_STORE == Weißabgleich klingt sinnvoll!

Ich habe so das ungute Gefühl COLOR läuft ab 63int (3fhex) über … was ist denn das für’n Sch**ß!!! Wollen die das nicht als int sondern als hex haben? Nur wie?

Ich raff’s nicht … 77 ergibt 77 … was ist das denn für’n Da Vinci Code Mist!!!

Der Integer-Wert wird im binRPC-Paket als Binärwert (und nicht ASCII) übertragen, das ist auch jetzt korrekt in IPS.
Warum es nicht größer 127 geht…:confused::confused:

Aber hier jetzt ein echter Bug von IPS :smiley:


HM_RequestStatus(51134 ,'PARTY_STOP_TIME');
HM_RequestStatus(51134 ,'ACT_BRIGHTNESS');

Funktioniert nicht →

Warning:  Objekt mit Ident PARTY_STOP_TIME wurde nicht gefunden

Es gibt diese Datenpunkte aber in der CCU.
Also mal etwas genauer hingesehen.
IPS scheint kein Datenpunkte anzulegen, wenn die erlaubten Funktionen Read + Write sind:

OPERATIONS = 3

Doku EQ-3:

OPERATIONS
Ist ein Integer, der eine Oder Verknüpfung der mit diesem Parameter möglichen
Operationen ist. Dabei sind folgende Werte möglich: 1=Read, 2=Write, 4=Event
.

Da er also als lesend (1+2) gekennzeichnet ist, sollte er auch bitteschön angelegt werden in IPS.

Ist Dieser Wert 1,5 oder 7 legt IPS korrekt die passende Variable an.
Ist der Wert 2 so wird, auch korrekt, keine Variable angelegt
Also ist ‚nur‘ 3 falsch.

Ich lege jetzt mal alle fehlenden Vars mit den Ident für den RGBW:3 an, und dann teste ich mal weiter :slight_smile:

Michael

PS: Die CCU ‚lügt‘ uns außerdem an… Die ganzen Party_* Datenpunkte werden als Read & Write gemeldet, senden aber auch Events…:eek:

Die Übertragung als bin ist ein Problem …

Ich schicke den Wert aktuell mit der guten, alten HMRS_HTTP_Post-Funktion direkt hin (wie beim OLED). Das funktioniert zumindest :wink:

$HM_Script = '! Farbwert an RGBW-Contoller senden
dom.GetObject("BidCos-RF.MEQ1234567:2.COLOR").State("'.$wert.'");
';

So bei Kanal drei auch nicht viel mehr ‚Glück‘ gehabt…
Kann zwar die Datenpunkte lesen und schreiben, aber außer ON_TIME für die Laufzeit eines Programmes geht da nichts :frowning:

Dafür was ‚tolles‘ bei Kanal zwei.

Sende ich mit meinem Test-Tool Werte ab 253 an den Datenpunkt Color, so schaltet er einfach die Farben durch…lol

Michael

Habe nochmals mit http_post durchgetestet:

  • der valide Bereich für die Farbskala ist 0-199 (in der WebUI lässt sich max. 197 setzen).
  • 200 ist dann der Kanal W(eiß).

Versuch mal 255 zu senden… schaltet er auch durch, oder meldet dann die Regahs einen Fehler ?

Also doch nochmal Wireshark rausholen und beide Pakete vergleichen… irgendwas muss ja anders sein.
Sonst kann es ja nicht sein, das IPS ab 127 verreckt und ich mit dem binRPC-Tool bis 2147483647‬ Werte schreiben kann.

Ok das bringt bei dem Teil nix… bis 255 würde ja schon reichen :smiley:

Michael

PS: Die CCU nimmt Werte bis *4294967295‬ an, ohne Fehler… auch wenn das HM-Gerät dahinter keine so großen Zahlen kann …

255 ergibt … trommelwirbel10! :smiley:
Wenn ich ein weiteres Mal 255 schicke … trommelwirbel20! :D:D

Durchzählen schon … irgendwie … :D:D:D

Sende mal immer den gleichem wert…
Bei mir schaltet er in, ich glaub, 10er Schritten alle Farben durch.
Michael, der jetzt erstmal isst.

Yup! So ist das! Ich dachte erst der Kasten wäre vielleicht in den Programm-Modus gesprungen, ist er aber nicht (die Helligkeits-LED bleibt an == Standard-Modus).

Das max-bin-127-Problem sehe ich aber im Moment bei IPS. Ich glaube da muss Paresy nochmals die Integer-Zange herausholen und das gerade biegen :smiley: Na, solange das nicht klar/gefixt ist kann man sich mit http_post behelfen.

Guten Hunger!

Danke, Hunger gestillt und Käfer gefunden… war gut versteckt.
Mal sehen was es den Fix gibt… IPS war doch schuld :wink:
Wobei ich gestern zu 100% der Meinung war ich hatte immer mit (int)144 getestet und das wurde auch zurückgemeldet per Event von der CCU… vielleicht war es aber auch nur zu spät.

Michael

Na, super! Essen hilft! :smiley:

Werden dann auch die nicht in IPS auftauchenden DPs verfügbar sein? Anders gefragt: nach dem Fix sollte man das Gerät neu importieren, oder?

Beste Grüße
/Jens

Frag den Entwickler… :slight_smile:
Wäre aber schön, das sehe ich auch als Bug an.
Eigentlich reicht einmal Einstellungen übernehmen in einem HMDevice. Dann zieht IPS die Datenpunkte aus der CCU.
Michael

Ich frage mal den Entwickler: Hallo, lieber Entwickler

[OT] Sorry, ich habe heute schon zuviel „Honk-Sprech“ im „Nachbarforum“ gelesen … da erreicht der Verwirrungs-Grad gegen Abend ungeahnte Ausmaße :rolleyes: [OT]

Hallo zusammen,

ich habe hier mal was gebastelt, um den Color-Picker von IPS auch für den Controller zu verwenden.

Vielleicht noch nicht ganz optimal, aber es funktioniert bei mir schon mal.

Gruß Christian


<?
   /**
    * Set_HM_RGBW_Color
    *
    * Umwandeln eines HEX-RGB Wertes von einem IPS-Color-Picker in
	 * den benötigten Wert von 0-199 für den HomeMatic RGBW-Controller
    *
    * Christian Wolter
    * Version 1.0, 28.10.2015
    */


// Speichert des HEX-Wert vom Color-Picker
$Farbe = $_IPS['VALUE'];
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

// HEX-Wert in einzelne Werte für Rot / Grün / Blau zerlegen
$r = (($Farbe >> 16) & 0xFF);
$g = (($Farbe >> 8) & 0xFF);
$b = (($Farbe >> 0) & 0xFF);

// Umwandeln der RGB Werte
$hsv =  RGBtoHSV($r, $g, $b);

// Schreiben des Homematic Hue Wert in den Controller
HM_WriteValueInteger(12901 /*[Homematic-Komponenten\Aktoren\RGBW-Controller\RGBW_COLOR]*/, 'COLOR', $hsv);


/**
 * 	Umwandeln der RGB-Werte in ein Farbwert des HSV-Farbraum
 *		RGB Werte:  		0-255, 0-255, 0-255
 *		H Wert: 	  			0-360°
 *		Homematic H Wert: 0-199
 */
function RGBtoHSV($R, $G, $B)    
{                                
    $R = ($R / 255);
    $G = ($G / 255);
    $B = ($B / 255);

    $maxRGB = max($R, $G, $B);
    $minRGB = min($R, $G, $B);
    $chroma = $maxRGB - $minRGB;

    if ($chroma == 0)
        return 0;

    if ($R == $minRGB)
        $h = 3 - (($G - $B) / $chroma);
    elseif ($B == $minRGB)
        $h = 1 - (($R - $G) / $chroma);
    else // $G == $minRGB
        $h = 5 - (($B - $R) / $chroma);

    $Hue = (60 * $h);
	 $HomematicHue = ($Hue/1.8);
	 
	 if ($HomematicHue == 200)
	   $HomematicHue = 199;
 
    return $HomematicHue;
}

?>

Falls es jemand übersieht:
IP-Symcon 3.4 #3782

-Fix: HM_WriteValueInteger sendet nun auch korrekt Werte >127

Michael

Schon installiert - LÄUFT! :slight_smile:

Jep… sonst hätte ich es nicht gelistet, sondern Paresy mit noch mehr PNs zugebombt :wink:

Wer setzt auch den Absenden Button unmittelbar neben den Erweitert-Button… UPS :wink:
Michael

Bugtracker aktualisiert :wink:

@Nall chan
Sorry für den Schenkelklatscher im „SonosBY“ :D:p

Aber zum Thema: „HM_WriteValueInteger“ ist ja gefixt und das Ticket geschlossen. Sollten wir jetzt noch ein neues öffnen wg, der DPs oder hat paresy das auf der Uhr?

Beste Grüße
/Jens