Milight via MQTT (war: Modul für Sidoh-Bridge, jetzt: MQTT2)

Begonnen von Beta-User, 12 April 2018, 23:23:41

Vorheriges Thema - Nächstes Thema

TL60

Hallo auch von mir, wenn auch (leicht) verspätet :-[ die Rückmeldung, (siehe Antworten 48 - 54) das nun alles korrekt funktioniert. Das Problem saß , wie in 90% aller Fälle vor dem Computer ;). Man sollte schon in der Lage sein korrekt (die MQTT Topics) abzuschreiben und nicht irgendetwas hinein zu interpretieren was gar nicht da ist.
Nachdem ich die Topics einfach 1:1 aus dem Wiki der Sidoh-Bridge übernommen habe ging plötzlich alles.
Danke für eure Unterstützung

Beta-User

Danke für eure positiven Rückmeldungen.
@DasQ: warum die Titelangabenm? Die Spider sind doch eigentlich selbsterklärend...
Und auf widgetoverride kann man verzichten, wenn man es gleich in die setList packt.
Wenn du das noch optimieren könntest, würde ich es dann gerne ins wiki über nehmen, ist sicher hilfreich für die, die "das volle Programm" haben wollen ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

DasQ

Thx für den tip ;) kommt umgehend auf die ToDo

Ich kämpf noch immer mehr mit mir selbst ... bin halt ein haptischer Mensch und muss meine Fehler hart begreifen  ::)

Im augenblick geht's mir mehr darum, zu begreifen warum ich an der fhem.cfg nicht editieren soll/darf.
Da zerhagelts mir regelmäßig die Funktionalität der slider oder gar mehr.

Und ich Fummel doch so gern an Text Dateien mit meim sublime. Bin am überlegen das ganze in ne Datenbank auszulagern, gesetzt den Fall die reagiert nicht so sensibel für die die textdatei.

Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

Beta-User

Cfg-Editieren ist halt schlicht unnötig... Macht tendenziell nur Ärger und verhindert eine Syntax Prüfung, die man mit raw-Definitionen gratis bekommt. (Siehe Import von code sniplets im Wiki, da kann man dann Kate oder notepad++ nehmen, editieren und dann "alles auf einen Rutsch" machen.)

ConfigDB hat zusätzlich den Vorteil, dass man eine Versionierung gratis dazu bekommt. Man muss halt u.U. "anders suchen" - list statt Ctrl+f....
Dann warte ich mal, was kommt.

Sch... Autokorrektur am Handy!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Heimweh

#64
Hab das alles mal ausprobiert... Funktioniert super!

Kann mir jemand sagen wie ich jetzt "von Hand" einen Befehl absetzen kann? Also wie ein "SET" Commando?

Edit: Ich meine nicht nur an und aus, sondern wie geht ein Befehl um z.B. Parameter wie Helligkeit usw. zu steuern?


Es dreht sich um folgendes Gerät:


Internals:
   DEVICETOPIC Spiegel
   IODev      MQTTServer
   LASTInputDev MQTTServer
   MQTTServer_MSGCNT 466
   MQTTServer_TIME 2018-11-17 23:35:14
   MSGCNT     466
   NAME       Spiegel
   NR         1580
   STATE      on
   TYPE       MQTT2_DEVICE
   READINGS:
     2018-11-17 23:35:14   brightness      71
     2018-11-17 23:35:14   bulb_mode       white
     2018-11-17 23:35:14   color_b         255
     2018-11-17 23:35:14   color_g         255
     2018-11-17 23:35:14   color_r         255
     2018-11-17 23:35:14   color_temp      357
     2018-11-17 23:32:14   command         night_mode
     2018-11-17 23:29:31   device_id       12886
     2018-11-17 23:35:14   effect          white_mode
     2018-11-17 23:26:39   group_id        2
     2018-11-17 23:32:39   hue             270
     2018-11-17 23:35:14   level           28
     2018-11-17 23:28:12   mode            6
     2018-11-17 23:32:39   saturation      0
     2018-11-17 23:35:14   state           ON
     2018-11-17 23:35:14   status          ON
Attributes:
   IODev      MQTTServer
   eventMap   /on:on/off:off/ON:on/OFF:off/
   icon       light_control
   readingList milight_hub_317564:milight/0x3256/rgb_cct/2:.* { json2nameValue($EVENT) }
milight_hub_317564:milight/states/0x3256/rgb_cct/2:.* { json2nameValue($EVENT) }
milight_hub_317564:milight/states/0x3256/rgb_cct/2:.* { json2nameValue($EVENT) }
   room       MQTT
   setList    on milight/0x3256/rgb_cct/2 {"status":"ON"}\\
