[ Mi Plant ] Version chinois non reconnu
-
- Timide
- Messages : 80
- Inscription : 15 nov. 2015, 17:10
Re: [ Mi Plant ] Version chinois non reconnu
Viens d'essayer et ça met toujours à jour qu'une partie et sarakha est pas facilement joignable
Re: [ Mi Plant ] Version chinois non reconnu
Le script arrive à te donner les valeurs pour chacun de tes capteurs? Si certains ne marchent pas avec le script, ça ne devrait pas marcher dans Jeedom
Re: [ Mi Plant ] Version chinois non reconnu
@eristoff, même avec ta modification ça ne fonctionnait pas sur mes nouveaux capteurs MiFlora (mais avec un ancien oui). Par contre le script fonctionnait.
Du coup j'ai modifié le code miflora.py en supprimant l'écoute des notifications et en lisant directement l'adresse où sont les infos. A priori ça fonctionne. Pour ceux que ça intéresse, voici le code (sans garantie) :
Du coup j'ai modifié le code miflora.py en supprimant l'écoute des notifications et en lisant directement l'adresse où sont les infos. A priori ça fonctionne. Pour ceux que ça intéresse, voici le code (sans garantie) :
Code : Tout sélectionner
from bluepy import btle
import time
import logging
import globals
import struct
from multiconnect import Connector
from notification import Notification
class Miflora():
def __init__(self):
self.name = 'miflora'
self.ignoreRepeat = False
def isvalid(self,name,manuf=''):
validname = ['Flower mate','Flower care']
if name in validname:
return True
def parse(self,data,mac,name):
action={}
action['present'] = 1
return action
def read(self,mac):
result={}
try:
conn = Connector(mac)
conn.connect()
if not conn.isconnected:
conn.connect()
if not conn.isconnected:
return
batteryFirm = bytearray(conn.readCharacteristic('0x38'))
conn.writeCharacteristic('0x33','a01f',response=True)
battery = batteryFirm[0]
firmware = "".join(map(chr, batteryFirm[2:]))
notification = Notification(conn,Miflora)
conn.writeCharacteristic('0x36','0100',response=True)
result['battery'] = battery
result['firmware'] = firmware
result['id'] = mac
received = bytearray(conn.readCharacteristic('0x35'))
temperature = float(received[1] * 256 + received[0]) / 10
sunlight = received[4] * 256 + received[3]
moisture = received[7]
fertility = received[9] * 256 + received[8]
result['sunlight'] = sunlight
result['moisture'] = moisture
result['fertility'] = fertility
result['temperature'] = temperature
result['source'] = globals.daemonname
logging.debug(str(result))
globals.JEEDOM_COM.add_changes('devices::'+conn.mac,result)
return result
except Exception,e:
logging.error(str(e))
return result
def handlenotification(self,conn,handle,data,action={}):
result={}
globals.COMPATIBILITY.append(Miflora)
-
- Timide
- Messages : 80
- Inscription : 15 nov. 2015, 17:10
Re: [ Mi Plant ] Version chinois non reconnu
Merci Seb82 ta solution fonctionne parfaitement chez moi aussi !
Re: [ Mi Plant ] Version chinois non reconnu
CoolSeb82 a écrit : ↑14 mai 2019, 15:00@eristoff, même avec ta modification ça ne fonctionnait pas sur mes nouveaux capteurs MiFlora (mais avec un ancien oui). Par contre le script fonctionnait.
Du coup j'ai modifié le code miflora.py en supprimant l'écoute des notifications et en lisant directement l'adresse où sont les infos. A priori ça fonctionne. Pour ceux que ça intéresse, voici le code (sans garantie) :
Pour info je viens de recevoir un capteur en version 3.2.1 (même l'appli me dit que le dernier firmware est le 3.1.9). Il est gris au lieu de blanc mais tout marche bien a priori
Re: [ Mi Plant ] Version chinois non reconnu
Oui, pareil pour moi. Capteur en firmware 3.2.1 et boitier gris limite verdatre, acheté sur Gearbest. Mais ça fonctionne.
Re: [ Mi Plant ] Version chinois non reconnu
C'est un peu moins classe quoi
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 8 invités