Hello Everyone
Recently I'm fighting with LED dimmer (rookie in programming)
I got to the point where (with help of @Boots33 - Thank You)   I have two different sketches both work OK with saving the last dim status but..... only for 1 LED stripe
Tried to implement an array as declaration of additional LED pins (there is a topic on the forum https://forum.mysensors.org/topic/4808/dimmable-led-actuator/6 )  but using this method... I finished with..
1st sketch switching on/off  crazy (one button in Domoticz switching a group of lights , some of them not working at all etc.. - >in summarry a mess !)
2nd I didnt even get to the point of few leds -  because there is already an array which is a little confusing for me
Q1: Could somebody please have a look on both and advice which one is potentially (better written , less giving problems with multiple pins,  I should focus on ?) and  help me with declaration of extra pins ?? ( basically I'm trying to use all the PWM pins from Arduino Mega)
Q2: There is already an array in 2nd sketch for the dimmer but I am not sure how it works and why somebody went this way (definition of maxdimlevels and dimlevels array) ??? is it possible to get rid of it ?
Configuration - RPi, Domoticz, Uno Gateway + nrF24, Sensor node nrf24  connected to Mega , mosfets in breadboard (not soldered at all - so no damage) , external 12V for Mosfet Ledstripes -->7,5V Arduino , for testing purpose 6 led stripes connected to PWM pins
(at present disconnected from GND all except 1st one - stripes are very bright and going crazy when not declared in Arduino)

1st sketch
// Enable debug prints to serial monitor
#define MY_DEBUG
// Enable and select radio type attached
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69
#define MY_RF24_CE_PIN 49
#define MY_RF24_CS_PIN 53
#include <MySensors.h>
#define SN "Dimmable_LED"
#define SV "1.1"
#define LED_PIN 3      // Arduino pin attached to MOSFET Gate pin
#define FADE_DELAY 10  // Delay in ms for each percentage fade up/down (10ms = 1s full-range dim)
static int16_t currentLevel = 0;  // Current dim level...
int dimmerSetting = 10 ;
MyMessage dimmerMsg(0, V_PERCENTAGE);
MyMessage lightMsg(0, V_STATUS);
/***
* Dimmable LED initialization method
*/
void setup()
{
 // Pull the gateway's current dim level - restore light level upon sendor node power-up
 //request( 0, V_PERCENTAGE );
}
void presentation()
{
 // Register the LED Dimmable Light with the gateway
 present( 0, S_DIMMER );
 sendSketchInfo(SN, SV);
}
/***
*  Dimmable LED main processing loop
*/
void loop()
{
}
void receive(const MyMessage &message) {
switch (message.type) {
 case V_STATUS:                                           // message is from the switch
  if(message.getBool()){
    fadeToLevel( dimmerSetting );                         // turn light on at current dimmer level
  }
  else fadeToLevel( 0 );                                  // fade light to 0 (off)
 break;
case V_PERCENTAGE:                                        // message is from the dimmer
  dimmerSetting = message.getInt();                       // get the new dimmer setting from the message
  fadeToLevel( dimmerSetting );                           // fade to the new dimmer setting
   send(dimmerMsg.set(dimmerSetting));                    // send switch  state to controller , no ack requested
  break;
  }
 }
/***
*  This method provides a graceful fade up/down effect
*/
void fadeToLevel( int toLevel )
{
 int delta = ( toLevel - currentLevel ) < 0 ? -1 : 1;
 while ( currentLevel != toLevel ) {
   currentLevel += delta;
   analogWrite( LED_PIN, (int)(currentLevel / 100. * 255) );
   wait( FADE_DELAY );
 }
} 
2nd sketch based on MySensors generic dimmablelight (modified by me a little using gesture sensor sketch)
/**
 * The MySensors Arduino library handles the wireless radio link and protocol
 * between your home built sensors/actuators and HA controller of choice.
 * The sensors forms a self healing radio network with optional repeaters. Each
 * repeater and gateway builds a routing tables in EEPROM which keeps track of the
 * network topology allowing messages to be routed to nodes.
 *
 * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
 * Copyright (C) 2013-2015 Sensnology AB
 * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
 *
 * Documentation: http://www.mysensors.org
 * Support Forum: http://forum.mysensors.org
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2 as published by the Free Software Foundation.
 *
 *******************************
 *
 * REVISION HISTORY
 * Version 1.0 - January 30, 2015 - Developed by GizMoCuz (Domoticz)
 *
 * DESCRIPTION
 * This sketch provides an example how to implement a Dimmable Light
 * It is pure virtual and it logs messages to the serial output
 * It can be used as a base sketch for actual hardware.
 * Stores the last light state and level in eeprom.
 *
 */
// Enable debug prints
#define MY_DEBUG
// Enable and select radio type attached
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69
#define MY_RF24_CE_PIN 49
#define MY_RF24_CS_PIN 53
#include <MySensors.h>
#define CHILD_ID_LIGHT 1
#define EPROM_LIGHT_STATE 1
#define EPROM_DIMMER_LEVEL 2
#define LIGHT_OFF 0
#define LIGHT_ON 1
#define SN "DimableLightg"
#define SV "1.0"
#define LED_PIN 3      // Arduino pin attached to MOSFET Gate pin
#define MAXDIMLEVELS                     100
//#define FADE_DELAY 10  // Delay in ms for each percentage fade up/down (10ms = 1s full-range dim)
int16_t LastLightState=LIGHT_OFF;
int16_t LastDimValue=MAXDIMLEVELS;
int dimlevels[ MAXDIMLEVELS ] =  // PWM values used for translating home automation dimmer levels. This gives smoother transations
  {   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,
     10,  11,  12,  13,  14,  15,  16,  17,  18,  19,
     20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
     30,  31,  32,  35,  39,  42,  46,  49,  52,  56,
     59,  62,  66,  69,  73,  76,  79,  83,  86,  89,
     93,  96, 100, 103, 106, 110, 113, 116, 120, 123,
    126, 130, 133, 137, 140, 144, 147, 150, 154, 157,
    160, 164, 167, 171, 174, 177, 181, 184, 187, 191,
    194, 197, 201, 204, 208, 211, 215, 218, 221, 225,
    228, 231, 235, 238, 242, 245, 246, 250, 251, 255 };
MyMessage lightMsg(CHILD_ID_LIGHT, V_LIGHT);
MyMessage dimmerMsg(CHILD_ID_LIGHT, V_DIMMER);
void setup()
{
	//Retreive our last light state from the eprom
	int LightState=loadState(EPROM_LIGHT_STATE);
	if (LightState<=1) {
		LastLightState=LightState;
		int DimValue=loadState(EPROM_DIMMER_LEVEL);
		if ((DimValue>0)&&(DimValue<=100)) {
			//There should be no Dim value of 0, this would mean LIGHT_OFF
			LastDimValue=DimValue;
		}
	}
	//Here you actualy switch on/off the light with the last known dim level
	SetCurrentState2Hardware();
	Serial.println( "Node ready to receive messages..." );
}
void presentation()
{
//Send the Sketch Version Information to the Gateway
	sendSketchInfo(SN, SV);
	present(CHILD_ID_LIGHT, S_DIMMER );
 }
void loop()
{
}
void receive(const MyMessage &message)
{
	if (message.type == V_LIGHT) {
		Serial.println( "V_LIGHT command received..." );
		int lstate= atoi( message.data );
		if ((lstate<0)||(lstate>1)) {
			Serial.println( "V_LIGHT data invalid (should be 0/1)" );
			return;
		}
		LastLightState=lstate;
		saveState(EPROM_LIGHT_STATE, LastLightState);
		if ((LastLightState==LIGHT_ON)&&(LastDimValue==0)) {
			//In the case that the Light State = On, but the dimmer value is zero,
			//then something (probably the controller) did something wrong,
			//for the Dim value to 100%
			LastDimValue=100;
			saveState(EPROM_DIMMER_LEVEL, LastDimValue);
		}
		//When receiving a V_LIGHT command we switch the light between OFF and the last received dimmer value
		//This means if you previously set the lights dimmer value to 50%, and turn the light ON
		//it will do so at 50%
	} else if (message.type == V_DIMMER) {
		Serial.println( "V_DIMMER command received..." );
		int dimvalue= atoi( message.data );
		if ((dimvalue<0)||(dimvalue>100)) {
			Serial.println( "V_DIMMER data invalid (should be 0..100)" );
			return;
		}
		if (dimvalue==0) {
			LastLightState=LIGHT_OFF;
		} else {
			LastLightState=LIGHT_ON;
			LastDimValue=dimvalue;
			saveState(EPROM_DIMMER_LEVEL, LastDimValue);
		}
	} else {
		Serial.println( "Invalid command received..." );
		return;
	}
	//Here you set the actual light state/level
	SetCurrentState2Hardware();
}
void SetCurrentState2Hardware()
{
	if (LastLightState==LIGHT_OFF) {
    analogWrite( LED_PIN, dimlevels[0] );
		Serial.println( "Light state: OFF" );
	} else {
    analogWrite( LED_PIN, dimlevels[ LastDimValue - 1 ] );
		Serial.print( "Light state: ON, Level: " );
		Serial.println( LastDimValue );
	}
	//Send current state to the controller
	SendCurrentState2Controller();
}
void SendCurrentState2Controller()
{
	if ((LastLightState==LIGHT_OFF)||(LastDimValue==0)) {
		send(dimmerMsg.set((int16_t)0));
	} else {
		send(dimmerMsg.set(LastDimValue));
	}
}