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

Beta-User

Fast richtig.

1. Complex ist hier nicht nötig, besser simple wählen. (Und so gesprächig braucht das ganze auch nicht zu sein)
2. BASE_ID ist tatsächlich "milight", nicht eine Bulb-ID (muß mir die regex in dem template mal ansehen)

Am einfachsten den Server auf simple umstellen und das Bridge-Gerät nochmal löschen, anlegen lassen und dann "milight" an der betreffenden Stelle einfügen, dann sollte es klappen.

Dass du ein weiteres temporäres Server-Gerät hast, ist normal, das werden ggf. noch mehr (für jeden Client eines).

Ich sehe mir das bei Gelegenheit mal an, es gab einige Verbesserungen, die Rudi da jüngst an verschiedenen Stellen reingebaut hat. Bin noch nicht dazu gekommen, die im Wiki und den templates vollst. zu verarbeiten. (Es darf sich gerne auch jemand anderes versuchen...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Sebastian J

Moin,

vielen dank für dein Feedback. Hab das Hub gelöscht, verbose beim Server auf 1 gestellt autocreate auf simple.

Einmal ON im WEBIF des Hubs, dann das Template zugewiesen und die BASE_ID als milight eingetragen. Danach alles fein gespeichert. Nun ein paar mal ON/OFF und Farbe etc im WEBIF vom Hub verändert und  dann die Fhem Seite aktualisiert.

Das Ergebnis siehst du im Anhang. Was ich feststellen konnte ist, das Beim State oben jetzt ein Lampen Symbol anstelle der drei ??? aufgetaucht ist.
Aber das wars auch schon, es ist kein Weiteres Device angelegt worden.

Log sieht wie folgt aus:

2019.03.29 20:53:25 2: autocreate: define MQTT2_milight_hub_2412749 MQTT2_DEVICE milight_hub_2412749
2019.03.29 20:53:25 2: autocreate: define FileLog_MQTT2_milight_hub_2412749 FileLog ./log/MQTT2_milight_hub_2412749-%Y.log MQTT2_milight_hub_2412749


Wie erstelle ich den jetzt meinen Strahler/Bulb? Habe es so verstanden das nach erstellen des hubs und zuweisen der template beim nächsten schalten die Lampen erzeugt werden. Oder müssen diese von Hand mit den Daten der Readings erstellt werden?

Vielen Dank im Voraus.

P.S: Tauche gerne tiefer in die Materie ein, und unterstütze auch gerne.

TomLee

Hi,

lösch mal das

Zitatmilight_hub_2412749:milight/state/0xABCD/0xABCD/rgb_cct/1/:.* { json2nameValue($EVENT) }

aus dem readinglist der Bridge und schalte die Lampe erneut. Bin der Meinung das daraufhin das erwartete Device erstellt wird.

Gruß

Thomas

Sebastian J

Moin,

habe ich gerade gelöscht, nach einmal schalten stand es wieder drin.

Klappt damit also nicht.

:-(

Beta-User

Moin,

könntest du im template-file das betreffende template suchen und so ändern:

name:X_01_esp_milight_hub_bridge
filter:TYPE=MQTT2_DEVICE
desc:use this with Chris Mullins ESP-Milight-Hub. for further details visit https://github.com/sidoh/esp8266_milight_hub <br>#recommended structure of the topic pattern milight/:device_id/:device_type/:group_id as set in the settings section in the bridge's web interface.
par:BASE_ID;BASE_ID typically is milight;{ AttrVal("DEVICE","readingList","") =~ m,[^:]+:?([^/]+)[/].*at[^/]+[/].*:, ? $1 : undef }
attr DEVICE bridgeRegexp BASE_ID/stat[^/]+[/]/(0x....)/.*/([0-4])?.*:.* "milight_$1_$2"
attr DEVICE autocreate 1
attr DEVICE setStateList on off
attr DEVICE model X_01_esp_milight_hub_bridge

Danach bitte { AttrTemplate_Initialize() } ausführen und von vorne beginnen, also das device nochmal löschen?

Du hattest keine Änderungen hinsichtlich der zu übertragenden Daten vorgenommen in der sidoh-firmware, oder?
(Im Prinzip sollte es genügen, "states" in der bridgeRegexp zu ändern, aber es wäre toll, wenn wir das gleich so hinbekämen, dass es paßt...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

DasQ

Nach dem löschen musst FHEM Neustarten.
Danach schaltest deine Lampen per Fernbedienung.
Einmal ,,alle" und dann deine verwendeten Gruppen. (Die ein.- und Ausschalter auf deiner Fernbedienung oben und unten)
Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

Sebastian J

Moin Moin,
so viel Feedback, danke erstmal dafür.

Werde das heute Abend mal alles ganz in Ruhe testen.

Baue zur Zeit die neuen Fenster in unserem Sanierungsobjekt ein.
Von da her komme ich zum spielen immer nur Abends.

@DasQ, habe keine Fernbedienung, nur das Originale V6 und das Sidoh Hub.

Firmware habe ich im Sidoh Hub übrigens nicht angefasst.

Vielen Dank und bis heute Abend.

Gruß Sebastian

Sebastian J

#112
Guten Morgen,

hab es gestern Abend nicht mehr hinbekommen, war feucht fröhlich bei uns :-)

Habe das Device gelöscht... mqtt2.template unter /opt/fhem/FHEM/lib/AttrTemplate angepasst!

Danach { AttrTemplate_Initialize() } ausgeführt und fhem neu gestartet.
Nun im WEBIF vom Hub ALL eingeschaltet. Jetzt dem erstellten Device das Template zugewiesen.

Dann nur ON/OFF im WEBIF vom Hub für Gruppe 1.

Resultat anbei. Leider wurden keine neuen Devices angelegt. :-(


Gruß Sebastian

Edit: Hier nochmal meine Hub Settings
MQTT server
10.0.0.10:1883
MQTT topic pattern
milight/:device_id/:device_type/:group_id/
MQTT update topic pattern
milight/update/:hex_device_id/:device_id/:device_type/:group_id/
MQTT state topic pattern
milight/state/:hex_device_id/:device_id/:device_type/:group_id/



Beta-User

Hmmm,
also nach dem Wiki ist das update pattern in den Beispielen mit "s", das sollte aber egal sein.

Würde jetzt mal mit dem an den Start gehen.
milight/[^/]*at[^/]+[/](0x....)/.*/([0-4])?.*:.* "milight_$1_$2"Leider funktioniert irgendwie die Kommunikation zwischen der Bridge und FHEM grade bei mir nicht, ich habe eben die Versionen 1.9.0-dev9 (d1_mini) und -11 mal getestet, bekomme aber im Moment damit gar keine updates via MQTT...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

TomLee

Bei mir sind keine "/" am Ende der topic pattern, falls das was zu Sache beträgt.

DasQ

also bei mir ist in der milighthub config nur einmal die deviceid drin (sollte zwar nix ausmachen aber der ordnung wegen doppelt und somit unnötig)

Zitat
MQTT server
10.0.0.10:1883
MQTT topic pattern
milight/:device_id/:device_type/:group_id/
MQTT update topic pattern
milight/update/:device_id/:device_type/:group_id/
MQTT state topic pattern
milight/state/:device_id/:device_type/:group_id/

und hier mal meine raw definition
die funktioniert bei mir, ich habe aber mehrere gruppen und fernbedienungen am laufen.

defmod Milight_hub MQTT2_DEVICE milight_hub_10693013
attr Milight_hub IODev MQTT2_Broker
attr Milight_hub autocreate 1
attr Milight_hub bridgeRegexp milight_hub_10693013:milight/states/(0x....)/.*/([0-4])?.*:.* "milight_$1_$2"
attr Milight_hub event-on-change-reading .*
attr Milight_hub model X_01_esp_milight_hub_bridge
attr Milight_hub readingList milight_hub_10693013:milight/updates/0x248C/rgb_cct/0:.* { json2nameValue($EVENT, '0_', $JSONMAP) }\
milight_hub_10693013:milight/updates/0x248C/rgb_cct/1:.* { json2nameValue($EVENT, '1_', $JSONMAP) }\
milight_hub_10693013:milight/updates/0x248C/rgb_cct/2:.* { json2nameValue($EVENT, '2_', $JSONMAP) }\
milight_hub_10693013:milight/updates/0x248C/rgb_cct/3:.* { json2nameValue($EVENT, '3_', $JSONMAP) }\
milight_hub_10693013:milight/updates/0x248C/rgb_cct/4:.* { json2nameValue($EVENT, '4_', $JSONMAP) }\
milight_hub_10693013:milight/updates/0x5D02/rgb_cct/0:.* { json2nameValue($EVENT, '0_', $JSONMAP) }\
milight_hub_10693013:milight/updates/0x5D02/rgb_cct/1:.* { json2nameValue($EVENT, '1_', $JSONMAP) }\
milight_hub_10693013:milight/updates/0x5D02/rgb_cct/2:.* { json2nameValue($EVENT, '2_', $JSONMAP) }\
milight_hub_10693013:milight/updates/0x5D02/rgb_cct/3:.* { json2nameValue($EVENT, '3_', $JSONMAP) }\
milight_hub_10693013:milight/updates/0x5D02/rgb_cct/4:.* { json2nameValue($EVENT, '4_', $JSONMAP) }
attr Milight_hub room Hausgang
attr Milight_hub setStateList on off

setstate Milight_hub OFF
setstate Milight_hub 2019-03-28 06:19:02 0_brightness 240
setstate Milight_hub 2019-03-26 21:12:09 0_color_temp 324
setstate Milight_hub 2019-03-28 06:13:44 0_command night_mode
setstate Milight_hub 2019-03-28 00:41:38 0_hue 237
setstate Milight_hub 2019-03-01 18:57:47 0_mode 0
setstate Milight_hub 2019-03-28 20:36:25 0_saturation 0
setstate Milight_hub 2019-03-30 23:32:19 0_state OFF
setstate Milight_hub 2019-03-09 22:35:57 1_brightness 99
setstate Milight_hub 2019-03-26 21:11:44 1_color_temp 153
setstate Milight_hub 2019-03-30 22:44:43 1_command night_mode
setstate Milight_hub 2019-03-09 05:58:03 1_hue 49
setstate Milight_hub 2019-02-28 19:27:25 1_mode 0
setstate Milight_hub 2019-03-28 21:33:05 1_saturation 5
setstate Milight_hub 2019-03-30 22:44:43 1_state OFF
setstate Milight_hub 2019-03-29 06:00:53 2_brightness 56
setstate Milight_hub 2019-03-28 01:01:04 2_color_temp 316
setstate Milight_hub 2019-03-29 03:24:30 2_command night_mode
setstate Milight_hub 2019-03-29 03:30:19 2_hue 200
setstate Milight_hub 2019-02-28 17:41:14 2_mode 1
setstate Milight_hub 2019-03-28 20:36:13 2_saturation 94
setstate Milight_hub 2019-03-30 11:17:38 2_state OFF
setstate Milight_hub 2019-03-08 15:20:15 3_brightness 222
setstate Milight_hub 2019-03-08 15:20:15 3_color_temp 166
setstate Milight_hub 2019-02-14 03:50:34 3_command night_mode
setstate Milight_hub 2019-03-08 15:20:15 3_hue 95
setstate Milight_hub 2019-01-26 19:16:53 3_saturation 63
setstate Milight_hub 2019-02-28 17:40:31 3_state OFF
setstate Milight_hub 2019-03-07 18:30:11 4_brightness 0
setstate Milight_hub 2019-02-23 17:39:34 4_color_temp 153
setstate Milight_hub 2019-02-07 08:44:01 4_command night_mode
setstate Milight_hub 2019-03-07 18:30:15 4_hue 199
setstate Milight_hub 2019-02-07 08:53:58 4_saturation 9
setstate Milight_hub 2019-03-07 18:30:12 4_state ON
setstate Milight_hub 2019-01-05 11:59:27 saturation 21
setstate Milight_hub 2019-01-05 12:00:44 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

Sebastian J

Moin, komme gerade von der Baustelle und werde alle Anregungen gleich ausprobieren.

@DasQ readings erhalte ich ja auch ohne Ende, auch von den einzelnen Kanälen.

Wie sieht denn jetzt aber eine Fernbedienung im Fhem aus? Das ist ja mein Problem.
Das Hub im Fhem registriert jede Änderung die ich im WEBIF des Hubs vornehme, muss jetzt ja
auch irgendwie ein Device haben welches meine Gruppe darstellt und ich damit dann die
Gruppenteilnehmer steuern kann.

Gruß Sebastian

DasQ

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

Sebastian J

#118
Zitat von: Beta-User am 31 März 2019, 13:54:33
Hmmm,
also nach dem Wiki ist das update pattern in den Beispielen mit "s", das sollte aber egal sein.

Würde jetzt mal mit dem an den Start gehen.
milight/[^/]*at[^/]+[/](0x....)/.*/([0-4])?.*:.* "milight_$1_$2"Leider funktioniert irgendwie die Kommunikation zwischen der Bridge und FHEM grade bei mir nicht, ich habe eben die Versionen 1.9.0-dev9 (d1_mini) und -11 mal getestet, bekomme aber im Moment damit gar keine updates via MQTT...


Juhu,

jetzt wurde ein weiteres Device erstellt. Hab dem dann direkt mal gesagt das es ein rgb_cct bulb ist und siehe da es geht. kann jetzt über Fhem die Lampe steuern!


Sebastian J

So, jetzt muss ich mich aber erstmal bedanken. Super Support 👍
Jetzt möchte ich aber auch wissen was ich da gemacht habe damit
es klappt. @Beta-User, warum geht es mit deiner Änderung bei mir und bei euch ohne diese Änderung?

Habe vorhin mal versucht das ganze in die Homebridge zu bekommen was leider nicht klappt. Ist da noch zuarbeit nötig?

Vielleicht mal zum eigentlichen Vorhaben.

Möchte die Milights FUT065 in die Bäder einbauen. Geschaltet werden Sie mit einem KNX Schaltaktor über einen MDT Glastaster Smart 2. Jetzt möchte ich dann aber die Farben auch ändern können, dazu soll dann über KNX der Farbwert vom Taster an Fhem via knxd und von dort dann über den mqtt Server an das Hub und schließlich zur Lampe. Natürlich soll das ganze auch die gute Siri können. Ein / Aus müsste allerdings gesperrt werden oder als knx Befehl umgemapped werden. Da sonst da sonst ja der Schaltaktor geschaltet ist und die Lampe selber aber aus ist.

Hoffe Ihr konntet mir folgen und habt vielleicht ein paar Anregungen.

Vielen Dank schon mal.

Gruß Sebastian