Kask29 / Domoticz-Renault-Dacia-Plugin

Plugin to connect Renault or Dacia electrical car to Domoticz.
MIT License
0 stars 0 forks source link

C est ou que cela bloque #3

Closed pepefr closed 10 months ago

pepefr commented 11 months ago

Bonjour ,

Tout d abord un grand merci pour ce Plugin ,

Je rencontre un soucis dans Domoticz il n y a rien qu il remonte mis a part Vehicule trouve Batterie Ok et Cockpit Ok et ensuite message d erreur

Maconfig est la suivante Domoticz Stable 2023.2 sous Ubuntu 22.04.3 LTS quand je lance dans terminal renaul-api status j ai bien des remontées (ci joint capture)

En vous remerciant d avoir prit le temps de me lire et en vous remerciant de nouveau pour le Plugin

PP

Log Domoticz _### _2023-12-17 11:47:41.395 Zoe: Véhicule trouvé ! 2023-12-17 11:47:42.232 Zoe: Battery status ok 2023-12-17 11:47:42.684 Zoe: Cockpit ok 2023-12-17 11:47:43.001 Error: Zoe: Call to function 'onCommand' failed, exception details: 2023-12-17 11:47:43.002 Error: Zoe: Traceback (most recent call last): 2023-12-17 11:47:43.002 Error: Zoe: File "/home/MOI/domoticz/plugins/Domoticz-Renault-Dacia-Plugin/plugin.py", line 397, in onCommand 2023-12-17 11:47:43.002 Error: Zoe: _plugin.onCommand(Unit, Command, Level, Hue) 2023-12-17 11:47:43.002 Error: Zoe: File "/home/MOI/domoticz/plugins/Domoticz-Renault-Dacia-Plugin/plugin.py", line 139, in onCommand 2023-12-17 11:47:43.002 Error: Zoe: loop.run_until_complete(self.onAction("update")) 2023-12-17 11:47:43.002 Error: Zoe: File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete 2023-12-17 11:47:43.002 Error: Zoe: return future.result() 2023-12-17 11:47:43.002 Error: Zoe: File "/home/MOI/domoticz/plugins/Domoticz-Renault-Dacia-Plugin/plugin.py", line 203, in onAction 2023-12-17 11:47:43.002 Error: Zoe: Location = await vehicle.get_location() 2023-12-17 11:47:43.002 Error: Zoe: File "/usr/local/lib/python3.10/dist-packages/renault_api/renault_vehicle.py", line 144, in get_location 2023-12-17 11:47:43.002 Error: Zoe: response = await self.session.get_vehicle_data( 2023-12-17 11:47:43.002 Error: Zoe: File "/usr/local/lib/python3.10/dist-packages/renault_api/renault_session.py", line 221, in get_vehicle_data 2023-12-17 11:47:43.002 Error: Zoe: return await kamereon.get_vehicle_data( 2023-12-17 11:47:43.002 Error: Zoe: File "/usr/local/lib/python3.10/dist-packages/renault_api/kamereon/init.py", line 307, in get_vehicle_data 2023-12-17 11:47:43.002 Error: Zoe: await request( 2023-12-17 11:47:43.002 Error: Zoe: File "/usr/local/lib/python3.10/dist-packages/renault_api/kamereon/init.py", line 159, in request 2023-12-17 11:47:43.002 Error: Zoe: kamereon_response.raise_for_error_code() 2023-12-17 11:47:43.002 Error: Zoe: File "/usr/local/lib/python3.10/dist-packages/renault_api/kamereon/models.py", line 135, in raise_for_error_code 2023-12-17 11:47:43.002 Error: Zoe: error.raise_for_error_code() 2023-12-17 11:47:43.002 Error: Zoe: File "/usr/local/lib/python3.10/dist-packages/renault_api/kamereon/models.py", line 97, in raise_for_error_code 2023-12-17 11:47:43.002 Error: Zoe: raise exceptions.KamereonResponseException( 2023-12-17 11:47:43.002 Error: Zoe: renaultapi.kamereon.exceptions.KamereonResponseException: ('err.tech.502', 'VNEXT an internal error occured while processing request : 403 FORBIDDEN')****_