off milight/0x3256/rgb_cct/2 {"status":"OFF"}\\
level:colorpicker,BRI,0,1,100 milight/0x3256/rgb_cct/2 {"$EVTPART0":"$EVTPART1"}\\
hue:colorpicker,HUE,0,1,359 milight/0x3256/rgb_cct/2 {"$EVTPART0":"$EVTPART1"}\\
command milight/0x3256/rgb_cct/2 {"$EVTPART0":"$EVTPART1"}\\
brightness milight/0x3256/rgb_cct/2 {"$EVTPART0":"$EVTPART1"}\\
next_mode milight/0x3256/rgb_cct/2 {"$EVTPART0":"$EVTPART1"}\\
mode_speed_up milight/0x3256/rgb_cct/2 {"$EVTPART0":"$EVTPART1"}\\
mode_speed_down milight/0x3256/rgb_cct/2 {"$EVTPART0":"$EVTPART1"}\\
saturation milight/0x3256/rgb_cct/2 {"$EVTPART0":"$EVTPART1"}\\
color_temp milight/0x3256/rgb_cct/2 {"$EVTPART0":"$EVTPART1"}
   verbose    5
   webCmd     command:brightness:saturation:color_temp
   webCmdLabel command:brightness:saturation:color_temp
   widgetOverride command:uzsuSelectRadio hue:colorpicker,HUE,0,1,359 color_temp:colorpicker,CT,153,1,357 brightness:colorpicker,BRI,0,1,255 saturation:colorpicker,BRI,0,1,100

RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

DasQ

Zitat von: Beta-User am 09 November 2018, 18:55:48
Danke für eure positiven Rückmeldungen.
@DasQ: warum die Titelangabenm?

Weil ich anders die 4 slider (noch) nicht sortiert bekomm. Bzw die Zeilenumbrüche so nutz. Aber du hast schon recht, igentlich doppelt gemoppelt.
Und den slider für die Farbsättigung hab ich eigentlich zweckentfremdet. Aber dafür hab ich schon einen Lösungsansatz im Wiki gefunden. Den aslider.

Ich Tanz gerade auf zuvielen Hochzeiten gleichzeitig. Gestern hab ich config und log auf mariaDB umgestellt. Zeitgleich Versuch ich den zahlreichen Bugs des ESPEasy für den ESP32 auf die Schliche zu kommen ... aber das ist nenn eigenes Ding mit nem Riesen bugreport.

Anbei mein aktuelles RAW Schnipsel. Ohne override

defmod Licht_Wz_all MQTT2_DEVICE
attr Licht_Wz_all IODev MQTT2_Broker
attr Licht_Wz_all eventMap /set_white:Weiss/night_mode:Nacht/white_mode:white/on:on/off:off/ON:on/OFF:off/next_mode:Mode/mode_speed_up:Up/mode_speed_down:Down/
attr Licht_Wz_all group Licht
attr Licht_Wz_all icon light_control
attr Licht_Wz_all readingList milight_hub_10693013:milight/0x5D02/rgb_cct/0:.* { json2nameValue($EVENT) }\
milight_hub_10693013:milight/updates/0x5D02/rgb_cct/0:.* { json2nameValue($EVENT) }\
milight_hub_10693013:milight/states/0x5D02/rgb_cct/0:.* { json2nameValue($EVENT) }\

attr Licht_Wz_all room Wohnzimmer
attr Licht_Wz_all setList on milight/0x5D02/rgb_cct/0 {"status":"ON"}\
off milight/0x5D02/rgb_cct/0 {"status":"OFF"}\
level milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
hue:colorpicker,HUE,0,1,359 milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
command:uzsuSelectRadio,Weiss,Nacht,Mode,Up,Down milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
brightness:colorpicker,BRI,0,1,255 milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
next_mode milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
mode_speed_up milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
mode_speed_down milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
saturation:colorpicker,BRI,0,1,100 milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
color_temp:colorpicker,CT,153,1,370 milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
device_id milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
effect milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
mode milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
commands milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}
attr Licht_Wz_all sortby 1
attr Licht_Wz_all webCmd command:brightness:saturation:color_temp:hue
attr Licht_Wz_all webCmdLabel command\
:brightness:saturation\
:color_temp:hue

Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

Beta-User

#66
@DasQ: Danke für den Code, habe das jetzt mal so ins wiki gepackt. Könntest du noch einen Screenshot liefern?
Das muß jetzt noch mit Beispielen für "bridgeRegexp" versehen werden, aber dazu brauche ich auch etwas mehr Zeit - auch zu viele Hochzeiten... Feedback oder Mithilfe: gerne gesehen...



