H801Wifi günstige RGBWW Strip Ansteuerung mit WLAN

Begonnen von Glarios, 23 Oktober 2015, 13:26:12

Vorheriges Thema - Nächstes Thema

Glarios

Hallo zusammen,

ich habe mich hier jetzt ein wenig eingelesen und mir auch schon meine erste FHEM Hardware (Raspy 2, Milight Set) bestellt.

Habe gerade auf Alixepress den folgenden Controller gefunden, der sich sehr interessant an hört und dabei auch noch super preiswert ist. Lässt sich dieser über FHEM steuern?

http://www.aliexpress.com/item/rgb-strip-WiFi-controller-1-port-control-15-rgb-lights-communicate-with-Android-phone-to-dim/32301423622.html

AxelSchweiss

#1
Würde mich auch interessieren .... da ist ein ESP8266 drauf.
Da kann man bestimmt noch viel mehr mit "anstellen"  ::)
Der Aufbau sieht auch sehr generisch aus und ähnelt stark den Selbstbau ESP8266 LED Controllern.
Auf der Platine sind auch noch Lötpunkte mit RX TX beschriftet.

Bin aber kein E-Techniker daher wäre eine Meinung von einem Fachmann hilfreich.

herrmannj


Markus M.

Kurze Antwort: ja.
Lange Antwort: Es kann sein dass die Steuerung einem anderen Controller entspricht der bereits eingebunden ist, ansonsten muss erst das entsprechende Modul erweitert werden. Wenn du rausbekommst welche Apps kompatibel sind und ob sie auch einen der bereits von FHEM unterstützen Controller ansteuern können, weißt du es.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

slor

Fhem auf Raspberry Pi 4
CCU3 mit RaspberryMatic mit HMCCU an FHEM
HMCCU, Telegram, Conbee2 und Hue/Tradfri/Osram Lampen AQARA Sensoren, HomeConnect

herrmannj

Der hat was anderes drauf-ge-flashed.

Wenn ihr das wollt dann bildet am besten das Protokoll des LD382 nach (RGBW) - geht über wifilight.

Oder ihr snifft das Protokoll. Dann könnte ich das evtl. in Wifilight aufnehmen.

vg
joerg

kjmEjfu

Btw: ich versuche gerade an den Controller einen WW Stripe (mit 2 Pins) zusätzlich zu einem funktionierenden RGB anzuschließen. Aber irgendwie bin ich dafür zu doof. Jemand das schon gemacht und hat einen Tipp wie ich den dran packen muss, damit ich ihn über die App steuern kann?
Migriere derzeit zu Home Assistant

Maiks

#7
Hallo,

das Protokoll ist bekannt und sehr einfach :D

Habe mal die Infos als Text und Deutsch zusammengefasst, so wie ich sie im https://www.domoticz.com/forum/viewtopic.php?f=51&t=7957 Forum gefunden.


UDP Port Senden 30978
UDP Port Empfang (H801) 30977

Farben einstellen Geht nur bei Szene 00:

Alle werte direkt HEX

fbebRRGGBBWWKKMMMMMM00

fbeb      = RGB Auswahl Befehl
RR      = Rot  (00 bis FF)
GG      = Grün  (00 bis FF)
BB      = Blau  (00 bis FF)
WW      = Weiss1 (00 bis FF)
KK      = Weiss2 (00 bis FF)
MMMMMM   = MAC Adresse (MAc6:MAc5:Mac4)
00      = Abschluss Byte

Szenen Auswahl
fbecSS01000000MMMMMM00

fbeb      = Szenen Auswahl Befehl
SS      = Szene
01000000= Geschwindigkeiten und andere Einstellungen ?
MMMMMM   = MAC Adresse (MAc6:MAc5:Mac4)
00      = Abschluss Byte


Szenen:

00 = Statisch
01 = Fullcolor
02 = Monocrome shade
03 = Monocrome fade
04 = Monocrome light
05 = Mixedcolor shade
06 = Mixedcolor fade
07 = Mixedcolor light
08 = Red fade
09 = Green fade
10 = Blue fade
11 = Monocrome transition
12 = Mixed color transition
13 = Seven color transition


Mehrere Dimmer können gleichzeitig über Broadcast (xxx.xxx.xxx.255) angesprochen werden

einfach die MAC Adresse hinter der 00 anhängen und wieder mit 00 Abschließen
MMMMMM00

Habe 2 von den Dimmern bekommen :D

eldrik

@Maiks wenn du möchtest, dass hermannj schaut ob er mit den Informationen Wifilight erweitern kann, musst du ihn wahrscheinlich direkt anschreiben, es ist nicht gewiss, dass er hier weiter mitliest :)

