qualcuno ha mai provato ad utilizzarlo con mqtt? ovvero inserendo nel campo "controller_send_service" mqtt.publish (e non mqtt.pubblish come indicate voi ma credo sia un errore di digitazione).
Perchè sto facendo svariate prove ma non funziona.
la mia configurazione attuale per l'invio cerretto dei topic da Home Assistant è:
topic
home/OpenMQTTGateway/commands/MQTTtoIR
payload
{'datastring':'11,DA,27,00,42,02,04,5A,11,DA,27,00,00,39,26,00,40,00,00,06,60,00,00,C1,80,00,58','bits':'27','protocol_name':'IR_DAIKIN'}
e funziona perfettamente inviando al mio nodemcu8266 con ir_emitter e riesco a gestire perfettamente il mio climatizzatore
Ho invece creato un file json con gli opportuni codici in formato Hex del mio telecomando, modificato al file controller.py la seguente stringa MQTT_COMMANDS_ENCODING = [ENC_RAW, ENC_HEX] ed aggiunto questo codice
ENC_HEX = 'Hex'
ENCODE_HEX = 'datastring'
BITS_HEX = '27'
PROTOCOL_NAME_HEX = 'IR_DAIKIN'
e poi infine questo
async def send(self, command):
if self._controller == MQTT_CONTROLLER:
if self._encoding == ENC_HEX:
command = command.replace(' ', '')
command = "{'" + ENCODE_HEX + "':'" + command + "','bits':" + BITS_HEX + ",'protocol_name':'" + PROTOCOL_NAME_HEX + "'}"
service_data = '{"topic":"' + self._controller_command_topic + '","payload_template":"' + command + '"}'
await self.hass.services.async_call(
'mqtt', 'publish', service_data)
questo è il mio file json
{
"manufacturer": "Daikin",
"supportedModels": [
"ATX35J3V1B"
],
"supportedController": "MQTT",
"commandsEncoding": "Hex",
"minTemperature": 18.0,
"maxTemperature": 30.0,
"precision": 1.0,
"operationModes": [
"heat",
"dry",
"cool",
"auto"
],
"fanModes": [
"low",
"mid",
"high",
"auto"
],
"commands": {
"off": "11, DA, 27, 00, 42, 30, 03, 87, 11, DA, 27, 00, 00, 69, 32, 00, 70, 00, 00, 06, 60, 00, 00, C1, 80, 00, C4",
"heat": {
"low": {
"18": "11, DA, 27, 00, 42, 30, 03, 87, 11, DA, 27, 00, 00, 69, 32, 00, 70, 00, 00, 06, 60, 00, 00, C1, 80, 00, C4",
però non funziona.
Mi spiegate quale potrebbe essere il problema?