ESPEasy Plugin Lights (RGBWW)

Begonnen von dev0, 29 Dezember 2016, 09:32:09

Vorheriges Thema - Nächstes Thema

Waldmensch

Okay, habe die bootstates für 12-15 auf Low gesetzt. Damit bleibt der Stripe beim booten jetzt aus. Das wars dann aber auch schon. Hast du den letzten Stand des Plugin ins GIT committed? Ich weiß nicht wo ich da jetzt noch dran drehen kann.


Gesendet von iPhone mit Tapatalk

dev0

Ja, der aktuelle Stand liegt auf Github. Andere scheinen auch mit 1024/xx kB klarzukommen: http://www.letscontrolit.com/forum/viewtopic.php?f=6&t=2395&p=12603#p12602

Waldmensch

Ich habe den Fehler gefunden

Ich war mal so frei in den Code, wo rgb gesetzt wird eine Logausgabe einzubauen:
  // no fading at all
  else {
    if (Plugin_123_options.rgb_enabled) {
      analogWrite(Plugin_123_pins[0].PinNo, Plugin_123_pins[0].FadingTargetLevel);
      analogWrite(Plugin_123_pins[1].PinNo, Plugin_123_pins[1].FadingTargetLevel);
      analogWrite(Plugin_123_pins[2].PinNo, Plugin_123_pins[2].FadingTargetLevel);
      Plugin_123_pins[0].CurrentLevel = Plugin_123_pins[0].FadingTargetLevel;
      Plugin_123_pins[1].CurrentLevel = Plugin_123_pins[1].FadingTargetLevel;
      Plugin_123_pins[2].CurrentLevel = Plugin_123_pins[2].FadingTargetLevel;

      String dlog = F("Lights: RGB Pins analog: ");
      dlog += Plugin_123_pins[0].PinNo ;
      dlog += F(" Value ") ;
      dlog += Plugin_123_pins[0].FadingTargetLevel ;
      dlog += F(" / ");
      dlog += Plugin_123_pins[1].PinNo ;
      dlog += F(" Value ") ;
      dlog += Plugin_123_pins[1].FadingTargetLevel ;
      dlog += F(" / ");
      dlog += Plugin_123_pins[2].PinNo ;
      dlog += F(" Value ") ;
      dlog += Plugin_123_pins[2].FadingTargetLevel ;
      dlog += F(" / ");
      addLog(LOG_LEVEL_INFO, dlog);
    }


Ergebnis beim setzen eines RGB Kommandos:
67059 : Lights: RGB Pins analog: 0 Value 1023 / 0 Value 0 / 0 Value 0 /

Da ist jeweils gar kein GPIO definiert!

Also habe ich mal oben, wo die Pins definiert werden einfach die Pins fest eingetragen

        String log = F("INIT : Lights [");

        if (Plugin_123_options.rgb_enabled) {

          Plugin_123_pins[0].PinNo = 13;
          Plugin_123_pins[1].PinNo = 15;
          Plugin_123_pins[2].PinNo = 12;
         
          for (int PinIndex = 0; PinIndex < 3; PinIndex++) {
            //Plugin_123_pins[PinIndex].PinNo = ExtraTaskSettings.TaskDevicePluginConfigLong[PinIndex];
            pinMode(Plugin_123_pins[PinIndex].PinNo, OUTPUT);
          }
                   
          log += F("RGB ");
         
        }


Jetzt sieht die Ausgabe so aus und der Stripe wird in der entsprechenden Farbe gesetzt

391424 : Lights: RGB Pins analog: 13 Value 0 / 15 Value 0 / 12 Value 1023 /

Das Problem ist also ein eher Kleines beim Laden der Konfiguration in dieser Zeile:

Plugin_123_pins[PinIndex].PinNo = ExtraTaskSettings.TaskDevicePluginConfigLong[PinIndex];

dev0

Zitat von: Waldmensch am 22 Januar 2017, 16:21:18
Da ist jeweils gar kein GPIO definiert!

Dann wird bei Dir, der im Flash gespeicherte, Wert nicht gelesen oder sonst was. Wo wir wieder beim Flash wären...

Waldmensch

Das dachte ich auch zuerst, aber nachdem ich
Plugin_123_pins[PinIndex].PinNo = ExtraTaskSettings.TaskDevicePluginConfigLong[PinIndex];
durch
Plugin_123_pins[PinIndex].PinNo = Settings.TaskDevicePluginConfig[event->TaskIndex][PinIndex];

ersetzt und die hardcodeten Pins entfernt habe, klappt es 1A mit den Pins die im Webform eingetragen sind

5228 : INIT : Cold Boot
35229 : WD : Uptime 0 ConnectFailures 0 FreeMem 26464
53324 : Lights: RGB Pins analog: 13 Value 960 / 15 Value 960 / 12 Value 960 /
53380 : Lights: Set 960/960/960/-201152/-201152
65230 : WD : Uptime 1 ConnectFailures 0 FreeMem 26256
95231 : WD : Uptime 1 ConnectFailures 0 FreeMem 26240
125232 : WD : Uptime 2 ConnectFailures 0 FreeMem 26224
155233 : WD : Uptime 2 ConnectFailures 0 FreeMem 26416
185234 : WD : Uptime 3 ConnectFailures 0 FreeMem 26416
215235 : WD : Uptime 3 ConnectFailures 0 FreeMem 26416


Ich habe mal eine abgeänderte Version 1M(64kB SPIFFS) angehangen. Zumindest bei mir löppt die mit RGB, mehr kann ich nicht testen mit dem Stripe, der hier rumliegt

dev0

Zitat von: Waldmensch am 22 Januar 2017, 17:27:19
Plugin_123_pins[PinIndex].PinNo = Settings.TaskDevicePluginConfig[event->TaskIndex][PinIndex];

Das ist so absolut richtig. In einer früheren Version wurden alle Pin Zuordnungen mit Hilfe von ExtraTaskSettings gespeichert, daher standen bei mir im Flash (mein Liebliengsthema ;) ) auch noch die passenden Werte, sonst hätte es nicht funktionieren können. Vielen Dank für Deine Hartnäckigkeit und Analyse.