Greetz
Eldrik

Maiks

@eldriks,

werde ich mal machen.

Ich habe es jetzt mal geschafft den H801 von FHEM aus zu schalten, allerdings nur hardcodiert :(

Maiks

So habe das mal selbst rudimentär in betrieb genommen :D

Da ich ein RGBWW stripe habe habe ich weiß umgebogen auf den Weiss1 Ausgang und nicht RGB, dimmen geht dort noch nicht :(

Hier meine 99_myUtils.pm

use IO::Socket;
sub H801b_Msg($$$)
{
my ($dest,$farbe,$mac)  = @_;

my $mac4 = hex(substr($mac,0,2));
my $mac5 = hex(substr($mac,2,2));
my $mac6 = hex(substr($mac,4,2));

my $RR = hex(substr($farbe,0,2));
my $GG = hex(substr($farbe,2,2));
my $BB = hex(substr($farbe,4,2));
my $WW = hex(substr($farbe,6,2));
my $KK = hex(substr($farbe,8,2));
my $sock = IO::Socket::INET->new(
    Proto    => 'udp',
    PeerPort => 30977,
    LocalPort => 30978,
    PeerAddr => $dest
) or die "Could not create socket: $!\n";
$sock->send("\xfb\xeb" . chr($RR) . chr($GG)  . chr($BB) . chr($WW) . chr($KK) . chr($mac4) . chr($mac5)  . chr($mac6) . "\x00") or die "Send error: $!\n";
Log 1, "H801b returned: send $RR $GG $BB $WW $KK $mac4 $mac5 $mac6";
return "send $RR $GG $BB $WW $KK $mac4 $mac5 $mac6";
}


und hier meine config



define DG_RGB_H801 readingsProxy DG_RGB_H801
attr DG_RGB_H801 userattr Light Light_map structexclude
attr DG_RGB_H801 Light AllLights
attr DG_RGB_H801 comment light with the ability to change RGB color
attr DG_RGB_H801 devStateIcon {Color::devStateIcon("RGB","rgb","rgb","state")}
attr DG_RGB_H801 group Color Lights
attr DG_RGB_H801 room Light
attr DG_RGB_H801 setFn {if( $CMD =~ m/on|off/ ) { $ARGS=$CMD;;$CMD = "state" } else {fhem ("setreading $DEVICE state on");;} if( $CMD =~ m/hue/ ) {my ($r,$g,$b) = Color::hsv2rgb($ARGS/360,1,1);; my $rgb = Color::rgb2hex( $r*255, $g*255, $b*255 );; fhem ("setreading $DEVICE rgb $rgb");;} if( $CMD =~ m/rgb/ && $ARGS =~ m/^(..)(..)(..)/ ) {my( $r, $g, $b ) = (hex($1)/255.0, hex($2)/255.0, hex($3)/255.0);; my ($h,$s,$v) = Color::rgb2hsv($r,$g,$b);; my $hue = int($h*359);;  fhem ("setreading $DEVICE hue $hue");;} fhem ("setreading $DEVICE $CMD $ARGS");;return undef;;}
attr DG_RGB_H801 setList on:noArg off:noArg rgb:colorpicker,RGB hue:colorpicker,HUE,0,1,359
attr DG_RGB_H801 webCmd hue:rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:rgb ffffff:on:off
define colorInit notify global:INITIALIZED {use Color;;Color_Initialize()}


define DG_RGB_H801_ntfy notify DG_RGB_H801 {if (ReadingsVal("DG_RGB_H801","state", 0) eq "on"){if (ReadingsVal("DG_RGB_H801","rgb", 0) eq "ffffff") { H801b_Msg("xxx.xxx.xxx.xxx" , "000000ff00" , "xxxxxx")} else { H801b_Msg("xxx.xxx.xxx.xxx" , ReadingsVal("DG_RGB_H801","rgb",0). "0000" , "xxxxxx")}}if (ReadingsVal("DG_RGB_H801","state", 0) eq "off"){ H801b_Msg("xxx.xxx.xxx.xxx" , "0000000000" , "xxxxxx")}}




Die xxx.xxx.xxx.xxx = IP Adresse des device
Die xxxxxx = MACadresse letzten 6 stellen

Das ganze funktioniert soweit ganz gut, muss / kann  natürlich noch optimiert werden

herrmannj

Hi, hab pm bekommen.

Das mit der MAC ist zu Wifilight nicht kompatibel. Was passiert wenn man die weg läßt und da 0x00 reinschreibt ?

vg
joerg

Markus M.

Hat das Ding jemand?
Geht Saturation mit gleichzeitig Farbe und Weiss?
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

Maiks

@herrmannj

habe ich gerade ausprobiert und das geht leider nicht, dann reagiert der Dimmer nicht.
Kann man die MAC adresse nicht irgendwo fest einstellen, als variabel ?

@Markus M.

verstehe deine frage nicht ganz, man kann auf jedem fall die 2 Weiss Kanäle gleichzeitig mit den Farben schalten und auch dimmen.



herrmannj

irgendwie geht immer. Passt aber eben nicht ins Konzept von WifiLight. Grundsätzlich soll WifiLight eben für alle Controller kompatibel belieben und das ist eine Extrawurst für die Dinger. Wäre schön wenn es einen anderen Weg gäbe.

Bei den sunricher ist es auch so - die haben auch sowas drin - ignorieren das aber wenn man die direkt auf der IP anspricht.

Woher bekommt man denn eigentlich die mac. steht die drauf ?

vg
joerg

RaspiLED

Hi,
die 801er spannen nach dem ersten Einschalten ein WLAN auf.
Die SID ist HCX_xxyyzz mit xxyyzz als letzte drei MAC Stellen.
Oder man schaut in der Fritzbox nach  ;) nachdem man die H801 mit der Android App in das eigene WLAN gehangen hat.
Gruß Arnd
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

herrmannj

Muss man denn in die App die MAC eingeben ? Ich vermute das gibt es ein discovery

vg
joerg

RaspiLED

Hi,
Davon gehe ich auch aus, habe aber den WLAN Verkehr bisher nicht mitgeschnitten und analysiert.
Meine beiden finde ich per nmap über deren MAC 18:FE:34:D6:59:FB und 18:FE:34:D6:5B:27. Insofern reicht ein Scan und Analyse auf die erste Hälfte. Allerdings gehe ich davon aus, das andere ESPs im Netz ebenfalls so starten könnten.
Gruß Arnd

Hier mal ein Auszug von nmap:

sudo nmap -A 192.168.178.118

Starting Nmap 6.47 ( http://nmap.org ) at 2016-02-09 22:28 CET
Nmap scan report for LampeTest.fritz.box (192.168.178.118)Host is up (0.040s latency).
All 1000 scanned ports on LampeTest.fritz.box (192.168.178.118) are closed
MAC Address: 18:FE:34:D6:5B:27 (Espressif)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: 2N Helios IP VoIP doorbell (95%), British Gas GS-Z3 data logger (95%), Grandstream GXP1105 VoIP phone (95%), LaSAT satellite receiver (95%), lwIP 1.4.0 lightweight TCP/IP stack (95%), Philips Hue Bridge (lwIP stack v1.4.0) (95%), Luminary Micro ARM Evaluation Kit (95%), m3 muvid IR 715-2 Internet radio receiver (95%), NOXON digital radio (95%), Roberts STREAM 202 Internet radio (95%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop

TRACEROUTE
HOP RTT      ADDRESS
1   40.49 ms LampeTest.fritz.box (192.168.178.118)

OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 121.67 seconds
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

RaspiLED

#18
Hallo,

so ich habe jetzt die FritzBox befragt und folgendes Ergebnis bekommen:

Verwendete wireshark Display Selektionen:
# Nur Pakete des Android Handys mit der App LEDDimmer
ip.src ==192.168.178.153
# Nur die relevanten versendeten UDP Pakete
ip.src ==192.168.178.153 && udp.port==30977
# Nur die Antworten der H801 selektieren
ip.src ==192.168.178.64
ip.src ==192.168.178.118

Selektierte Pakete (Doppelte nur einfach) siehe Dateianhang.

Zusammengefasst:
Es werden mehrfach UDP Anfragen an Port 30977 an 192.162.178.255 (Broadcast) mit Inhalt "fb:e9:00:14:00:00:00" versendet.

Daraufhin melden sich bei mir zwei H801 mehrfach mit der UDP Antwort an Port 30978 an 192.162.178.255 (Broadcast) mit den folgenden Inhalten:

fa:ea:00:00:fb:59:d6:00:0d:43:6f:6e:74:72:6f:6c:6c:65:72:5f:57:5a:de:2c:7a:84:d6:78:62:f6:8b:8e:f9:b5:00:40:08:00:00:00:38:00:00:00:90:f8:ff:3f:08:00:00:00:90:f8:ff:3f:09:6e:3d:00:44:c5:a7:66:a9:da:b9:cd:f4:ef:dc:e6:56:d9:74:74:48:01:77:f8:01:75:c4:2c:45:b1:17:aa:99:0d:85:3a:8a:ed:87:01:fa:53:3d:04:1b:5e:46:d8:e5:ba:0f:ff:fa:62:9b:14:66:cf:b1:8b:fb:55:31:c5:f8:25:bb:a7:b6:61:7e:b8:bd:a7:76:72:ea:9a:12:59:e5:6f:e7:36:e8:6f:ba:ef:b8:f4:cf:c4:d3:92:d9:2c:13:18:7d:de:3c:b3:f0:dc:44:b7:d0:65:d7:a9:28:c2:0b:59:13:fd:33:15:91:70:2e:b6:00:40:ce:7d:4b:80:1f:f4:ae:f8:ae:48:22:10:c4:b6:00:40:90:f8:ff:3f:20:fa:ff:3f:ff:ff:ff:ff:2e:b7:00:40:70:f8:ff:3f:08:00:00:00:a5:f7:f2:c3

fa:ea:00:00: ist der Header
fb:59:d6: sind die relevanten drei Tuppel der MAC
00:0d: ist ein Zwischenheader
43:6f:6e:74:72:6f:6c:6c:65:72:5f:57:5a: ist der Name des WLANs des H801 "Controller_WZ"

bzw.

fa:ea:00:00:27:5b:d6:00:0f:43:6f:6e:74:72:6f:6c:6c:65:72:5f:54:65:73:74:27:74:8e:f9:e6:b9:39:a3:f9:b5:00:40:08:00:00:00:38:00:00:00:90:f8:ff:3f:08:00:00:00:90:f8:ff:3f:9b:18:66:34:97:44:08:38:a1:dc:27:79:f0:ec:93:bc:c6:5f:70:df:37:c9:58:b9:ac:ca:d4:5d:04:d9:5d:82:97:7e:86:59:f3:97:fa:c0:c3:58:cb:9e:b1:cd:51:59:54:04:66:93:0d:ec:2a:be:c6:5a:c5:2e:50:38:82:d1:48:91:39:41:ad:8d:9c:18:d1:ad:c1:5e:84:e0:17:3d:c7:77:9f:e4:e3:82:aa:3d:f9:38:9f:21:bb:26:51:fb:7a:c7:c4:80:dd:3b:88:b6:c1:d5:a8:97:e6:0f:28:61:df:9f:1f:bd:12:c7:4f:b2:2e:b6:00:40:ce:7d:4b:80:1f:f4:ae:f8:ae:48:22:10:c4:b6:00:40:90:f8:ff:3f:20:fa:ff:3f:ff:ff:ff:ff:2e:b7:00:40:70:f8:ff:3f:08:00:00:00:a3:8b:c3:ff

fa:ea:00:00: ist der Header
27:5b:d6: sind die relevanten drei Tuppel der MAC
00:0f: ist ein Zwischenheader
43:6f:6e:74:72:6f:6c:6c:65:72:5f:54:65:73:74: ist der Name des WLANs des H801 "Controller_Test"

Rest ist mir noch unklar.

Gruß Arnd Baumgarten
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

herrmannj

ich frag mich noch ob sich der Aufwand lohnt.

In der Bastelecke entwickelt mprj gerade einen led controller auf 8266 Basis der danan auch die fades direkt im controller machen soll.

Vlt einfach abwarten, die Zeit bis dahin gut investieren und die fw die da rauskommt über den H801 flashen ?

Maiks hat ja eine basic Ansteuerung. parallel kann ich das ja im Auge behalten, ich mach gerade größere Anpassungen bei Wifilight. Vieleicht sehe ich einen Weg das discovery einfach mit reinzubekommen. Stand heute passt das so nicht so gut. Der Controller wird heute per IP definiert und dann per UDP / TCP beschickt. Das haut bei allen anderen auch hin.

vg
joerg

RaspiLED

Hi,

das mit dem Aufwand verstehe ich. Aber evtl. ist es ja in WifiLight möglich den 3er MAC Tuppel als Attribut zu speichern
und danach reduziert sich das Thema auf einen Versand eines UDP Pakets mit den RGBWW Werten.

Die Ersteinrichtung per Android App zum einfügen in das eigene WLAN ist doch okay.

Die andere Frage ist, ob die FUN Modes mit den Farbverläufen (kann der H801 ja auch direkt "abspielen") einzubauen noch notwendig ist.

Was meint Ihr?

Gruß Arnd
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

herrmannj

Hi,

ja, so in etwa. Die sollten dann jedoch ins define.

Die Farbverläufe, fades oder transitions, werden von WifiLight erzeugt. Alles was controller spezifisch ist hat da nix zu suchen :)

vg
joerg

Maiks

Also ohne die MAC geht gar nichts :(  habe ich mal weg gelassen oder mit 000000 aufgefüllt.  Dimmer reagiert dann nicht.

Ich habe das rudimentäre noch ein wenig erweitert mit dimmer für weiß und Farbwahl auf die 3 Grundfarben RGB + W.
Das Schalten mache ich mit meinem HM-DIS geht auch schon zu 90%. Allerdings ist das nicht sauber umgesetzt sondern eher zu viel notifys und dummys, die ich der Einfachheit halber verwendet habe.

Ich hänge es trotzdem noch mal an.

Todo: Farbe merken bei Schalter umschalten, Optimieren, Farbdimmer und nicht nur weiss uvm....


define DG_RGB_H801 readingsProxy DG_RGB_H801
attr DG_RGB_H801 userattr Light Light_map structexclude
attr DG_RGB_H801 Light AllLights
attr DG_RGB_H801 comment light with the ability to change RGB color
attr DG_RGB_H801 devStateIcon {Color::devStateIcon("RGB","rgb","rgb","state")}
attr DG_RGB_H801 group Color Lights
attr DG_RGB_H801 room Light
attr DG_RGB_H801 setFn {if( $CMD =~ m/on|off/ ) { $ARGS=$CMD;;$CMD = "state" } else {fhem ("setreading $DEVICE state on");;} if( $CMD =~ m/hue/ ) {my ($r,$g,$b) = Color::hsv2rgb($ARGS/360,1,1);; my $rgb = Color::rgb2hex( $r*255, $g*255, $b*255 );; fhem ("setreading $DEVICE rgb $rgb");;} if( $CMD =~ m/rgb/ && $ARGS =~ m/^(..)(..)(..)/ ) {my( $r, $g, $b ) = (hex($1)/255.0, hex($2)/255.0, hex($3)/255.0);; my ($h,$s,$v) = Color::rgb2hsv($r,$g,$b);; my $hue = int($h*359);;  fhem ("setreading $DEVICE hue $hue");;} fhem ("setreading $DEVICE $CMD $ARGS");;return undef;;}
attr DG_RGB_H801 setList on:noArg off:noArg rgb:colorpicker,RGB hue:colorpicker,HUE,0,1,359
attr DG_RGB_H801 webCmd hue:rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:rgb ffffff:on:off
define colorInit notify global:INITIALIZED {use Color;;Color_Initialize()}

define DG_RGB_H801_Dimmer dummy
attr DG_RGB_H801_Dimmer room Light
attr DG_RGB_H801_Dimmer setList state:slider,0,1,255
attr DG_RGB_H801_Dimmer webCmd state
define DG_RGB_H801_ntfy notify DG_RGB_H801 {if (ReadingsVal("DG_RGB_H801","state", 0) eq "on"){if (ReadingsVal("DG_RGB_H801","rgb", 0) eq "ffffff") { H801b_Msg("192.168.0.58" , "000000". (sprintf "%x",ReadingsVal("DG_RGB_H801_Dimmer","state",0)) ."00" , "d959d6")} else { H801b_Msg("192.168.0.58" , ReadingsVal("DG_RGB_H801","rgb",0). "0000" , "d959d6")}}if (ReadingsVal("DG_RGB_H801","state", 0) eq "off"){ H801b_Msg("192.168.0.58" , "0000000000" , "d959d6")}}
attr DG_RGB_H801_ntfy room Light
define DG_RGB_H801_Dimmer_ntfy notify DG_RGB_H801_Dimmer {if (ReadingsVal("DG_RGB_H801","state", 0) eq "on"){if (ReadingsVal("DG_RGB_H801","rgb", 0) eq "ffffff") { H801b_Msg("192.168.0.58" , "000000". (sprintf "%x",ReadingsVal("DG_RGB_H801_Dimmer","state",0)) ."00" , "d959d6")}}}
attr DG_RGB_H801_Dimmer_ntfy room Light
define DG_RGB_H801_on notify VCCU_Btn1 {if (ReadingsVal("VCCU_Btn1","trig_SW_DIS_DG_Btn_20",0) eq "short") {fhem("set DG_RGB_H801 on")}}
attr DG_RGB_H801_on room Light
define DG_RGB_H801_off notify VCCU_Btn2 {if (ReadingsVal("VCCU_Btn2","trig_SW_DIS_DG_Btn_19",0) eq "short"){ H801b_Msg("192.168.0.58" , "0000000000" , "d959d6")}}
attr DG_RGB_H801_off room Light
define DG_RGB_H801_dimDown notify VCCU_Btn2 {my $Wert=ReadingsVal("DG_RGB_H801_Dimmer","state",0);; {if (ReadingsVal("VCCU_Btn2","trig_SW_DIS_DG_Btn_19",0) eq "long") { if ($Wert >= 8) {$Wert = $Wert-10;; fhem("set DG_RGB_H801_Dimmer $Wert");;}}}}
attr DG_RGB_H801_dimDown room Light
define DG_RGB_H801_dimUp notify VCCU_Btn1 {my $Wert=ReadingsVal("DG_RGB_H801_Dimmer","state",0);; {if (ReadingsVal("VCCU_Btn1","trig_SW_DIS_DG_Btn_20",0) eq "long") { if ($Wert <= 249) {$Wert = $Wert+10;; fhem("set DG_RGB_H801_Dimmer $Wert");;}}}}
attr DG_RGB_H801_dimUp room Light
define DG_RGB_H801_Color dummy
attr DG_RGB_H801_Color room Light
define DG_RGB_H801_colorUp notify VCCU_Btn3 {my $Wert=ReadingsVal("DG_RGB_H801_Color","state",0);; {if (ReadingsVal("VCCU_Btn3","trig_SW_DIS_DG_Btn_18",0) eq "short") { if ($Wert <= 5) {$Wert = $Wert+1;; fhem("set DG_RGB_H801_Color $Wert");;}}}}
attr DG_RGB_H801_colorUp room Light
define DG_RGB_H801_colorDown notify VCCU_Btn4 {my $Wert=ReadingsVal("DG_RGB_H801_Color","state",0);; {if (ReadingsVal("VCCU_Btn4","trig_SW_DIS_DG_Btn_17",0) eq "short") { if ($Wert >= 1) {$Wert = $Wert-1;; fhem("set DG_RGB_H801_Color $Wert");;}}}}
attr DG_RGB_H801_colorDown room Light
define DG_RGB_H801_colorChange notify DG_RGB_H801_Color {if (ReadingsVal("DG_RGB_H801","state", 0) eq "on"){if (ReadingsVal("DG_RGB_H801_Color","state", 0) eq "0") {H801b_Msg("192.168.0.58" , "000000". (sprintf "%x",ReadingsVal("DG_RGB_H801_Dimmer","state",0)) ."00" , "d959d6")}}}
attr DG_RGB_H801_colorChange room Light
define DG_RGB_H801_colorChange1 notify DG_RGB_H801_Color {if (ReadingsVal("DG_RGB_H801","state", 0) eq "on"){if (ReadingsVal("DG_RGB_H801_Color","state", 0) eq "2") {H801b_Msg("192.168.0.58" , "ff00000000" , "d959d6")}}}
attr DG_RGB_H801_colorChange1 room Light
define DG_RGB_H801_colorChange2 notify DG_RGB_H801_Color {if (ReadingsVal("DG_RGB_H801","state", 0) eq "on"){if (ReadingsVal("DG_RGB_H801_Color","state", 0) eq "4") {H801b_Msg("192.168.0.58" , "00ff000000" , "d959d6")}}}
attr DG_RGB_H801_colorChange2 room Light
define DG_RGB_H801_colorChange3 notify DG_RGB_H801_Color {if (ReadingsVal("DG_RGB_H801","state", 0) eq "on"){if (ReadingsVal("DG_RGB_H801_Color","state", 0) eq "6") {H801b_Msg("192.168.0.58" , "0000ff0000" , "d959d6")}}}
attr DG_RGB_H801_colorChange3 room Light


und die myutils



use IO::Socket;
sub H801b_Msg($$$)
{
my ($dest,$farbe,$mac)  = @_;

my $mac4 = hex(substr($mac,0,2));
my $mac5 = hex(substr($mac,2,2));
my $mac6 = hex(substr($mac,4,2));

my $Laenge = length($farbe);
my $RR = hex(substr($farbe,0,2));
my $GG = hex(substr($farbe,2,2));
my $BB = hex(substr($farbe,4,2));
my $WW = "00";
my $KK = "00";
if (length($farbe) == 10) {$WW = hex(substr($farbe,6,2));
$KK = hex(substr($farbe,8,2));}
elsif (length($farbe) == 9) {$WW = hex(substr($farbe,6,1));
$KK = hex(substr($farbe,7,2));}

my $sock = IO::Socket::INET->new(
    Proto    => 'udp',
    PeerPort => 30977,
    LocalPort => 30978,
    PeerAddr => $dest
) or die "Could not create socket: $!\n";
$sock->send("\xfb\xeb" . chr($RR) . chr($GG)  . chr($BB) . chr($WW) . chr($KK) . chr($mac4) . chr($mac5)  . chr($mac6) . "\x00") or die "Send error: $!\n";
Log 1, "H801b returned: send $RR $GG $BB $WW $KK $mac4 $mac5 $mac6";
return "send $RR $GG $BB $WW $KK $mac4 $mac5 $mac6";
}




Wie schon geagt, nicht schön tut aber erst mal, Verbesserungsvorschläge willkommen :D

Hier noch ein Bild


Markus M.

#23
Zitat von: Maiks am 10 Februar 2016, 21:33:58Wie schon geagt, nicht schön tut aber erst mal, Verbesserungsvorschläge willkommen :D

Wie wär's mit einem Modul? :)
Im Anhang ist eine Version von WifiLight die NUR mit dem HX801 Modul umgehen kann, kannst du parallel nutzen.
HSV sollte ganz normal funktionieren, mit der Besonderheit dass du zusätzlich noch CT setzen kannst, das dann die Farbtemperatur des Weisskanals mischt. W1=warm, W2=kalt.
Über set RGBWW lassen sich die einzelnen Kanäle direkt ansteuern, ohne dass eine HSV Umrechnung erfolgt.

define rgbww_controller WifiLight2 RGBWW HX801:192.168.178.123:ABCDEF

Markus


neue Version weiter unten im Thread
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

herrmannj


Maiks

Super, THX

Werde ich mir mal anschauen.

Hat schon jemand einen weg gefunden den HOTSPOT modus auszuschalten ?

weekeda

Hallo,

zuerst vielen Dank für die Arbeit den H801 in FHEM zu integrieren. Probiere das Modul von Markus gerade aus aber habe Probleme es zum laufen zu bekommen.
Mit der App LEDDimmer kann ich die HX801 steuern. Leider bekomme ich keine Steuerung des H801 über FHEM zustande habe das Modul wie angegeben definiert(angepasst an mein Gerät MAC und IP):

define rgbww_controller WifiLight2 RGBWW HX801:192.168.178.38:18FE34D65C61

Das Modul (32_WiFiLight2.pm) befindet sich im Ordner /opt/fhem/FHEM.
Leider empfängt der H801 keine Signale die ich von fhem aus verschicke.

Vielleicht kann mir jemand helfen der den  H801 zum laufen gebracht hat würde mich sehr freuen.

Viele Grüße
weekeda

RaspiLED

#27
Hi weekeda,


also Dein Post hat mich endlich dazu gebracht, das Modul auszuprobieren.
Nach vielen Debugversuchen mit Verbose Level 5 ist meine finale Definition jetzt diese:


define H801_Test WifiLight2 RGBWW HX801:[IP]:00[MAC456]


Dabei ist die [IP] z.B. 192.168.1.100 und die [MAC456] nur die letzten drei MAC-Tuppel z.B. D65C61


Also sollte bei Dir analog folgendes funktionieren:
define rgbww_controller WifiLight2 RGBWW HX801:192.168.178.38:00D65C61

Danach wird bei Verwendung von RGBWW die Farben korrekt gesetzt.
set rgbww_controller RGBWW 00FF000000 -> grün

Weitere Tests: set rgb funktioniert hingegen nicht, set off und set saturation aber schon!

Ausserdem ist der UDP Request eigentlich zu lang. Er sendet die Mac erst an der zweiten möglichen Stelle. Das klappt zwar, aber der Request tut so, als ob er auch noch die MAC 00:00:00 (plus Trenner 00) schalten will ;-)

Insgesamt muss also noch etwas Arbeit in das Modul gesteckt werden, aber ich bin dankbar für den Anfang von Markus M. DANKE!


Gruß Arnd
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

weekeda

Vielen Dank Arnd hat auf Anhieb funktioniert! :) Gute Anleitung zum Vorgehen.

Jetzt werd ich erstmal selbst ein wenig testen.
Bei mir funktioniert set rgb über die Dropdown Auswahl im rgbww_controller.
dimdown/dimup will irgendwie nicht richtig funktionieren und so ganz durchschaut habe ich es noch nicht.

Gruß
weekeda

Markus M.

Probiert mal die hier - ohne die zusätzliche 00
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

RaspiLED

Hallo,


ich habe mir die letzte Version von Markus noch einmal angeschaut und noch etwas dran geschraubt.


Sie hat immer noch einen Fehler, der bei mir dazu führt, dass ein neu eingeschaltetets H801 Modul erstmal nicht über RGB oder RGBWW verändert werden kann. Erst nachdem ich in der Android App einmalig ein Farbe gesetzt habe, läuft die Steuerung auch aus FHEM heraus rund. Ansonsten läuft Sie bei mir. Zusätzlich spricht diese Version ein wenig mehr mit einem, sofern man beim Define Fehler macht.


Viel Spaß beim testen!


Gruß Arnd
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Markus M.

Zitat von: ArndBaumgarten am 29 Mai 2016, 01:06:08Sie hat immer noch einen Fehler, der bei mir dazu führt, dass ein neu eingeschaltetets H801 Modul erstmal nicht über RGB oder RGBWW verändert werden kann. Erst nachdem ich in der Android App einmalig ein Farbe gesetzt habe, läuft die Steuerung auch aus FHEM heraus rund.

Kannst das genauer beschreiben?

Ansonsten muss nur noch das hier in Zeile 665, sonst gibt's beim ersten Test nen Crash:  $hueFrom = 0 if(!$hueFrom);
  $satFrom = 100 if(!$satFrom);
  $valFrom = 0 if(!$valFrom);
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

RaspiLED

Moin,
Ja klar! Also die Android App stellt beim ersten Kontakt mit dem H801 den Modus ein. Du hast das ha auch schon in der H801_on Routine vorgesehen. Leider - siehe Log in der PM - führt dieser Befehl zu einem Loglevel 1 ... Send ERROR. Wenn ich aber mit der Android App den H801 einmal ansteuere, läuft das FHEM Modul wunderbar ;-)

