WIP
This commit is contained in:
parent
fdc51427b3
commit
7f6fa016ef
@ -34,3 +34,5 @@ Il reste des tweaks à faire pour que les effets marchent comme je le désire ma
|
|||||||
TODO: changer le mqtt light par un mqtt_json, cela permettrais d'avoir un truc un peu "normal". Il existe de nombreux exemples sur le net pour esp qu'il devrait être très simple d'intégrer.
|
TODO: changer le mqtt light par un mqtt_json, cela permettrais d'avoir un truc un peu "normal". Il existe de nombreux exemples sur le net pour esp qu'il devrait être très simple d'intégrer.
|
||||||
TODO: Utiliser ArduinoOTA pour gérer les mises à jours sans fil.
|
TODO: Utiliser ArduinoOTA pour gérer les mises à jours sans fil.
|
||||||
TODO: Si le strip est démarré avant HA, HA n'arrive pas à trouver son état. Surement une question de persistance sur le topic
|
TODO: Si le strip est démarré avant HA, HA n'arrive pas à trouver son état. Surement une question de persistance sur le topic
|
||||||
|
-> Ceci est du au fait que lorsque l'on redémarre HA on redémarre aussi mosquitto.
|
||||||
|
-> Au reconnect il faut donc réenvoyer son état actuel
|
||||||
|
|||||||
@ -87,10 +87,15 @@ void testConnectMQTT()
|
|||||||
if (client.connect("ESP8266Client", MQTT_USER, MQTT_PASS)) {
|
if (client.connect("ESP8266Client", MQTT_USER, MQTT_PASS)) {
|
||||||
Serial.print("OK\nSubscribe");
|
Serial.print("OK\nSubscribe");
|
||||||
client.subscribe(MQTT_LED_COMMAND);
|
client.subscribe(MQTT_LED_COMMAND);
|
||||||
|
mqttSendState();
|
||||||
client.subscribe(MQTT_LED_EFFECT_COMMAND);
|
client.subscribe(MQTT_LED_EFFECT_COMMAND);
|
||||||
|
//mqttSendEffectState();
|
||||||
client.subscribe(MQTT_LED_BRIGHTNESS_COMMAND);
|
client.subscribe(MQTT_LED_BRIGHTNESS_COMMAND);
|
||||||
|
mqttSendBrightnessState();
|
||||||
client.subscribe(MQTT_LED_SPEED_COMMAND);
|
client.subscribe(MQTT_LED_SPEED_COMMAND);
|
||||||
|
//mqttSendSpeedState();
|
||||||
client.subscribe(MQTT_LED_COLOR_COMMAND);
|
client.subscribe(MQTT_LED_COLOR_COMMAND);
|
||||||
|
//mqttSendColorState();
|
||||||
Serial.println(" OK");
|
Serial.println(" OK");
|
||||||
} else {
|
} else {
|
||||||
Serial.print("KO, erreur : ");
|
Serial.print("KO, erreur : ");
|
||||||
@ -119,12 +124,11 @@ void callbackMQTT(char* topic, byte* payload, unsigned int length)
|
|||||||
if (stopic == MQTT_LED_COMMAND) {
|
if (stopic == MQTT_LED_COMMAND) {
|
||||||
if (msgString == "ON") {
|
if (msgString == "ON") {
|
||||||
ledState = true;
|
ledState = true;
|
||||||
client.publish(MQTT_LED_STATE, message_buff, true);
|
|
||||||
} else {
|
} else {
|
||||||
ledState = false;
|
ledState = false;
|
||||||
ledBlackAll();
|
ledBlackAll();
|
||||||
client.publish(MQTT_LED_STATE, message_buff, true);
|
|
||||||
}
|
}
|
||||||
|
mqttSendState();
|
||||||
} else if (stopic == MQTT_LED_EFFECT_COMMAND) {
|
} else if (stopic == MQTT_LED_EFFECT_COMMAND) {
|
||||||
// Si on ne repasse pas tout à noir, cela peut faire des effets surprenants
|
// Si on ne repasse pas tout à noir, cela peut faire des effets surprenants
|
||||||
ledBlackAll();
|
ledBlackAll();
|
||||||
@ -148,6 +152,48 @@ void callbackMQTT(char* topic, byte* payload, unsigned int length)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mqttSendState()
|
||||||
|
{
|
||||||
|
if (ledState) {
|
||||||
|
client.publish(MQTT_LED_STATE, "ON", true);
|
||||||
|
} else {
|
||||||
|
client.publish(MQTT_LED_STATE, "OFF", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void mqttSendEffectState()
|
||||||
|
{
|
||||||
|
char buff[ledEffect.length() + 1];
|
||||||
|
ledEffect.toCharArray(buff, ledEffect.length() + 1);
|
||||||
|
client.publish(MQTT_LED_EFFECT_STATE, buff, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mqttSendBrightnessState()
|
||||||
|
{
|
||||||
|
char buff[4];
|
||||||
|
itoa(brightness, buff, 10);
|
||||||
|
client.publish(MQTT_LED_BRIGHTNESS_STATE, buff, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mqttSendSpeedState()
|
||||||
|
{
|
||||||
|
char buff[4];
|
||||||
|
itoa(speed, buff, 10);
|
||||||
|
client.publish(MQTT_LED_SPEED_STATE, buff, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mqttSendColorState()
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
int red = msgString.substring(0, msgString.indexOf(',')).toInt();
|
||||||
|
int green = msgString.substring(msgString.indexOf(',') + 1, msgString.lastIndexOf(',')).toInt();
|
||||||
|
int blue = msgString.substring(msgString.lastIndexOf(',') + 1).toInt();
|
||||||
|
color=((red <<16)|(green <<8)|blue);
|
||||||
|
TODO: client.publish(MQTT_LED_COLOR_STATE, message_buff, true);
|
||||||
|
avec color
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
// LED
|
// LED
|
||||||
/**
|
/**
|
||||||
* Coupe tout le strip de led.
|
* Coupe tout le strip de led.
|
||||||
@ -170,7 +216,7 @@ void ledCylon()
|
|||||||
if (ledEffect != LED_EFFECT_CYLON) {
|
if (ledEffect != LED_EFFECT_CYLON) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((i - 3) >= 0) {
|
if ((i - 3) >= 0) {
|
||||||
leds[i - 3] = CRGB::Black;
|
leds[i - 3] = CRGB::Black;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user