Hab die korrigierte Fassung eingecheckt.

Waldmensch

Kein Problem - wir wollen doch beide das Gleiche, dass es funktioniert  :)

lewej

#22
Hallo Zusammen,

ich versuche meine H801 mit dem anhängten binary zu flashen. Jedoch sehe ich keinen AP und auch die D1 und D2 Led bleibt aus, es flackert ab un zu mal die D2.

Befehl:
esptool.exe -vv -cd nodemcu -cb 115200 -cp COM7 -cf ESPEasy_H801_Lights_1024_fixed.bin
Zitat
esptool v0.4.9 - (c) 2014 Ch. Klippel <ck@atelier-klippel.de>
        setting board to nodemcu
        setting baudrate from 115200 to 115200
        setting port from COM1 to COM7
        espcomm_upload_file
        espcomm_upload_mem
        setting serial port timeouts to 1000 ms
opening bootloader
resetting board
trying to connect
        flush start
        setting serial port timeouts to 1 ms
        setting serial port timeouts to 1000 ms
        flush complete
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
        espcomm_send_command: receiving 2 bytes of data
Uploading 446352 bytes from ESPEasy_H801_Lights_1024_fixed.bin to flash at 0x00000000
        erasing flash
        size: 06cf90 address: 000000
        first_sector_index: 0
        total_sector_count: 109
        head_sector_count: 16
        adjusted_sector_count: 93
        erase_size: 05d000
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        setting serial port timeouts to 15000 ms
        setting serial port timeouts to 1000 ms
        espcomm_send_command: receiving 2 bytes of data
        writing flash
................................................................................ [ 18% ]
................................................................................ [ 36% ]
................................................................................ [ 55% ]
................................................................................ [ 73% ]
................................................................................ [ 91% ]
....................................                                             [ 100% ]
starting app without reboot
        espcomm_send_command: sending command header
        espcomm_send_command: sending command payload
        espcomm_send_command: receiving 2 bytes of data
closing bootloader
        flush start
        setting serial port timeouts to 1 ms
        setting serial port timeouts to 1000 ms
        flush complete

Hat jemand eine IDee?


dev0

Schau mal, ob beim Booten das Logging auf der seriellen Schnitttstelle etwas verrät.

lewej

Zitat von: dev0 am 01 Februar 2017, 05:54:14
Schau mal, ob beim Booten das Logging auf der seriellen Schnitttstelle etwas verrät.

In dem Arduino Monitor kommt nur das:


lewej

Hallo,

habe es jetzt noch mal geflasht. Jetzt kommt das hier:


ets Jan  8 2013,rst cause:4, boot mode:(3,0)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09826c6d
~ld

lewej

Zitat von: lewej am 01 Februar 2017, 20:12:35
Hallo,

habe es jetzt noch mal geflasht. Jetzt kommt das hier:


ets Jan  8 2013,rst cause:4, boot mode:(3,0)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09826c6d
~ld


Hallo Zusammen,

ich habe es jetzt geschaft die Firmware zu flashen, ich sehe jetzt den AP kann mich dann an den connecten und bekomme eine IP zugewiesen, jedoch bekomme ich die config Seite nicht angezeigt.

Versucht mit http://192.168.4.1 ich habe die IP 192.168.4.2 bekommen.

Eine IDee?

dev0

Keine Ahnung, ist aber auch kein Thema für diesen Plugin Thread => neuen Thread oder ESPEasy Forum.

lewej

Hallo Zusammen,

könnte jemand seine ino Datei bereit stellen oder eine 512kb Binary Version?

Gruß und Danke

lewej

Zitat von: lewej am 02 Februar 2017, 21:40:15
Hallo Zusammen,

könnte jemand seine ino Datei bereit stellen oder eine 512kb Binary Version?

Gruß und Danke

Ich konnte durch löschen ein paar Plugins das Binary bauen und flashen.