Gruß Arnd


FHEM auf Raspberry Pi, CUL, Signalduino, Intertechno, WifiLight2 mit H801 - ESP8266, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Tom_S

würde auch ein bisschen mitspielen. Mit welcher App kann ich das Teil steuern. Eine LEDDimmer kann ich nicht finden.

LG
Tom_S
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

RaspiLED

Hi,
die App gibt es nur auf Android.

https://drive.google.com/open?id=0B1gzqyV6hfOgSTV1cERBUndCU28

Gruß Arnd


FHEM auf Raspberry Pi 2, CUL, Signalduino, Intertechno, WifiLight mit H801 - ESP8266, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Tom_S

danke, habe es gefunden.
In meinem Wlan habe ich ihn. Das hat schon mal funktioniert. Aber weitere Einstellmölichkeiten wie feste IP scheint es nicht zu geben. oder?

mfg
Tom_S
RaspberryPI2 + pilight, 3x AVR-NetIO, LW12, LW12HX, LW12FC; MAX-Lan, ESP8266, Arduino, H801, Neopixel, Solaredge, Modbus

RaspiLED

Hi,
Grundsätzlich ist das Device recht einfach gehalten. Es nutzt UDP Pakete mit einfachem Aufbau, die per APP an die Braodcast Adresse 192.168.xxx.255 über die Drei letzten MAC Tupel an das Gerät gehen. Deswegen ist die IP der APP auch egal. Der Raspberry kann nicht so einfach an eine Broadcast senden, daher nutzen wir die richtige IP mit UDP im FHEM Modul oder im Script in der bash.
Gruß Arnd


