Autor Thema: Eigentlich wollte ich nur die Milight Bridges durch einen ESP8266 ersetzen......  (Gelesen 6981 mal)

Offline hexenmeister

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3325
    • tech_LogBuch
Habe heute ein wenig rumprobiert und kann meine Lampen jetzt steuern. Paaren klappte per MiLight-Modul immer noch nicht, daher habe ich die Lampen mit der OriginalFB gepaart und die ID der FB in den Script 'einkompiliert' (MQTT-Version). Funktioniert. Reichweie mit E27 Lampe ganz ok, reicht für ein Zimmer locker. Bei GU10 Lampen war die Reichweite schon deutlich schlechter.

Ich möchte noch mit WifiLight ausprobieren und evtl. den Sketch etwas umschreiben, muss nur noch Zeit dafür finden >:(

Den Sketch habe ich schon ein wenig 'repariert', jetzt klappt auch das Verbinden mit dem AP, wenn WLAN-Verbindungsdaten falsch sind, sodass man das Modul umkonfigurieren kann.

Was ich mir noch vorstellen könnte im WebConfig einzubauen:
- Abschaltbare MQTT-Feature (damit könnte man ein Sketch für alle benutzen)
- Konfigurierbare FB-IDs
- k.P., mir fällt bestimmt noch was ein ;D
Cubietruck, HM (HMLAN/HM-CFG-USB/HM-LC-Bl1PBU-FM/HM-LC-Sw1PBU-FM/HM-LC-Dim1TPBU-FM/HM-LC-SW1-PL2/HM-SEC-RHS/HM-PB-2-WM55/HM-PB-6-WM55/HM-Sen-MDIR-O/HM-CC-RT-DN/HM-TC-IT-WM-W-EU/HB-UW-Sen-THPL-I/...), 1wire, Firmata, MySensors,..

Online Beta-User

  • Sr. Member
  • ****
  • Beiträge: 823
  • Hausaufgaben schon gemacht?
    • Perpetual beta
Hallo Hexenmeister,

also nur ein Zimmer als Reichweite ist nicht viel, meine Bridge (s.u., es hängt ein seperater Kondensator am nRF) deckt das ganze Haus ab, die Reichweite ist damit eher besser als das WLAN der Fritte (7390). Vermutlich ist das Signal schlicht nicht stark genug für das pairen.

Das ganze konfigurierbar zu machen, ist eine gute Sache (AP-Daten und auch das mit den FB-ID's).

Wenn Du noch eine Idee brauchst:
Ein richtiger Rückweg zu Wifilight (oder MiLight) wäre klasse für die Leute, die neben FHEM noch Fernbedienungen nutzen. Leider übersteigt das Trennen der Elemente meinen aktuellen programmiertechnischen Horizont, aber eigentlich sollte das nicht so schwer sein, wenn FB's und die Bridges dieselben Kennungen nutzen.
Im Prinzip müßte man nur die Logik, wie die Elemente in der Bridge zusammengesetzt werden rückwärts gehen und sich dann noch eine Methode überlegen, wie man das zurück an FHEM meldet (möglichst ohne MQTT, vielleicht ginge eine Art serialBridge; ich hatte auch an MySensors rumüberlegt, aber mehrere GW's sind da nicht so das gelbe vom Ei).

Jedenfalls Danke für's Testen!

Gruß, Beta-User
Pi-2 | VCCU | ConfigDB | MySensors seriell (2.1.1) | DS18B20@MySensors | Milight@ESP-GW | SIGNALduino

Offline hexenmeister

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3325
    • tech_LogBuch
Moin!
Die empfangenen Daten einer FB auf Serialport auszugeben sollte nicht so schwer sein, aber in welcher Form und wer bringt das dem Fhem-Modul bei?

Einen kleinen Kondensator habe ich auch dran gelötet und die Reichweite mit e27 Lampe kenne ich eigentlich nicht wirklich, habe gar nicht außerhalb eines Zimmers probiert  ;D Nur die vier GU10, die ich anstelle normalen Lampen zum Testen unter die Decke gebracht habe, wollten nicht so recht. Mal reagierten zwei, mal drei, mal gar keine. Auf die FB hörten sie aber gut.
Ich muss mehr testen.

Grüße
Alexander
Cubietruck, HM (HMLAN/HM-CFG-USB/HM-LC-Bl1PBU-FM/HM-LC-Sw1PBU-FM/HM-LC-Dim1TPBU-FM/HM-LC-SW1-PL2/HM-SEC-RHS/HM-PB-2-WM55/HM-PB-6-WM55/HM-Sen-MDIR-O/HM-CC-RT-DN/HM-TC-IT-WM-W-EU/HB-UW-Sen-THPL-I/...), 1wire, Firmata, MySensors,..

Offline Gunther

  • Sr. Member
  • ****
  • Beiträge: 868
Ich frage mich gerade, wie ich nun vorgehe, um erfolgreich zu sein.
Muss ich etwas neu flashen? Falls ja: wie und mit welcher Soft- und Hardware?

VG
Gunther
FHEM auf Rasperri PI: TabletUI als User-Interface (4 Wandtablets)
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Online Beta-User

  • Sr. Member
  • ****
  • Beiträge: 823
  • Hausaufgaben schon gemacht?
    • Perpetual beta
@Gunther:
Sieht eher nicht danach aus, als wäre es ein SW-Thema. Sofern Du die gesockelte Version des GW hast: Tausche den nRF mal, am besten gegen einen mit externer Antenne. Es gibt da auch China-Clone, die nicht so gut sind bzw. auch deutlich mehr Strom brauchen, da kann das Anlöten eines Kondensators deutliche Verbesserung bringen.
Ansonsten: klappt die Steuerung mit den "normalen" Bridges? Dazu kannst Du ja einfach die Definition eines Kanals in FHEM ändern (wg. der Reihenfolge das Ladens in fhem.cfg, das kann das Duo Milight_Bridge/Milight_Device eher auch nicht richtig).

Wenn Du selbst die firmware flashen willst: Nimm doch den Wemos zum testen... Dazu die Arduino-IDE installieren (unter Linux am besten erst mal über die Paketverwaltung wegen der zusätzlich benötigten Pakete, dann wieder deinstallieren und die aktuelle Version von arduino.cc holen), die Werkzeuge für ESP8266 installieren (in der IDE bei Datei->Voreinstellungen als Boardverwalter-URL http://arduino.esp8266.com/stable/package_esp8266com_index.json eintragen und dann mit dem Board-Manager runterladen), eines der Packages in diesem Thread nehmen, WLAN-Daten anpassen, Kompilieren versuchen, die als fehlend anmonierten Libraries nachinstallieren. That's it. Wenn Du die ID Deiner Fernbedienung bzw. Bridge sehen willst, entweder die MQTT-Variante nehmen, oder die V4 etwas anpassen (da ist der receiving-Teil deaktiviert, das aktivieren,siehe einen meiner Beiträge weiter oben. Dann kommt die Ausgabe auf dem seriellen Monitor, den man in der IDE einschalten kann).

@Alexander:
Zitat
in welcher Form und wer bringt das dem Fhem-Modul bei
Wenn ich das wüßte...
Ansätze, basierend auf Milight (ist aber nur ein fork von wifilight, das man m.E. als Basis nehmen sollte und vermutlich ähnlich tickt):
- Soweit ich das verstanden habe, generiert man in FHEM beim Steuern eines Milight-Devices eigentlich nur den "mittleren" Teil des Steuercodes. Alles andere geschieht dann auf der Ebene Kanal (letztes Byte) bzw. Bridge (erste 3 Bytes). Die Bridge rechnet dann die erhaltenen Kern-Steuerinformationen noch um und setzt das mit den "Rahmen"Bytes zusammen zu einem End-Steuersignal.
- Man müßte also diese 3 Informationen auswerten. M.E. wäre das auf der mC-Ebene einfacher, jedenfalls, wenn die FB-ID's dort bekannt sind. Für die Kanalinfo gibt es eh' nur 5 Möglichkeiten (1-4 bzw. alle).
- Somit könnte man das vorverarbeitet an FHEM zurücksenden und bräuchte dann eine Logik, die das wieder dem FHEM-Device zuordnet (was aber immer gleich sein könnte, da der Rahmen gleich wäre).
- Alternativ wäre es evtl. möglich, den ganzen FB-Code zu nehmen, dann müßte man aber den Devices noch readings zuordnen für FB-ID und Kanal und auch die Rückrechnung des Kern-Steuercodes in perl erledigen.
Leider habe ich da keine wirkliche Idee, was da einfacher ist, bis jetzt bin ich froh, wenn ich C-Code copy/paste so zusammenstellen kann, dass meine Arduinos tun, was sie sollen (?)... Daher auch der Ansatz, das eher auf mC-Ebene vorzuverarbeiten.

Gruß, Beta-User
Pi-2 | VCCU | ConfigDB | MySensors seriell (2.1.1) | DS18B20@MySensors | Milight@ESP-GW | SIGNALduino

Offline hexenmeister

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3325
    • tech_LogBuch
Gunther hat seine Hardware von mir. Absolut baugleiche Version hat gestern bei mir ja grundsätzlich funktioniert (bis auf Paaren). Seine Versionen sind nicht gesockelt, wäre aber auch kein Problem, wenn ein Funkchip mit Antenne die Lösung, löte ich seine Module um (kann leider nicht selbst mit den Antennenmodulen testen - habe gerade keine). Ich werde bei mir aber vorher mit anderen Größen der Stütz-Kondensatoren probieren, auch wenn da schon welche sind...
@Gunther: wollen wir so verbleiben? Ich versuche noch zu paaren mit WifiLight und dann noch andere Kondensatoren, danach sehen wir, wie wir deine Module zum Laufen bekommen.
Cubietruck, HM (HMLAN/HM-CFG-USB/HM-LC-Bl1PBU-FM/HM-LC-Sw1PBU-FM/HM-LC-Dim1TPBU-FM/HM-LC-SW1-PL2/HM-SEC-RHS/HM-PB-2-WM55/HM-PB-6-WM55/HM-Sen-MDIR-O/HM-CC-RT-DN/HM-TC-IT-WM-W-EU/HB-UW-Sen-THPL-I/...), 1wire, Firmata, MySensors,..

Offline hexenmeister

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3325
    • tech_LogBuch
Zum Theme Rückmeldung an MilightBridge/WifiLight...
Per Serial ist natürlich hier Quatsch, wenn ich so überlege, der Weg zurück muss natürlich auch per WLAN gehen. Im Sketch sehe ich dabei keine Schwierigkeiten, aber wie das im FHEM-Modul zu machen wäre - da bäuchte man Hilfe des Entwicklers der Module.
Per MQTT könnte man das jetzt schon realisieren, auch wenn mit einigen Umwegen: Fernbedienung->Sketch->MQTT-Server->MQTT_DEVICE->notify (zum entsprechenden Umformen und setzen in MiLight_Device)->MILIGHT_DEVICE.

Cubietruck, HM (HMLAN/HM-CFG-USB/HM-LC-Bl1PBU-FM/HM-LC-Sw1PBU-FM/HM-LC-Dim1TPBU-FM/HM-LC-SW1-PL2/HM-SEC-RHS/HM-PB-2-WM55/HM-PB-6-WM55/HM-Sen-MDIR-O/HM-CC-RT-DN/HM-TC-IT-WM-W-EU/HB-UW-Sen-THPL-I/...), 1wire, Firmata, MySensors,..

Online Beta-User

  • Sr. Member
  • ****
  • Beiträge: 823
  • Hausaufgaben schon gemacht?
    • Perpetual beta
Zu "serial":

Vorab: eine echte serielle (USB)-Lösung wäre mir persönlich am liebsten, eine reine Arduino-Lösung scheitert ja derzeit nur an der Kompabilität zu den Modulen und den Ports für das Auseinanderhalten der mehreren virtuellen Bridges. Rückwärts hatte ich daher den Begriff "serialBridge" benutzt. Gemeint war damit, ein quasi-serielles Signal über WLAN zurückzumelden; wie man das im Einzelnen macht: keinen Schimmer... Ich könnte auch mit einer seriellen Ausgabe am ESP leben, der hängt bei mit eh' direkt neben dem PI, bekommt allerdings den Strom von der Fritte.

Was MQTT angeht: zum einen wollte ich mir das nicht unbedingt auch noch "antun", zum anderen fühle ich mit dem Entwurf des notify/myUtils-Codes etwas überfordert, ich habe schon Schwierigkeiten, den C-Code vorwärts zu verstehen; ihn auf mC-Ebene umzudrehen, wird schon schwierig genug, aber dann perl?... Aber wenn dieser "MQTT-Rückweg" ausentwickelt wäre, würde ich uU. auch das machen, ist ja auch keine Raketenwissenschaft.

Alternativ hatte ich die Idee, die Bridge zusätzlich als MySensors-Bridge zu coden und zu definieren und dann nur den vorverarbeiteten FB-Code darüber zurückzuschicken (statt MQTT, code als lokaler Sensor für IR bzw. 433MHz-Beispiel nachgebildet). Allerdings hat das Verwenden mehrerer MySensors-Bridges auch so seine Tücken (nutze derzeit nRF und RS485-GW's parallel, beide seriell. Die Neuanlage von Devices ist damit aber suboptimal). Alles aber halt noch nicht ausgegoren und getestet.

Gruß, Beta-User
Pi-2 | VCCU | ConfigDB | MySensors seriell (2.1.1) | DS18B20@MySensors | Milight@ESP-GW | SIGNALduino

Offline hexenmeister

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3325
    • tech_LogBuch
Habe heute mit WifiLight herumgespielt
define wmilight1 WifiLight RGBW2 bridge-V3:192.168.0.109
Auch hier funktioniert pair/unpair nicht. Wieder haufenweise Meldungen im Log:
2017.03.22 19:53:29 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_WifiLight.pm line 3762.
2017.03.22 19:53:29 1: stacktrace:
2017.03.22 19:53:29 1:     main::__ANON__                      called by ./FHEM/32_WifiLight.pm (3762)
2017.03.22 19:53:29 1:     main::WifiLight_HighLevelCmdQueue_Add called by ./FHEM/32_WifiLight.pm (2898)
2017.03.22 19:53:29 1:     main::WifiLight_RGBW2_Pair          called by ./FHEM/32_WifiLight.pm (750)
2017.03.22 19:53:29 1:     main::WifiLight_Set                 called by fhem.pl (3307)
2017.03.22 19:53:29 1:     main::CallFn                        called by fhem.pl (1651)
2017.03.22 19:53:29 1:     main::DoSet                         called by fhem.pl (1683)
2017.03.22 19:53:29 1:     main::CommandSet                    called by fhem.pl (1108)
2017.03.22 19:53:29 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2430)
2017.03.22 19:53:29 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (888)
2017.03.22 19:53:29 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (535)
2017.03.22 19:53:29 1:     main::FW_Read                       called by fhem.pl (3312)
2017.03.22 19:53:29 1:     main::CallFn                        called by fhem.pl (675)
2017.03.22 19:53:29 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_WifiLight.pm line 3762.
Ich habe langsam ein Verdacht, dass diesbezüglich etwas in minem System nicht stimmt.

Steuern kann ich meine E27 Lampe damit sehr gut. Und auch weit - deckt meine Etage komplett ab.
Dagegen wollen meine GU10 Lampen uns Verrecken nicht ordentlich zuhören. Es geht schon, aber nur sporadisch - aus den 4 Lampen hört mal eine, mal zwei aber nie alle zusammen, auch dann nicht, wenn der Abstand ein Bruchteil davon ist, wie zu der E27 Lampe, die gleichzitig brav schaltet und dimmt >:(

Also nach Hardware sieht es für mich nicht aus...

Nur wie bringen ich dem Ding das Paaren bei...
Cubietruck, HM (HMLAN/HM-CFG-USB/HM-LC-Bl1PBU-FM/HM-LC-Sw1PBU-FM/HM-LC-Dim1TPBU-FM/HM-LC-SW1-PL2/HM-SEC-RHS/HM-PB-2-WM55/HM-PB-6-WM55/HM-Sen-MDIR-O/HM-CC-RT-DN/HM-TC-IT-WM-W-EU/HB-UW-Sen-THPL-I/...), 1wire, Firmata, MySensors,..

Online Beta-User

  • Sr. Member
  • ****
  • Beiträge: 823
  • Hausaufgaben schon gemacht?
    • Perpetual beta
Nur wie bringen ich dem Ding das Paaren bei...
Schon mit "rgb ffffff" versucht?
siehe hier https://forum.fhem.de/index.php?action=post;quote=502242;topic=58742.200;last_msg=609846 und die vorhergehenden paar Beiträge...
Pi-2 | VCCU | ConfigDB | MySensors seriell (2.1.1) | DS18B20@MySensors | Milight@ESP-GW | SIGNALduino

 

decade-submarginal