Problem to control 433Mhz power socket with Arduino Ethernet Shield and MQTT

Hi,
basing of the following tutorial:

I develop an idea to control, through Arduino + Ethernet Shield, a 433MHz power socket thanks a light switch based on MQTT (the broker is Mosquitto).
I’m writing here because when I change the status of the switch on HA seems that Arduino doesn’t receive nothing.

The mosquito server and HA are on an Odroid XU4.
The MQTT settings in the HA configuration file is the following (the first part is broker settings, the second one is referred to light switch):

mqtt:
  platform: 192.168.1.xxx
  port: 1883
  client_id: home-assistant-1
  keepalive: 60
  protocol: 3.1.1
  username: myuser
  password: abcdefg

light:
  platform: mqtt
  name: "Desk lamp"
  state_topic: "main/desk/status"
  command_topic: "main/desk/switch"
  optimistic: false

The arduino code is http://pastebin.com/7MUc34Eh
Could someone help me?

P.S.
The MQTT broker works: if I create a sensor and I can update the its status with “mosquitto_sub” from terminal.

Use a separate MQTT client to view what goes between the broker and HA. I use MQTTLens that’s a plugin to chrome. Works well and is easy to configure.

Also try to specify the payload with

  payload_on: "ON"
  payload_off: "OFF"

I added the payload specification. But the problem is still present.

Now I’m monitoring on my laptop (secondary PC) the topic as follows:
mosquitto_sub -u myuser -P abcdefg -h 192.168.1.xxx -p 1883 -t “main/desk/status”

But when I change the status in HA, no message is printed. Seems that the problem is in the configuration but where?

The strange thing is that I can monitor, with mosquitto_sub, a status simple sensor as this:
sensor:
platform: mqtt
name: “p3p1’s mood”
state_topic: “home-assistant/p3p1/mood”

Have you looked at the serial log from the arduino?