Page 14 sur 17

Re: [Plugin] Climatiseur Mitsubishi (interface série et non MELCloud)

Publié : 16 juil. 2024, 19:57
par Masure
Flying Domotic a écrit : 15 juil. 2024, 14:53 On peut connecter plusieurs clims sur le même serveur MQTT et la même instance de Domoticz (j'en ai 5 chez moi).
...
Merci pour le support Flying Domotic !

Re: [Plugin] Climatiseur Mitsubishi (interface série et non MELCloud)

Publié : 16 juil. 2024, 21:09
par Dr No
Merci Masure pour ce travail remarquable qui vaudrait bien un café et à Flying Domotic, grâce à qui j'ai tout compris maintenant, en fait c'est juste que je ne sais pas lire 😁😄😉

Son aide fut infiniment précieuse pour éviter certaines boulettes. 👍

Re: [Plugin] Climatiseur Mitsubishi (interface série et non MELCloud)

Publié : 16 juil. 2024, 23:07
par Flying Domotic
L'entraide est généralement présente sur les forums, il parait d'ailleurs que c'est plutôt fait pour ça ;-)

Re: [Plugin] Climatiseur Mitsubishi (interface série et non MELCloud)

Publié : 17 juil. 2024, 08:43
par Dr No
Oui, bien sûr, c'est l'évidence mais cela n'empêche pas d'être courtois et reconnaissant du travail des autres 😉

Re: [Plugin] Climatiseur Mitsubishi (interface série et non MELCloud)

Publié : 27 juil. 2024, 18:51
par Dr No
Afin de poursuivre sur ma lancée :

Les climatiseurs MITSUBISHI MSZ-HJ xxxx qui normalement ne sont pas pilotables ne possédant pas de connecteur CN105, le sont finalement.

Après analyse de la doc technique la carte de contrôle comporte un CN105 qui n'est pas monté et sur l'autre face 2 résistances 0603 ne sont pas montées non plus. J'ai donc acheté des connecteurs et désormais je pilote mon MSZ HJ50VA sans souci grâce à un WEMOS mini D1 avec le firmware de Swicago.

Les résistances ; j'ai commencé prudemment avec des 470ohms, ça ne fonctionnait pas je les ai remplacées par des 100ohms et là ça fonctionne parfaitement. ces résistances sont en série dans les connexions Rx et Tx, je suis quasi sûr que si on met un bout de fil donc 0ohms ça fonctionnera aussi bien.

le connecteur c'est une version coudée montée à plat sur le CI c'est un JST 2mm 5 broches référence S05B-PASK-2 Acheté sur Aliexpress :
https://fr.aliexpress.com/item/10050053 ... pt=glo2fra
il n'est pas rouge mais ça fonctionne quand même :D :lol:

J'en ai 9 qui ne me servent à rien ;)

Re: [Plugin] Climatiseur Mitsubishi (interface série et non MELCloud)

Publié : 28 juil. 2024, 10:10
par Dr No
R.A.S. ça a fonctionné parfaitement du premier coup

Re: [Plugin] Climatiseur Mitsubishi (interface série et non MELCloud)

Publié : 30 juil. 2024, 11:35
par Dr No
Bonjour à tous,

J'ai malgré tout un petit souci avec le plugin ?!?!

J'utilise une sonde extérieure au climatiseur pour la régulation. Cette sonde est "Home made" ; c'est un ESP32 programmé en python qui envoie via MQTT une information de température de la pièce toutes les 5 minutes. Cela fonctionne parfaitement et Clim-T°Split s'aligne parfaitement sur ma sonde mais le log de Domoticz me renvoie de drôles de choses :

Toutes les 10s et en permanence j'ai ce retour :

Code : Tout sélectionner

2024-07-29 18:39:43.075 [WebServer] Deprecated RType (devices) for API request. Handled via fallback (getdevices), please use correct API Command! (127.0.0.1)
2024-07-29 18:39:53.061 [WebServer] Deprecated RType (devices) for API request. Handled via fallback (getdevices), please use correct API Command! (127.0.0.1)
2024-07-29 18:40:03.095 [WebServer] Deprecated RType (devices) for API request. Handled via fallback (getdevices), please use correct API Command! (127.0.0.1)
2024-07-29 18:40:13.085 [WebServer] Deprecated RType (devices) for API request. Handled via fallback (getdevices), please use correct API Command! (127.0.0.1)
2024-07-29 18:40:23.064 [WebServer] Deprecated RType (devices) for API request. Handled via fallback (getdevices), please use correct API Command! (127.0.0.1)
2024-07-29 18:40:33.097 [WebServer] Deprecated RType (devices) for API request. Handled via fallback (getdevices), please use correct API Command! (127.0.0.1
Par ailleurs de temps à autre j'ai une erreur :

Code : Tout sélectionner

2024-07-29 17:00:03.565 File "/home/pi/domoticz/plugins/Domoticz-MitsubishiHpMQTT-Plugin/plugin.py", line 269, in onHeartbeat
2024-07-29 17:00:03.565 self.TrySendRemoteTemp()
2024-07-29 17:00:03.565 File "/home/pi/domoticz/plugins/Domoticz-MitsubishiHpMQTT-Plugin/plugin.py", line 213, in TrySendRemoteTemp
2024-07-29 17:00:03.565 response = urllib.request.urlopen(request, timeout=0.5)
2024-07-29 17:00:03.565 File "/usr/lib/python3.7/urllib/request.py", line 222, in urlopen
2024-07-29 17:00:03.565 return opener.open(url, data, timeout)
2024-07-29 17:00:03.565 File "/usr/lib/python3.7/urllib/request.py", line 525, in open
2024-07-29 17:00:03.565 response = self._open(req, data)
2024-07-29 17:00:03.565 File "/usr/lib/python3.7/urllib/request.py", line 543, in _open
2024-07-29 17:00:03.565 '_open', req)
2024-07-29 17:00:03.565 File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
2024-07-29 17:00:03.565 result = func(*args)
2024-07-29 17:00:03.565 File "/usr/lib/python3.7/urllib/request.py", line 1352, in http_open
2024-07-29 17:00:03.565 return self.do_open(http.client.HTTPConnection, req)
2024-07-29 17:00:03.565 File "/usr/lib/python3.7/urllib/request.py", line 1327, in do_open
2024-07-29 17:00:03.565 r = h.getresponse()
2024-07-29 17:00:03.565 File "/usr/lib/python3.7/http/client.py", line 1356, in getresponse
2024-07-29 17:00:03.565 response.begin()
2024-07-29 17:00:03.565 File "/usr/lib/python3.7/http/client.py", line 319, in begin
2024-07-29 17:00:03.565 version, status, reason = self._read_status()
2024-07-29 17:00:03.565 File "/usr/lib/python3.7/http/client.py", line 280, in _read_status
2024-07-29 17:00:03.565 line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
2024-07-29 17:00:03.565 File "/usr/lib/python3.7/socket.py", line 589, in readinto
2024-07-29 17:00:03.565 return self._sock.recv_into(b)
2024-07-29 17:00:03.565 socket.timeout: timed out
Malgré cela ça fonctionne très bien mais j'aimerais bien comprendre ce qui se passe et, hélas cela dépasse mes compétences, une petite aide ne serait pas de refus.

Merci d'avance pour vos lumières

Re: [Plugin] Climatiseur Mitsubishi (interface série et non MELCloud)

Publié : 30 juil. 2024, 13:47
par Flying Domotic
Bonjour,

En ce qui concerne la première erreur (Deprecated Rtype), elle est causée par un élément qui appelle l'API Domoticz avec des paramètres maintenant obsolètes. En gros, un "truc" appelle l'API avec une syntaxe "/json.htm?type=devices" qui maintenant doit être "/json.htm?type=command&param=getdevices".

On trouve des détails à https://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s, paragraphe "Warning Stable 2023.2 (and newer)"

Pour corriger ça, il faut repérer "?type=devices" dans tout ce qui cause avec Domoticz (ça veut dire scripts, modules python, micro contrôleurs externes, ...) et le remplacer par "?type=command&param=getdevices" à tous ces endroits.

Le souci est souvent d'identifier où/qui génère l'appel (maintenant) incorrect. Si le module modifie quelque chose, on peut s'en sortir en traçant les modification par un script du genre :

Code : Tout sélectionner

-- Trace device changes to Domoticz's log
commandArray = {}
-- loop through all the changed devices
for deviceName,deviceValue in pairs(devicechanged) do
    if otherdevices[deviceName] ~= nil then
        print ("Device based event fired on '"..deviceName.."', value '"..tostring(deviceValue).."'");
    end
end
return commandArray
Si ça ne fait que lire, c'est plus compliqué ...

Concernant la seconde erreur, à lire le traceback, il se pourrait que l'erreur vienne de ce qu'une connexion ne peut pas être réalisée dans la demi seconde lors d'une tentative de lecture de la température par le plug-in. A priori, ça serait une requête du plug-in Mitsubishi vers Domoticz. Si Domoticz est chargé et ne répond par en 5 dixièmes de seconde, alors on a l'erreur.

La bonne nouvelle, c'est qu'on a trouvé le coupable de l'erreur précédente (Deprecated Rtype), vu qu'on a un appel "'/json.htm?type=devices&rid='" à la ligne 209 (dans la version 1.3 du plug-in, que j'utilise).

La moins bonne nouvelle, c'est qu'il semble que le plug-in n'ait pas été mis à jour depuis 4 ou 5 ans. A priori, pas de fork qui corrigerait le souci.

Du coup, il faudrait faire 2 modifs dans le code original :
1)Ligne 209, remplacer ...

Code : Tout sélectionner

domoticzRemoteTempUrl = self.DomoticzBaseUrl + '/json.htm?type=devices&rid=' + str(self.RemoteTempDeviceId)
... par ...

Code : Tout sélectionner

domoticzRemoteTempUrl = self.DomoticzBaseUrl + '/json.htm?type=command&param=getdevices&rid=' + str(self.RemoteTempDeviceId)
... pour corriger le premier problème.

2) Ligne 213, remplacer ...