@Heimweh: Kannst du mal erläutern, um was es genau geht? Z.B.
set Spiegel level 33 müßte direkt in der Eingabezeile funktionieren.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Heimweh

#67
Zitat@Heimweh: Kannst du mal erläutern, um was es genau geht? Z.B.
set Spiegel level 33 müßte direkt in der Eingabezeile funktionieren.

Hallo Beta-User,

das hat geklappt. Danke. Ja genau darum ging es. Ich versuche gerade, dass mit Alexa zu vertütteln.
Also ich möchte mit "Alexa schalte den Spiegel auf 50%" die Helligkeit (set brightness 128) steuern, oder 100% (brightness 255). Habe
schon mit Lichtszenen gespielt, allerdings sind dann da die Werte fix.

Dazu kommt wenn ich sage "Spiegel aus", dann lässt sie sich nicht über einen neuen Helligkeitswert hochziehen sondern benötigt vorher wieder ein "Spiegel an"

Hat da schon jemand Erfahrung? Im Moment sagt Alexa das Gerät würde nicht unterstützt....

RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

DasQ

nochmals ein paar kleine änderungen und bereinigungen
:o is aber immer noch nicht so wie ich das eigentlich haben will. aber zuerst gehts mal ums verstehen und dann um`s hübsch

defmod Licht_Wz_all MQTT2_DEVICE
attr Licht_Wz_all IODev MQTT2_Broker
attr Licht_Wz_all eventMap /set_white:Weiss/night_mode:Nacht/white_mode:white/on:on/off:off/ON:on/OFF:off/next_mode:Mode/mode_speed_up:Up/mode_speed_down:Down/
attr Licht_Wz_all group Licht
attr Licht_Wz_all icon light_control
attr Licht_Wz_all readingList milight_hub_10693013:milight/0x5D02/rgb_cct/0:.* { json2nameValue($EVENT) }\
milight_hub_10693013:milight/updates/0x5D02/rgb_cct/0:.* { json2nameValue($EVENT) }\
milight_hub_10693013:milight/states/0x5D02/rgb_cct/0:.* { json2nameValue($EVENT) }\

attr Licht_Wz_all room Wohnzimmer
attr Licht_Wz_all setList on milight/0x5D02/rgb_cct/0 {"status":"ON"}\
off milight/0x5D02/rgb_cct/0 {"status":"OFF"}\
hue:colorpicker,HUE,0,1,359 milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
command:uzsuSelectRadio,Weiss,Nacht,Up,Down milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
brightness:colorpicker,BRI,0,1,255 milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
mode_speed_up milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
mode_speed_down milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
saturation:colorpicker,BRI,0,1,100 milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
color_temp:colorpicker,CT,153,1,370 milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\
mode:select,0,1,2,3,4,5,6,7,8 milight/0x5D02/rgb_cct/0 {"$EVTPART0":"$EVTPART1"}\

attr Licht_Wz_all sortby 1
attr Licht_Wz_all webCmd command:mode:brightness:saturation:color_temp:hue
attr Licht_Wz_all webCmdLabel command:mode\
:brightness:saturation\
:color_temp:hue

setstate Licht_Wz_all off
setstate Licht_Wz_all 2018-11-18 21:08:24 brightness 255
setstate Licht_Wz_all 2018-11-18 21:21:44 color_temp 314
setstate Licht_Wz_all 2018-11-18 21:20:51 command night_mode
setstate Licht_Wz_all 2018-11-18 21:11:13 hue 313
setstate Licht_Wz_all 2018-11-18 21:08:28 mode 4
setstate Licht_Wz_all 2018-11-18 21:11:13 saturation 85
setstate Licht_Wz_all 2018-11-18 22:44:49 state OFF

Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

Beta-User

Zitat von: Heimweh am 19 November 2018, 09:25:11
Hat da schon jemand Erfahrung? Im Moment sagt Alexa das Gerät würde nicht unterstützt....
Na ja, ich würde annehmen, dass das geht, jedenfalls wenn man dann ausdrücklich eine "on" zur brightness in den json packt.Siehe zigbee-Beispiel im Wiki (muß ggf. geringfügig angepaßt werden):brightness:colorpicker,BRI,0,15,255 zigbee2mqtt/Kueche_Durchgang_A2/set {"state":"on","$EVTPART0":"$EVTPART1"}
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Heimweh

Zitat von: Beta-User am 19 November 2018, 11:44:22
Na ja, ich würde annehmen, dass das geht, jedenfalls wenn man dann ausdrücklich eine "on" zur brightness in den json packt.Siehe zigbee-Beispiel im Wiki (muß ggf. geringfügig angepaßt werden):brightness:colorpicker,BRI,0,15,255 zigbee2mqtt/Kueche_Durchgang_A2/set {"state":"on","$EVTPART0":"$EVTPART1"}

Ok das muss ich testen. Jetzt habe ich es mal soweit das Alexa nicht mehr meckert wenn ich "Schalte Spiegel auf 50%" sage. Sie sagt ok,
aber es tut sich nichts. Denke mal es liegt am homebridgemapping, das habe ich noch nicht ganz verstanden. So sieht es derzeit aus:


homebridgeMapping Brightness=Spiegel:brightness


Habe einen Beitrag gefunden wo von einem pct reading und ein Kommando die Rede ist... Leider steck ich noch nicht so tief
drin in der Materie....
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

Beta-User

#71
So, nachdem ich die letzte Zeit etwas mit den neuen template-Funktionalitäten rumgespielt habe, anbei ein "erster Wurf" zu dem Thema im Milight-Kontext.

Wäre schön, wenn die Mutigen unter Euch da mittesten (und vor allem verbessern) würden!

- Datei nach ...FHEM/lib/AttrTemplate kopieren (Rechte richtig setzen)
- { AttrTemplate_Initialize() } ausführen

Für Mutige: Das bridge-Template über das heutige Bridge-Device anwenden.
Für weniger Mutige: bei aktiviertem Autocreate am Server-Device irgendeine Phantasie-Lampe über das Webinterfache des ESP schalten, das dann angelegte Gerät mit dem bridge-template konfigurieren.

Danach sollten alle Schaltvorgänge mit einer bisher unbekannten ID zu einem neuen Gerät führen, leider nur zu einem für alle 5 Endnummern. Im Moment gehe ich davon aus, dass  es das einfachste wäre, das template für dieses erste Gerät dann so zu bauen, dass man erst eine Art Basisstruktur bekommt (5 Geräte), und auf die dann wieder jeweils das passende weitere Einzeltemplate anwendet.

Wunsch wäre, getestete Rückmeldungen zu bekommen von allen Varianten. Wer eigene templates anlegen will, einfach die Datei editieren und nach der Änderung dann wieder "{ AttrTemplate_Initialize() }" ausführen. Geht nur beim Bridge-Gerät nicht sooo gut, da die readingList gelöscht wird und daher nicht mehr ausgewertet werden kann.

Als Bulb steht im Moment nur die rgbw-Variante drin, wobei tendenziell mehr Anzeige- und Steuerungselemente drin sind wie man eigentlich braucht. Motto: löschen, was nicht gewünscht/benötigt wird ist für den normalen User einfacher, als was dazu zu machen...

Im Ergebnis kann das dann gerne Eingang finden in das allgemeine mqtt2.template.

Wie gesagt: Feedback ist willkommen, das läuft auch nach meinem Eindruck noch nicht in allen Belangen ganz rund...

Viel Freude damit,

Beta-User

EDIT: template entfernt (=>svn)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Ollo65

Hallo,

ich versuche schon seit einiger Zeit ein Homebridge mapping für meine Lampen hinzubekommen.
Vielleicht kann mir ja jemand einen Tipp geben. 
Es funktioniert leider nur an/aus und der Farbwechsel über HomeKit .
Ich habe MiLight RGBW, RGB-CCT und CCT Bulbs und Stripes im Einsatz.
In FHEM funktioniert soweit alles.
Hat es von euch jemand erfolgreich geschafft, die Lampen über HomeKit zu steuern

Gr. Ollo

Beta-User

@all:

Habe die templates eben mit dem Zusatz "experimental" für alle ins svn geschoben. Feedback dazu (betr. den MiLight-Teil) gerne in diesem Thread.

Gruß, Beta-User

@Ollo65:
Wenn sich hier niemand findet, der das beantworten kann: schau mal in den wifilight-Thread, vielleicht gibt's da was.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

Kurzer update noch:

Mindestens die templates für die Bridge und RGBW-Devices sind jetzt funktional im svn enthalten (und damit ab morgen per update verteilt).

Anwendung ist hier beschrieben: https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Milight-Bridge

Die "max-featured-Bulb" in den templates (X_01x_esp_milight_hub_max_features_bulb) ist nicht weiter auf Funktionalität getestet.

Feedback ist wie immer willkommen, gerne nehme ich template-Vorschläge für andere Leuchtmitteltypen oder Erweiterungen der max-features-Variante entgegen, wäre nett, wenn ihr dabei das hier beachtet.

Viel Freude damit,

Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files