+ Antworten
Seite 2 von 2 ErsteErste 1 2
Ergebnis 11 bis 17 von 17
  1. #11
    Registriert seit
    Apr 2014
    Beiträge
    318

    Hi,
    ich habe dazu mal eine Übersicht angehängt. Das heißt für die Modi konkret:

    RGBW: RGB + Weiß Devices

    CCT: Warmweiß + Kaltweiß Devices (Dual LED)

    RGB + CCT: RGB + Warmweiß + Kaltweiß Devices

    RGB: RGB Devices

    FUT089 / B8: Wie RGB + CCT, jedoch mit 8 statt 4 Zonen. Scheinbar für neuere Geräte nötig.

    FUT091 / B2: Wie CCT, jedoch scheinbar eine neue Protokollversion


    Kannst du mit der Info soweit etwas anfangen?
    Angehängte Grafiken Angehängte Grafiken  

  2. #12
    Registriert seit
    Aug 2016
    Beiträge
    4,142

    Also sollte im Modul einstellbar sein, welcher Modus genutzt wird?
    Welchen Modus nutzt du, dann würde ich damit anfangen.

    Grüße,
    Kai
    IPS 5.2, auf Tinkerboard und RPI, piVCCU, Homematic & Homematic IP, diverse Tasmota Geräte, Shelly, GHoma, LG HomBot, Sonos, Tvheadend, HomeKit, AppleTV
    Einfach mal rein schauen: IP-Symcon Discord Channel

  3. #13
    Registriert seit
    Apr 2014
    Beiträge
    318

    Ich denke das würde für jedes angelegte Device in der entsprechenden Instanz Sinn machen, genau. Ich nutze aktuell ausschließlich RGB+CCT.

  4. #14
    Registriert seit
    Feb 2009
    Ort
    Dortmund
    Beiträge
    96

    Standard Milight Hub - ESP > MQTT

    Hallo Luca, Kai,

    eine schicke Lösung die du hier vorstellst, ich nutze seit einiger Zeit Milight E27 Lampen und die RGBW LED Module. Das im Forum vorgestellt Milight Modul (das erste) funktioniert seit langen bei mir sehr gut, mit dem Limit auf 4 Kanäle bzw. 4 Bereiche.
    Die Lösung mit einem WEMOS D1 und dem NRF24L01 habe ich mir heute nachgebaut und Funktioniert, schöne Lösung. Die Verbindung ESP > MQTT > IPS verstehe ich noch nicht so ganz. Kai du implementierst es in das Tasmota Modul? Wenn es hilft teste ich es gerne, bei mir sind wie schon geschrieben RGBW und zwar E27 und LED Module in Betrieb.
    Die Eingaben die in dem ESP für MQTT gemacht werden müssen sind mir auch nicht alle klar, ich bin dabei wenn ich helfen kann.

    alles Gute D.Voss
    Es gibt nur 10 Typen von Menschen auf der Welt die einen Verstehen, Binärcode .....

  5. #15
    Registriert seit
    Jul 2009
    Ort
    DUS
    Beiträge
    161

    Hallo Zusammen,

    gibt es hierzu schon etwas Neues?
    Habe auch schon so ein Gateway aufgesetzt:
    https://blog.christophermullins.com/...on-an-esp8266/
    Ging ganz einfach, Zeit für die Realisierung ca. 10 Minuten, Kosten unter EUR 10.

    Habe auch schon die Topics per MQTT in IPS, allerdings scheitere ich an der Rückmeldung:
    Sofern ich MQTT richtig verstanden habe, ändere ich die Inhalt der Topic-Variable auf dem Server und der Client bekommt es mit?

    Mit einem:
    PHP-Code:
    $ID =   28904;
    RequestAction ($ID"{"state":"ON","brightness":255,"bulb_mode":"color","color":{"r":255,"g":0,"b":46}}"  ); 
    bekomme ich immer diese Fehlermeldung:
    Code:
    Parse error:  syntax error, unexpected 'state' (T_STRING), expecting ')' in C:\ProgramData\Symcon\scripts\55926.ips.php on line 6
    Abort Processing during Fatal-Error: syntax error, unexpected 'state' (T_STRING), expecting ')'
    mit
    PHP-Code:
    $ID =   28904;
    RequestAction ($ID"bla"  ); 
    wird die Variable gesetzt.
    Wenn ich die Variable per Hand auf der Konsole setzte, wird dies auch nicht an die Lampe übertragen.
    Im Wireshark sehe ich, daß die Werte per MQTT übertragen werden:
    Code:
    milight/0x0/rgb_cct/1blablub
    Wobei ich nach der ganzen Frickelei keine Pakete mehr vom IPS in Richtung Bridge sehe ...

    Vielleicht kann ja jemand einen Schubs in die richtige Richtung geben ...

    Dank und Gruß

    kea

    PS Anbei noch ein Screenshot der Birdge-Konfiguration
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	milightbridgemqtt.png 
Hits:	31 
Größe:	83.3 KB 
ID:	55183
    Aktuelles IPS auf W2019 (virtualisiert auf Hyper-V), HomeMatic, 1Wire, EnOcean, diverse LAN-Komponenten usw. Aber immer noch im Lernmodus...

  6. #16
    Registriert seit
    Jul 2009
    Ort
    DUS
    Beiträge
    161

    Hallo Zusammen,

    hab mich mal ein bisschen mit dem System beschäftigt und werfe mal ein paar Brocken in den Thread.

    1) Bau des Gateways (Materialkosten keine €5), siehe oben oder direkt https://github.com/sidoh/esp8266_milight_hub.

    2) MQTT Server in IPS aktivieren

    3) ESP-Bridge einstellen (siehe Bild esp.png)

    4) Lampen an das Gateway anlernen,
    Wichtig: Jeder Lampe eine eigene ID verpassen (siehe anlern.png) und den "Remote Type" "FUT089/B8" auswählen, dann sind 8 Gruppen möglich.

    5) Die Lampen bei Bedarf an weitere Steuerelemente anlernen

    6) Die Lampen mal schalten/steuern

    7) Jetzt sollte beim IPS schon was ankommen: MQTT lässt sich gut mit dem http://mqtt-explorer.com/ prüfen, einfach auf den IPS-Server zeigen lassen. (siehe mqttexplorer.png)

    8) Nun im IPS mit dem MQTT Konfigurator die Instanz anlegen
    Obacht! Es gibt mehrer Topics für eine Lampe:
    a) die oben vergebene ID (diese wird auch zum Steuern genutzt)
    b) die ID der Fernbedienung
    c) ggf, mehrer Gruppen-ID
    Lässt sich gut mit dem MQTT Explorer erkennen

    9) Nun die Variablen anlegen (siehe Bild ipsvar.png). Hier sind die Variablendefinitionen:
    PHP-Code:
    // Profile erstellen
    // MiLiState
    IPS_CreateVariableProfile("MiLiState"1);
    IPS_SetVariableProfileText("MiLiState""""");
    IPS_SetVariableProfileValues("MiLiState"031);
    IPS_SetVariableProfileDigits("MiLiState"0);
    IPS_SetVariableProfileIcon("MiLiState""");
    IPS_SetVariableProfileAssociation("MiLiState"0"Aus"""16711680);
    IPS_SetVariableProfileAssociation("MiLiState"1"Ein"""65280);
    IPS_SetVariableProfileAssociation("MiLiState"2"Nacht"""160);
    IPS_SetVariableProfileAssociation("MiLiState"3"Putzlicht"""16777215);
    // MiLiBulbMode
    IPS_CreateVariableProfile("MiLiBulbMode"1);
    IPS_SetVariableProfileText("MiLiBulbMode""""");
    IPS_SetVariableProfileValues("MiLiBulbMode"000);
    IPS_SetVariableProfileDigits("MiLiBulbMode"0);
    IPS_SetVariableProfileIcon("MiLiBulbMode""");
    IPS_SetVariableProfileAssociation("MiLiBulbMode"0"White""", -1);
    IPS_SetVariableProfileAssociation("MiLiBulbMode"1"Color""", -1);
    IPS_SetVariableProfileAssociation("MiLiBulbMode"2"Scene""", -1);
    IPS_SetVariableProfileAssociation("MiLiBulbMode"3"Night""", -1);
    // MiLiScene
    IPS_CreateVariableProfile("MiLiScene"1);
    IPS_SetVariableProfileText("MiLiScene""""");
    IPS_SetVariableProfileValues("MiLiScene"080);
    IPS_SetVariableProfileDigits("MiLiScene"0);
    IPS_SetVariableProfileIcon("MiLiScene""");
    IPS_SetVariableProfileAssociation("MiLiScene"0"All Colors Smooth""", -1);
    IPS_SetVariableProfileAssociation("MiLiScene"1"White only""", -1);
    IPS_SetVariableProfileAssociation("MiLiScene"2"Red Green Blue smooth""", -1);
    IPS_SetVariableProfileAssociation("MiLiScene"3"All Colors Hard""", -1);
    IPS_SetVariableProfileAssociation("MiLiScene"4"All colors hard II""", -1);
    IPS_SetVariableProfileAssociation("MiLiScene"5"Red show""", -1);
    IPS_SetVariableProfileAssociation("MiLiScene"6"Green show""", -1);
    IPS_SetVariableProfileAssociation("MiLiScene"7"Blue show""", -1);
    IPS_SetVariableProfileAssociation("MiLiScene"8"White show""", -1);
    IPS_SetVariableProfileAssociation("MiLiScene"9"RGB Circle fade""", -1);
    // MiLiColorTemp_2
    IPS_CreateVariableProfile("MiLiColorTemp_2"1);
    IPS_SetVariableProfileText("MiLiColorTemp_2""""");
    IPS_SetVariableProfileValues("MiLiColorTemp_2"15337025);
    IPS_SetVariableProfileDigits("MiLiColorTemp_2"0);
    IPS_SetVariableProfileIcon("MiLiColorTemp_2""");
    // MiLi_Brightness
    IPS_CreateVariableProfile("MiLi_Brightness"1);
    IPS_SetVariableProfileText("MiLi_Brightness""""");
    IPS_SetVariableProfileValues("MiLi_Brightness"02550);
    IPS_SetVariableProfileDigits("MiLi_Brightness"0);
    IPS_SetVariableProfileIcon("MiLi_Brightness"""); 
    10) Ein Auswertescript an die benötigten Variablen setzen (bei sind es zwei Variablen):
    PHP-Code:
    <?php

    // 0.9  2020-08-23  soe (start of engeneering)

    if ($_IPS['SENDER'] == "Variable" or $_IPS['SENDER'] =='TimerEvent')
        {
           
    $SenderTyp $_IPS['SENDER'];
           
    $SenderID $_IPS['VARIABLE'];    // alt EVENT
           
    }
     
    // Variablendefinition

    $BulbID         =   35518;
    $BulbValue      =   47287;
    $Chroma         =   35703;
    $Mode           =   55368;
    $White          =   43243;       // scene white color
    $State          =   30279;
    $Luma           =   43777;
    $Scene            =    45228;  // mode 0 - 9

    if ($_IPS['SENDER'] == "Variable") {                         // script wird von einer Variable getriggert
    // Werte lesen 
        
    $IN        =    GetValue($SenderID);                       // org Bulb Value
        
    $json     =     json_decode($IN);
            
        
    // var_dump($json);      // nur zum debug, erzeugt sonst einen fehler
        
        // State auswerten
        
    IF ($json->state == "OFF" or $json->state == "off") {
            
    SetValue ($State0);

        }        
        
    // Weitere Ablauf nur wenn Lampe an
            
    IF ($json->state == "ON" or $json->state == "on")     {
                
    SetValue ($State1);        
                
    SetValue ($Luma$json->brightness);// Brightness auswerten
                    // Mode auswerten
                
    IF ($json->bulb_mode == "white")             { 
                                
    SetValue ($Chroma0);
                    
    SetValue ($Mode0);  
                    
    SetValue ($White,$json->color_temp);
                }
                IF (
    $json->bulb_mode == "night")            {
                    
    SetValue ($Mode3);
                    
    SetValue ($State2);                            // Nachtmodus
                
    }
                IF (
    $json->bulb_mode == "color")              {
                    
    SetValue ($Mode1); 
                    
    // RGB lesen, Einzelwerte nach RGB-Hex umrechnen
                    
    $RGB hexdec(str_pad(dechex($json->color->r), 
                        
    2,'0'STR_PAD_LEFT).str_pad(dechex($json->color->g), 
                        
    2,'0'STR_PAD_LEFT).str_pad(dechex($json->color->b), 
                        
    2,'0'STR_PAD_LEFT));
                    
    SetValue ($Chroma$RGB);
                }
                IF (
    $json->bulb_mode == "scene")              {
                    
    SetValue ($DebugID$json);
                    
    SetValue ($Mode2);
                    IF (
    $json->mode == "0")  SetValue($Scene0);
                    IF (
    $json->mode == "1")  SetValue($Scene1);
                    IF (
    $json->mode == "2")  SetValue($Scene2);
                    IF (
    $json->mode == "3")  SetValue($Scene3);
                    IF (
    $json->mode == "4")  SetValue($Scene4);
                    IF (
    $json->mode == "5")  SetValue($Scene5);
                    IF (
    $json->mode == "6")  SetValue($Scene6);
                    IF (
    $json->mode == "7")  SetValue($Scene7);
                    IF (
    $json->mode == "8")  SetValue($Scene8);
                    IF (
    $json->mode == "9")  SetValue($Scene9);
                }
            }     
        exit;
        }
    11) Aktionsscripte an die Variablen hängen:
    PHP-Code:
    <?php
    // Milight_Brigthness setzen
    $parentID         =     IPS_GetObject($IPS_SELF);
    $parentID         =     $parentID['ParentID'];
    $Luma               =     ( $_IPS['VALUE']);
    $BulbValue         =   47287;
    RequestAction ($BulbValue"{\"state\":\"ON\",\"brightness\":\"$Luma\"}" );


    <?
    php
    //Milight_aus_Farbrad setzen
    $Chroma            =     35703;
    $BulbValue         =   47287;
    $r                 =     (($_IPS['VALUE'] >> 16) & 0xFF);
    $g                 =     (($_IPS['VALUE'] >> 8) & 0xFF);
    $b                 =     (($_IPS['VALUE'] >> 0) & 0xFF);
    RequestAction ($BulbValue"{\"state\":\"ON\",\"color\":{\"r\":$r,\"g\":$g,\"b\":$b}}"  );


    <?
    php
    //Milight_ColorTemp
    $White            =     ($_IPS['VALUE']);
    $BulbValue         =    47287;
    RequestAction ($BulbValue"{\"state\":\"ON\",\"color_temp\":\"$White\"}" );



    <?
    // Milight_State setzen
    $parentID         =     IPS_GetObject($IPS_SELF);
    $parentID         =     $parentID['ParentID'];
    $State            =     ($_IPS['VALUE']);
    $BulbValue         =   47287;
    if (
    $State == 0)    RequestAction ($BulbValue,  "{\"state\":\"OFF\"}"  );
    if (
    $State == 1)    RequestAction ($BulbValue,  "{\"state\":\"ON\"}" );
    if (
    $State == 2)    RequestAction ($BulbValue,  "{\"state\":\"ON\",\"command\":\"night_mode\"}" );   // Nachtlich
    if ($State == 3)    RequestAction ($BulbValue,  "{\"state\":\"ON\",\"command\":\"set_white\",\"brightness\":255 }" );   // Putzlicht


    <?php
    //Milight_Scene
    $Scene            =     ($_IPS['VALUE']);
    $BulbValue         =   47287;
    RequestAction ($BulbValue"{\"state\":\"ON\",\"mode\":\"$Scene\"}" );

    Ein Schönheitspreis werde ich damit nicht gewinnen, aber vielleicht nützt es Euch etwas.

    Bin noch am überlegen wie ich die Skalierung mache, entweder für jede Lampe/Bulb/LED-Streifen alles per Hand anlegen oder das Master-Script um eine Auswertung erweitern.

    Viel Spaß am Gerät

    kea
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	ipsvar.PNG 
Hits:	24 
Größe:	135.4 KB 
ID:	55305   Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	mqttexplorer.PNG 
Hits:	26 
Größe:	114.3 KB 
ID:	55306   Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	anlern.PNG 
Hits:	28 
Größe:	53.9 KB 
ID:	55307   Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	esp.PNG 
Hits:	22 
Größe:	70.4 KB 
ID:	55308  
    Geändert von kea (04.09.20 um 14:58 Uhr)
    Aktuelles IPS auf W2019 (virtualisiert auf Hyper-V), HomeMatic, 1Wire, EnOcean, diverse LAN-Komponenten usw. Aber immer noch im Lernmodus...

  7. #17
    Registriert seit
    Apr 2014
    Beiträge
    318

    Hi,
    sieht gut aus, ich hatte das damals dann zwischenzeitlich ähnlich gelöst, jedoch nur die Parameter übergeben, die ich persönlich nutze - ich werde deine Variante mal testen - vielen Dank fürs Teilen!

    Gruß

Ähnliche Themen

  1. Milight Modul
    Von janpeterdietz im Forum PHP-Module
    Antworten: 26
    Letzter Beitrag: 08.12.17, 12:25
  2. Milight Steuerung
    Von segelwinni im Forum Skripte, PHP, SQL
    Antworten: 0
    Letzter Beitrag: 05.11.17, 18:19
  3. Interessanter Blog über 1-Wire / ESP8266 uvm
    Von mastermind1 im Forum Off Topic
    Antworten: 3
    Letzter Beitrag: 27.06.17, 16:46
  4. Nextion-Display Anbindung über WiFi mit ESP8266
    Von elektroniktommy im Forum Projekt Showcase
    Antworten: 28
    Letzter Beitrag: 30.03.17, 21:24