FHEM auf Raspberry Pi 2, CUL, Signalduino, Intertechno, WifiLight mit H801 - ESP8266, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

gNomeX

Hallo.
erst einmal vielen dank für das Modul.

Ich versuche das devStateIcon zu ändern  mit
devStateIcon {Color::devStateIcon($name,"rgb","rgb","state")}
aber es bleibt die normale Glühbirne


evilknivel

Hi zusammen,

hier gibt es ach eine super Varainte per MQTT oder direkt per HUE Protokoll.

Das mit dem HUE Protokoll sollte doch direkt in FHEM laufen oder?

https://github.com/open-homeautomation/h801

dev0

Theoretisch könnte beides funktionieren. Probiere es aus und berichte hier.

chrisko

Hallo Zusamen,
hat es jemand erfolgreich geschafft?
Ich konnte es zwar fehlerlos flashen, kann allerdings nichts ansteuern.
Probiert habe ich es über MQTT und es scheint auf mein abgesetztes publish nicht zu reagieren.
Kennt jemand Abhilfe?

Vielen Dank und viele Grüße,
Chris

dev0

Zitat von: chrisko am 24 November 2017, 01:37:54
Kennt jemand Abhilfe?
Serielle Ausgaben anzeigen lassen und ggf. selbst Debug Code einbauen.
Btw: Warum fragst Du hier und nicht den Autor?