Code : Tout sélectionner

response = urllib.request.urlopen(request, timeout=0.5)
... par ...

Code : Tout sélectionner

response = urllib.request.urlopen(request, timeout=1)
... pour augmenter le timeout d'une demi seconde à une seconde, et donner plus de temps pour éviter la seconde erreur.

Autre détail : si la température est mise à jour par l'ESP toutes les 5 minutes, il faut vérifier que le paramètre "Don't send remote temp after being unseen for X minutes:" du chaque instance du plug-in soit bien supérieur à 5 (sinon, on passera son temps à basculer entre la température extérieure et celle du split). Une meilleure façon de faire serait que l'ESP envoie la température toutes les minutes.

Re: [Plugin] Climatiseur Mitsubishi (interface série et non MELCloud)

Publié : 30 juil. 2024, 16:11
par Dr No
Flying Domotic t'es le meilleur !!!!

Je me souviens avoir eu quelques soucis identiques avec quelques un de mes scripts lors d'une mise à jour de Domoticz mais bien que le message me dise quelque chose, je n'ai pas fait le rapprochement. Je viens de faire tes 2 modifs dans le plugin et, désormais, silence radio dans mon log.

C'est super ça fait avancer le schmilblik !!!

Reste à modifier le dépôt Github maintenant, Masurov si tu nous lis ... ;) :D

Re: [Plugin] Climatiseur Mitsubishi (interface série et non MELCloud)

Publié : 30 juil. 2024, 16:36
par Flying Domotic
Attention, si on fait la modif sur GitHub, il faut vérifier dans le plug-in la version de Domoticz pour ne pas casser les anciennes versions, qui ne supportent pas la nouvelle syntaxe.