Capture d’écran 2023-12-17 à 11 52 40

Kask29 commented 11 months ago

Bonjour, il m'arrive également d'avoir des erreurs dans les logs de Domoticz lors de certaines connexions mais normalement ca empêche complétement la récupération de données. (je suis sous la même version que vous pour Domoticz,, Python en 3.7).

Si les dispositifs ont bien été créés, dans les interrupteurs il y a moyen de forcer la mise à jour (par contre le nombre de tentative par heure est limité côté du serveur). Pouvez-vous essayer ?

Par contre de mon côté la charge programmée par domoticz ne fonctionne plus du tout (mais l'appli sur le téléphone non plus, donc je soupsonne plutôt un problème général que Domoticz), je ne peux que récupérer les données

pepefr commented 11 months ago

Bonjour kask29,

Merci de votre aide et un grand merci pour le plugin

les dispositifs ont bien été crée mais ils ne m affichent rien ,j ai mis 1 Heure en fréquence d'actualisation et à vous lire je passe à 6 heures on verra bien , peut etre que je devrai passer sous la meme version que vous de Python ?

quand vous dites forcer la mise à jour c'est bien dans interrupteur "Zoe-Mis a jour" ? Si c'est cela je l'ai déja fait mais rien n'apparait dans mes mesures Domoticz tout reste a Zero

Je vais essayer de passer en Python 3.7

en vous remerciant de nouveau

Kask29 commented 11 months ago

Vous pouvez laisser 1h (j'ai 30 minutes et ça ne pose pas de problème avec le serveur). En fait, je pense que l'erreur vient de la récupération de la position (location) car même avec la commande renault-api à priori il ne récupère pas les données.

Essayez de commenter (mettez un # devant) les lignes 203, 207, 219, 220, 266, 269, 270, 282, 283, 324, 328, 340, 341 (toutes les lignes faisant appel à "Location") dans le fichier plugin.py. Il faudra peut-être recréer un nouveau dispositif.

pepefr commented 11 months ago

J ai essayé effectivement , beaucoup moins d erreur mais malheureusement les dispositifs dans "Mesures" reste à zero

demain j essaierai de changer de version de Python pour être sur la même configuration que vous

Kask29 commented 11 months ago

Je ne pense pas que la version de Python soit en cause, sinon vous n'auriez pas :

_**### **2023-12-17 11:47:41.395 Zoe: Véhicule trouvé !
2023-12-17 11:47:42.232 Zoe: Battery status ok
2023-12-17 11:47:42.684 Zoe: Cockpit ok

Reste t'il des erreurs ? Si dans les log vous n'avez pas quelque chose comme :

 2023-12-17 20:28:09.578 NOM: Total mileage : 12345 km
2023-12-17 20:28:09.578 NOM: Battery level : 12%
2023-12-17 20:28:09.579 NOM: Battery temperature : 20°C
2023-12-17 20:28:09.579 NOM: Battery autonomy : 123 km
2023-12-17 20:28:09.580 NOM: Battery available energy : 12 kWh
2023-12-17 20:28:09.580 NOM: Battery capacity : 123 kWh
2023-12-17 20:28:09.581 NOM: Plug status : 0
2023-12-17 20:28:09.581 NOM: Charging status : 0.0
2023-12-17 20:28:09.582 NOM: Charging remaining time : 265 ??
2023-12-17 20:28:09.582 NOM: Instantaneous Power : None kWh `

C'est que quelque chose ne fonctionne pas comme prévu avant même que les dispositifs soient mis à jour.

pepefr commented 11 months ago

dans les log Domoticz je n ai pas tout cela juste Vehicule trouvé ,battery status ok et Cockpit ok , rien ne remonte sur la batterie comme vous ,

j ai juste ces infos quand je lance un terminal avec renault-api status comme indiqué plu haut .

merci beaucoup de votre aide

Kask29 commented 11 months ago

Je comprends que du coup il n'y a plus d'erreur qui apparait dans les log Domoticz, mais que pour autant les dispositifs restent à leur état initial. Corrigez si je me trompe.

Il reste quelques lignes sur la localisation qui peuvent poser des problèmes. Commentez également les lignes : 233, 234, 247 296, 297, 310 354, 355, 368

Acutellement dans les log vous devriez avoir à minima :

Battery status ok (la ligne 200 du code)
Cockpit ok (la ligne 202 du code)
Location ok (la ligne 204 du code)

Pour trouver à partir de quelle ligne le problème survient, vous pouvez également insérer entre chaque ligne de 208 à 221 la commande suivante : Domoticz.Log("TEST LOG n") # remplacez n par le numéro de la ligne testée.

pepefr commented 11 months ago

ouahhh!! trop bien ca y est ca remonte merci beaucoup !!!

j ai egalement commenté les lignes 62 et 93

et plu aucun message d erreur

parcontre j ai remarque qu a l installation du plugin que de la ligne 106 a 114 n etaient pas pris en compte ,mais du coup je l ai fait manuellement ,

Il faudra que j essaye une charge programmer pour voir

juste deux petites questions dans "puissance de charge" il serait possible d après vous de rajouter 7 kW

et l autre question peut on "de-commenter " les lignes 101 et 102

En tous cas un très très grand merci

vous etes vraiment trop fort vous tous a créer des plugins ,perso rien que de voir toutes les lignes les symboles j ai mon cerveau qui part en vrille :D

Kask29 commented 11 months ago

Super !

Normalement 62 et 93 ne posaient pas de problème (mais de toute façon servaient à rien sans données) 106 à 114 ca devait copier les fichiers, mais au pire la copie manuelle dans les bons répertoires et le tour est joué.

Pour rajouter une valeur de puissance de charge, dans le fichier Dacia.html, insérez entre la ligne 75 et la ligne 76 : <option value="7">7 kW</option>

Pour 101 et 102 je les avais désactivées car chez moi ca ne fonctionnait pas, vous pouvez toujours tenter le coup et me dire si ca marche pour vous.

Sinon pour programmer la charge ce que je faisais quand ça fonctionnait encore :

NOM DE VOTRE DISPOSITIF : chez vous Zoe NOM DU DUMMY SELECTOR : c'est celui à créer manuellement

return {
    on = {
        devices = {
            '**NOM DE VOTRE DISPOSITIF** - Batterie',
            '**NOM DU DUMMY SELECTOR**'
        }
    },
    logging = {
        level = domoticz.LOG_INFO,
        marker = 'template',
    },
    execute = function(domoticz, device)
        domoticz.log('**NOM DE VOTRE DISPOSITIF** - Charge : ' .. domoticz.devices('**NOM DE VOTRE DISPOSITIF** - Batterie').percentage .. '% / ' .. domoticz.devices('**NOM DU DUMMY SELECTOR**').levelName .. '%', domoticz.LOG_INFO)

        if ( tonumber(domoticz.devices('**NOM DE VOTRE DISPOSITIF** - Batterie').percentage) >= tonumber(domoticz.devices('**NOM DU DUMMY SELECTOR**').levelName)) then
            if ( tonumber(domoticz.devices('**NOM DE VOTRE DISPOSITIF** - Charge en cours').sensorValue) >= 1 ) then
                domoticz.log("Charge atteinte -> Arrêt de la charge")
                domoticz.devices('**NOM DE VOTRE DISPOSITIF** - Arrêter la charge').switchOff()
            else
                domoticz.log("Charge déjà arrêtée")
            end
        else
            if ( tonumber(domoticz.devices('**NOM DE VOTRE DISPOSITIF** - Charge en cours').sensorValue) >= 1 ) then
                domoticz.log("Charge en cours")
            else
                if ( tonumber(domoticz.devices('**NOM DE VOTRE DISPOSITIF** - Branchée').sensorValue) >= 1) then
                    domoticz.log("Charge arrêtée ! Voiture branchée")
                else
                    domoticz.log("Charge arrêtée ! Voiture débranchée")
                end

            end
        end

    end
}

--> le tout permet de ne pas arrêter la charge si le taux souhaité n'est pas atteint, et ca permet d'automatiser le tout, car le selector peut également avoir un planning.

pepefr commented 11 months ago

merci pour ces informations je me mets precieusement cela de coté

j ai commanté la ligne 101 mais pas la 102 qui apperement ne serait pas pris en charge par Renault si j ai bien compris

Payload {'action': 'cancel'} to stop HVAC does not create errors but has no effect on the vehicle (Renault side limitation)

le device est cree dans Domoticz mais il ne se passe rien

du coup je suis aller dans terminal j ai essayé cette commande

renault-api hvac 'start' '--temperature' '20'

la Zoe c est mise à faire 2 coups de clignotant mais rien ne c est produit , vu que le véhicule est déja à température elle ne s enclenche pas ? Enfin elle a bien recu la commande , il faudrai que j essaye au ptit matin

d'ou ma nouvelle question dans le script comment pourrait être ecrit cela ? le probleme je n ai pas assé de connaissance pour savoir ou l'écrire

en ligne 144 et 145 si je rajoute ceci est ce bon ?

if Unit == 23: loop.run_until_complete(self.onAction("hvac 'start' '--temperature' '20'"))

ou bien faut il l écrire ailleurs ?

EDIT

cela correspond a quoi cela d'après vous "at TEXT"

Capture d’écran 2023-12-19 à 22 51 14

pepefr commented 11 months ago

Bonsoir ,

est ce que cela serait mieux ?Je préfère vous demandez car j en suis a mon vingtième device Zoe de crée :D et rien ne fonctionne ,avant que je sois sur le point de creer un script Boom la Zoé :D ,je prefere votre avis

en ligne 144 et 145 j insere cela

    if Unit == 23:
        loop.run_until_complete(self.onAction("StartHvac"))

et en ligne 374 a 381 ceci

hardware_name = Parameters["Name"] if Action == "StartHvac":

Rien de plus à effectuer

            return
        elif Action == "hvac 'start' '--temperature' '20'":
            if temperature == 20:
                Domoticz.Log(f"Lancement de la clim de {hardware_name}.")
                await vehicle.set_start_hvac()
Kask29 commented 11 months ago

Bonsoir,

J'ai ajouté un fichier plugin_hvac pour préparer (mais sans reprendre en compte la desactivation de la localisation). Comme il y a de nouveaux dispositifs gérés par le plugin, il faudra créer un nouveau matériel.

Si vous voulez regarder, ce sont les lignes 98, 147, 380 / 384 (attention, plusieurs lignes à chaque fois à copier)

pepefr commented 10 months ago

Bonsoir ,

alors du coup , dans un premier temps j ai copié toutes les lignes qui m ont ramenées un message d erreur au niveau de l api dans le log Domoticz ,en gros comme quoi il fallait selectionner une température entre 14 ° et 30 ° mais rien de plus , et ensuite Domoticz a planté suite à une de mes erreurs , j ai donc redémarré Domoticz et la plu de dispositifs "Zoé" je n ai pas trop bien compris pourquoi , il m a falu supprimé les lignes 380 a 384 pour retrouver les dispositifs du Plugin de base ,je ne sais pas qu elle erreur j ai pu faire ,et ce soir j ai beau les rajouter les dispositifs disparraissent :(

Donc a l instant je viens de remettre le plugin de tel manière à qu'il soit fonctionnel comme vous me l'aviez decrit plu haut et je me suis crée un ptit fichier Sh et un Dummy virtuel pointant vers celui ci (je pense que pour vous c est une façon barbare :D ) mais ca fonctionne bien ,le préchauffage(clim) ce lance !! pour 5 minutes

mais je pense qu il y a beaucoup plus d options à avoir via votre plugin à en voir la capture ci jointe

Vous cela fonctionne du coup ?

j'aurai au moins appris à commenter une ligne :D ####

Plu serieusement je vous souhaites de trés bonne fêtes de fin d année

Capture d’écran 2023-12-22 à 21 49 45

Kask29 commented 10 months ago

C'est peut-être juste les lignes 383 et 388 (return) qu'il faut supprimer. Mais si ca marche avec un script Sh et un interrupteur virtuel c'est parfait.

Moi rien ne marche, sauf la remonté des infos (par contre j'ai bien la localisation) ; mais comme ça ne marche pas non plus sur l'appli téléphone ca vient pas de mon Domoticz mais de la voiture surement.

Je vous souhaite également de bonnes fêtes. Je clos le sujet car on a un peu dérivé, n'hésitez pas à en ouvrir un autre au besoin)