Bonsoir,
Je testerai plus tard sur le mien mais tu peux déjà essayer çà :
Dans le fichier /plugins/blea/resources/blead/devices/parrotplant.py
il faudrait rajouter la ligne suivante dans la fonction read() pour aller lire l’info :
result['volume'] = self.__convertVolumeData(conn.readCharacteristic(self.characteristicHandles['volume']))
ce qui donnerait :
def read(self,mac):
logging.debug('read: '+mac)
result={}
try:
conn = Connector(mac)
conn.connect()
if not conn.isconnected:
conn.connect()
if not conn.isconnected:
return
result['sunlight'] = self.__convertSunlightData(conn.readCharacteristic(self.characteristicHandles['sunlight']))
result['soilec'] = self.__convertSoilECData(conn.readCharacteristic(self.characteristicHandles['soilec']))
result['soiltemp'] = self.__convertTempData(conn.readCharacteristic(self.characteristicHandles['soiltemp']))
result['airtemp'] = self.__convertTempData(conn.readCharacteristic(self.characteristicHandles['airtemp']))
result['soilmoisture'] = self.__convertSoilMoistureData(conn.readCharacteristic(self.characteristicHandles['soilmoisture']))
result['calibratedsoilmoisture'] = self.__convertFloatData(conn.readCharacteristic(self.characteristicHandles['calibratedsoilmoisture']))
result['calibratedairtemp'] = self.__convertFloatData(conn.readCharacteristic(self.characteristicHandles['calibratedairtemp']))
result['calibratedli'] = self.__convertFloatData(conn.readCharacteristic(self.characteristicHandles['calibratedli']))
result['color'] = self.__convertColorData(conn.readCharacteristic(self.characteristicHandles['color']))
result['volume'] = self.__convertVolumeData(conn.readCharacteristic(self.characteristicHandles['volume']))
result['battery'] = self.__convertBatteryData(conn.readCharacteristic(self.characteristicHandles['battery']))
result['id'] = mac
logging.debug(str(result))
return result
except Exception as e:
logging.error(str(e))
return result
Il faudra adapter si besoin la fonction de conversion (j’ai repris la même que la batterie dans l’exemple) :
def __convertVolumeData(self,data):
return self.__safeUnpack('B', data)
Il faudrait déclarer le Handle dans la classe ParrotPot() comme ceci :
self.characteristicHandles = {
'sunlight': '0x25',
'soilec': '0x31',
'soiltemp': '0x34',
'airtemp': '0x37',
'soilmoisture': '0x3a',
'calibratedsoilmoisture': '0x41',
'calibratedairtemp': '0x44',
'calibratedli': '0x47',
'color': '0x72',
'volume': '0x8b',
'battery': '0x4b'
Et aussi le mettre dans la classe FlowerPower() mais pas sur que le handle soit le même :
self.characteristicHandles = {
'sunlight': '0x25',
'soilec': '0x29',
'soiltemp': '0x2d',
'airtemp': '0x31',
'soilmoisture': '0x35',
'calibratedsoilmoisture': '0x3f',
'calibratedairtemp': '0x43',
'calibratedli': '0x47',
'color': '0x85',
'volume': '0x8b',
'battery': '0x4c'
}
Pour la commande, il faudrait l’ajouter dans /plugins/blea/core/config/devices/parrotpot/parrotpot.json
{
"name": "Volume",
"type": "info",
"subtype": "numeric",
"display": {
"icon": "<i class=\"fas fa-water\"><\/i>",
"generic_type": "DONT"
},
"isVisible": 0,
"isHistorized": 0,
"unite": "%",
"logicalId": "volume",
"template": {
"dashboard": "line",
"mobile": "line"
}
},
Ensuite, il faudra redémarrer le plugin Blea.
Pour que la commande apparaisse sur ton équipement, un enregistrement de celui-ci devrait suffire. Sinon, ca devrait le faire en « Recréant les commandes ».