Deux modules atteints sur trois, et la jauge suit la cellule la plus faible
La console repond depuis Linux. L'adressage a distance fonctionne : un branchement par pack suffit, et `soh <adresse>` donne le compteur de sante par cellule en une seconde. Le module 3 designe exactement les cinq cellules deduites ce matin de son historique. Le module 1, sain en juillet, est passe de 7 a 498 evenements de surtension en six semaines ; sa cellule 12 oscille sur 691 mV quand ses douze cellules saines font 178 mV. Ses pires ecarts sont en bas, pas en haut : 317 mV a un pretendu 2 % de charge alors que le parc etait a 3,236 V par cellule. Le BMS croit la batterie vide parce qu'une cellule l'est. C'est tres probablement le genou a 33 % mesure dans la courbe energie/SOC. Correction : le champ SOH de stat n'est pas une note sur 100, le module irreprochable affiche 0 comme le module abime. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
111
HANDOFF.md
111
HANDOFF.md
@@ -3806,12 +3806,19 @@ Compteurs `stat`, deux modules du meme parc :
|
||||
| Bat HV Times | **7** | **416** |
|
||||
| Bat OV Times | 8 | 179 |
|
||||
| CYCLE Times | 0 | 24 |
|
||||
| **SOH** | **100** | **0** |
|
||||
| SOH | 100 | 0 |
|
||||
|
||||
⚠️ **Le BMS note lui-meme ce module 0 sur 100.** Et c'est celui que le
|
||||
proprietaire croyait « le moins merdique » (sa BAT4). Le module qu'il juge le
|
||||
plus abime, sa BAT3, est deja hors du parc — il n'est pour rien dans le bridage
|
||||
quotidien. **Le bridage vient d'un module encore en service.**
|
||||
Et c'est le module que le proprietaire croyait « le moins merdique ». Le module
|
||||
qu'il juge le plus abime, sa BAT3, est deja hors du parc — il n'est pour rien
|
||||
dans le bridage quotidien. **Le bridage vient d'un module encore en service.**
|
||||
|
||||
⚠️ **CORRECTION du 05/09 12:05 — le champ `SOH` de `stat` n'est PAS une note de
|
||||
sante sur 100.** J'avais ecrit « le BMS note lui-meme ce module 0 sur 100 ».
|
||||
C'est faux : la lecture en direct de la chaine montre un module 2 irreprochable
|
||||
par toutes les autres mesures (0 evenement de surtension, 0 `SOHCount` sur ses
|
||||
quinze cellules, 2 mV d'ecart) et qui affiche pourtant `SOH 0`. Les grandeurs
|
||||
reellement discriminantes sont `Bat HV Times`, `Bat OV Times`, `SOH Times`, et
|
||||
surtout le `SOHCount` par cellule que renvoie la commande `soh [adresse]`.
|
||||
|
||||
### C'est chronique, pas en fuite
|
||||
Depassements de 3550 mV : 1 a 4 releves par jour, **tous les jours depuis le
|
||||
@@ -3852,3 +3859,97 @@ adaptateurs CH340 — y est desactive.
|
||||
|
||||
---
|
||||
*Document mis a jour le : 05/09/2026 (~11:40) — cellules 2, 6, 10, 12, 15 du module adresse 3 identifiees comme cause du bridage ; SOH 0 contre 100 sur un module sain*
|
||||
|
||||
## 50. Session du 05/09/2026 (midi) — Lecture en direct de la chaine BMS depuis Linux
|
||||
|
||||
Cable FTDI FT232R branche sur le poste Ubuntu, `tools/pylontech-console.mjs`
|
||||
en service. **Le diagnostic du matin est confirme, elargi, et une de ses
|
||||
affirmations est fausse.**
|
||||
|
||||
### La console voit toute la chaine : un branchement par PACK, pas par module
|
||||
`stat 3` et `soh 3` repondent depuis le module 1 : l'adressage a distance
|
||||
fonctionne, bien que `help` ne documente pas l'argument. Mais `pwr` ne liste
|
||||
que **trois modules presents** (1, 2, 3) et « Absent » de 4 a 16.
|
||||
|
||||
⚠️ **Les deux packs de quatre ont chacun leur chaine BMS.** Celle-ci porte
|
||||
trois modules vivants (le quatrieme, BAT3, est eteint). Les quatre autres sont
|
||||
sur une chaine distincte, invisible d'ici : il faut **deux positions de cable
|
||||
en tout**, pas huit.
|
||||
|
||||
### Jeu de commandes (releve par `help`, plus jamais a redecouvrir)
|
||||
`bat [pwr][index]` · `data [event/history][item]` ·
|
||||
`datalist [event/history][item/bat][batnun][volt/curr/temp/coul][item]` ·
|
||||
`disp` (affichage periodique) · `getpwr` · `info` · `log` · `pwr [index]` ·
|
||||
**`soh [adresse]`** · `stat` · `time [a] [m] [j] [h] [mn] [s]`.
|
||||
Section « Remote command » : `data`, `info`, `login`, `logout`, `soh`, `stat`.
|
||||
⚠️ A NE JAMAIS ENVOYER : `shut` (arret du module), `trst` (reset),
|
||||
`updata` (mise a jour firmware), `login` (mode admin).
|
||||
|
||||
### `soh <adresse>` : le compteur de sante par cellule, en une seconde
|
||||
C'est LA commande a retenir. Elle donne les quinze `SOHCount` d'un module sans
|
||||
extraire son historique. Verdict de la chaine :
|
||||
|
||||
| module | code-barres | cellules marquees (`SOHCount`) | total |
|
||||
|---|---|---|---:|
|
||||
| 1 | K220803C30160322 | 6 (334) · 7 (50) · 12 (158) · 14 (8) | **550** |
|
||||
| 2 | — | aucune | **0** |
|
||||
| 3 | K220803C30160319 | 2 (132) · 6 (181) · 10 (146) · 12 (254) · 15 (400) | **1113** |
|
||||
|
||||
Le module 3 designe **exactement les cinq cellules** deduites le matin meme de
|
||||
ses 37 jours d'historique. Deux methodes sans rapport, meme resultat.
|
||||
|
||||
### Le module 2 donne enfin un etalon
|
||||
Quinze cellules entre 3363 et 3365 mV — **2 mV d'ecart**, zero surtension, zero
|
||||
compteur. Voila a quoi ressemble un US2000C sain sur cette installation.
|
||||
|
||||
### CORRECTION — `SOH` dans `stat` n'est pas une note sur 100
|
||||
J'ai ecrit le matin « le BMS note ce module 0 sur 100 ». **C'est faux** : le
|
||||
module 2, irreprochable par toute autre mesure, affiche lui aussi `SOH 0`.
|
||||
Les grandeurs discriminantes sont `Bat HV Times`, `Bat OV Times`, `SOH Times`
|
||||
et le `SOHCount` par cellule. Le diagnostic tient ; c'est cet argument-la qui
|
||||
tombe.
|
||||
|
||||
### Le module 1 s'est effondre depuis juillet
|
||||
Memes compteurs, meme module, six semaines d'ecart :
|
||||
|
||||
| | 24/07 | 05/09 |
|
||||
|---|---:|---:|
|
||||
| Bat HV Times | 7 | **498** |
|
||||
| Bat OV Times | 8 | **86** |
|
||||
| Shut Times | 4 | **751** |
|
||||
|
||||
Il a desormais **plus** d'evenements de surtension que le module 3. Son
|
||||
historique (1681 enregistrements, 14/08 au 05/09) designe les cellules
|
||||
**6, 7 et 12** — les memes que son `SOHCount`, quatrieme concordance.
|
||||
|
||||
**La cellule 12 oscille entre 2953 et 3644 mV**, soit 691 mV d'amplitude,
|
||||
quand les douze cellules saines de ce module font 178 mV. Elle est au bord de
|
||||
la coupure basse.
|
||||
|
||||
### Consequence pour le bilan energetique : la jauge de SOC est fausse par le bas
|
||||
Les pires ecarts du module 1 ne sont pas en haut mais **en bas** : 317 mV a
|
||||
« SOC 2-3 % » le 26/08, alors que le parc etait a 48,55 V, soit 3,236 V par
|
||||
cellule en moyenne — un etat de charge reel de l'ordre de 25 %, pas 2 %. Le
|
||||
BMS voit sa cellule 12 a 2953 mV, la croit vide, et annonce 2 %.
|
||||
|
||||
⚠️ **C'est tres probablement l'explication de l'effondrement de la jauge en bas
|
||||
d'echelle** documente en §28 et mesure en §41 (0,097 kWh par point sous 33 %
|
||||
contre 0,169 au-dessus). La jauge ne mesure pas le parc : elle suit la cellule
|
||||
la plus faible du module le plus faible. Le « genou » a 32-33 % n'est pas une
|
||||
propriete du LiFePO4, c'est la signature de la cellule 12 du module 1.
|
||||
A reverifier apres reequilibrage — la courbe devrait se redresser.
|
||||
|
||||
### Horloge
|
||||
`pwr` horodate les trois modules a `2026-09-05 18:07:5x` alors qu'il etait
|
||||
11:58 : **environ 6 h 10 d'avance**, mesure directement. L'estimation de 8 h
|
||||
obtenue le matin par correlation est superseded par cette lecture directe.
|
||||
La commande `time` permet de corriger — ecriture, donc en attente de
|
||||
validation du proprietaire.
|
||||
|
||||
### Correction d'outil
|
||||
`--historique` bouclait sur des index croissants alors que **une seule commande
|
||||
`datalist history dtls 1` pagine deja jusqu'au dernier enregistrement** : les
|
||||
119 commandes suivantes relancaient le meme vidage complet. Corrige.
|
||||
|
||||
---
|
||||
*Document mis a jour le : 05/09/2026 (~12:15) — chaine BMS lue en direct depuis Linux ; deux modules atteints sur trois ; la jauge de SOC suit la cellule la plus faible*
|
||||
|
||||
110
docs/mesures/batteries/202609051158-console.txt
Normal file
110
docs/mesures/batteries/202609051158-console.txt
Normal file
@@ -0,0 +1,110 @@
|
||||
|
||||
===== 05/09/2026 11:58:11 =====
|
||||
help
|
||||
help
|
||||
|
||||
@
|
||||
|
||||
Local command:
|
||||
|
||||
bat Battery data show - bat [pwr][index]
|
||||
|
||||
data History data load - data [event/history][item]
|
||||
|
||||
datalist Show recorded data - datalist [event/history][item/bat][batnun][volt/curr/temp/coul][item]
|
||||
|
||||
disp Display Info at regular intervals - disp [(pwrs pwrNo)/val]/[(bats batNo)/volt/curr/temp]
|
||||
|
||||
getpwr Get power Info - getpwr
|
||||
|
||||
help Help [cmd]
|
||||
|
||||
info Device infomation - info
|
||||
|
||||
log Log information show - log
|
||||
|
||||
login Login Admin mode - login [password]
|
||||
|
||||
logout user mode - logout
|
||||
|
||||
pwr Power data show - pwr [index]
|
||||
|
||||
shut Shut down - shut
|
||||
|
||||
soh State of health - soh [addr]
|
||||
|
||||
stat Statistic data show - stat
|
||||
|
||||
time Time - time [year] [month] [day] [hour] [minute] [second]
|
||||
|
||||
trst Test Soft Reset - trst
|
||||
|
||||
updata updata system - updata
|
||||
|
||||
**********************************************************
|
||||
|
||||
Remote command:
|
||||
|
||||
Press [Enter] to be continued,other key to exit
|
||||
|
||||
|
||||
|
||||
data History data load - data [event/history][item]
|
||||
|
||||
info Device infomation - info
|
||||
|
||||
login Login Admin mode - login [password]
|
||||
|
||||
logout user mode - logout
|
||||
|
||||
soh State of health - soh [addr]
|
||||
|
||||
stat Statistic data show - stat
|
||||
|
||||
Command completed successfully
|
||||
|
||||
$$
|
||||
|
||||
|
||||
===== 05/09/2026 11:58:27 =====
|
||||
pwr
|
||||
pwr
|
||||
|
||||
@
|
||||
|
||||
Power Volt Curr Tempr Tlow Thigh Vlow Vhigh Base.St Volt.St Curr.St Temp.St Coulomb Time B.V.St B.T.St MosTempr M.T.St
|
||||
|
||||
1 50572 6374 25000 23900 24000 3361 3378 Charge Normal Normal Normal 71% 2026-09-05 18:07:52 Normal Normal 23900 Normal
|
||||
|
||||
2 50483 6001 25200 24200 24800 3364 3367 Charge Normal Normal Normal 69% 2026-09-05 18:07:50 Normal Normal 23800 Normal
|
||||
|
||||
3 50598 6142 24900 23500 24100 3364 3383 Charge Normal Normal Normal 75% 2026-09-05 18:07:50 Normal Normal 24100 Normal
|
||||
|
||||
4 - - - - - - - Absent - - - - - - -
|
||||
|
||||
5 - - - - - - - Absent - - - - - - -
|
||||
|
||||
6 - - - - - - - Absent - - - - - - -
|
||||
|
||||
7 - - - - - - - Absent - - - - - - -
|
||||
|
||||
8 - - - - - - - Absent - - - - - - -
|
||||
|
||||
9 - - - - - - - Absent - - - - - - -
|
||||
|
||||
10 - - - - - - - Absent - - - - - - -
|
||||
|
||||
11 - - - - - - - Absent - - - - - - -
|
||||
|
||||
12 - - - - - - - Absent - - - - - - -
|
||||
|
||||
13 - - - - - - - Absent - - - - - - -
|
||||
|
||||
14 - - - - - - - Absent - - - - - - -
|
||||
|
||||
15 - - - - - - - Absent - - - - - - -
|
||||
|
||||
16 - - - - - - - Absent - - - - - - -
|
||||
|
||||
Command completed successfully
|
||||
|
||||
135
docs/mesures/batteries/202609051159-console.txt
Normal file
135
docs/mesures/batteries/202609051159-console.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
|
||||
===== 05/09/2026 11:59:07 =====
|
||||
info
|
||||
info
|
||||
|
||||
@
|
||||
|
||||
Device address : 1
|
||||
|
||||
Manufacturer : Pylon
|
||||
|
||||
Device name : US2000C
|
||||
|
||||
Board version : V10R04
|
||||
|
||||
Board : NF4.E2
|
||||
|
||||
Main Soft version : B69.13.0.0
|
||||
|
||||
Soft version : V1.4
|
||||
|
||||
Boot version : V1.0
|
||||
|
||||
Comm version : V2.0
|
||||
|
||||
Release Date : 22-01-24
|
||||
|
||||
Barcode : K220803C30160322
|
||||
|
||||
|
||||
|
||||
Specification : 48V/50AH
|
||||
|
||||
Cell Number : 15
|
||||
|
||||
Max Dischg Curr : -90000mA
|
||||
|
||||
Max Charge Curr : 90000mA
|
||||
|
||||
EPONPort rate : 1200
|
||||
|
||||
Console Port rate : 115200
|
||||
|
||||
Command completed successfully
|
||||
|
||||
$$
|
||||
|
||||
|
||||
===== 05/09/2026 11:59:09 =====
|
||||
soh 2
|
||||
soh 2
|
||||
|
||||
@
|
||||
|
||||
Power 2
|
||||
|
||||
Battery Voltage SOHCount SOHStatus
|
||||
|
||||
0 3364 0 Normal
|
||||
|
||||
1 3364 0 Normal
|
||||
|
||||
2 3363 0 Normal
|
||||
|
||||
3 3364 0 Normal
|
||||
|
||||
4 3364 0 Normal
|
||||
|
||||
5 3363 0 Normal
|
||||
|
||||
6 3364 0 Normal
|
||||
|
||||
7 3363 0 Normal
|
||||
|
||||
8 3364 0 Normal
|
||||
|
||||
9 3365 0 Normal
|
||||
|
||||
10 3364 0 Normal
|
||||
|
||||
11 3364 0 Normal
|
||||
|
||||
12 3364 0 Normal
|
||||
|
||||
13 3364 0 Normal
|
||||
|
||||
14 3364 0 Normal
|
||||
|
||||
Command completed successfully
|
||||
|
||||
$$
|
||||
|
||||
pylon>
|
||||
|
||||
===== 05/09/2026 11:59:10 =====
|
||||
soh 3
|
||||
soh 3
|
||||
|
||||
@
|
||||
|
||||
Power 3
|
||||
|
||||
Battery Voltage SOHCount SOHStatus
|
||||
|
||||
0 3372 0 Normal
|
||||
|
||||
1 3358 132 Normal
|
||||
|
||||
2 3370 0 Normal
|
||||
|
||||
3 3370 0 Normal
|
||||
|
||||
4 3369 0 Normal
|
||||
|
||||
5 3377 181 Normal
|
||||
|
||||
6 3370 0 Normal
|
||||
|
||||
7 3369 0 Normal
|
||||
|
||||
8 3370 0 Normal
|
||||
|
||||
9 3364 146 Normal
|
||||
|
||||
10 3373 0 Normal
|
||||
|
||||
11 3363 254 Normal
|
||||
|
||||
12 3371 0 Normal
|
||||
|
||||
13 3371 0 Normal
|
||||
|
||||
14 3362 400 Normal
|
||||
|
||||
Command completed successfully
|
||||
222
docs/mesures/batteries/202609051200-console.txt
Normal file
222
docs/mesures/batteries/202609051200-console.txt
Normal file
@@ -0,0 +1,222 @@
|
||||
|
||||
===== 05/09/2026 12:00:00 =====
|
||||
stat 1
|
||||
stat 1
|
||||
|
||||
@
|
||||
|
||||
Device address 1
|
||||
|
||||
Data Items : 849
|
||||
|
||||
HisData Items : 1794
|
||||
|
||||
Charge Cnt. : 179
|
||||
|
||||
Discharge Cnt. : 0
|
||||
|
||||
Charge Times : 54832
|
||||
|
||||
Status Cnt. : 178
|
||||
|
||||
Idle Times : 65187
|
||||
|
||||
COC Times : 0
|
||||
|
||||
COC2 Times : 73
|
||||
|
||||
DOC Times : 0
|
||||
|
||||
DOC2 Times : 0
|
||||
|
||||
COCA Times : 0
|
||||
|
||||
DOCA Times : 0
|
||||
|
||||
SC Times : 0
|
||||
|
||||
Bat OV Times : 86
|
||||
|
||||
Bat HV Times : 498
|
||||
|
||||
Bat LV Times : 49
|
||||
|
||||
Bat UV Times : 0
|
||||
|
||||
Bat SLP Times : 0
|
||||
|
||||
Pwr OV Times : 0
|
||||
|
||||
Pwr HV Times : 0
|
||||
|
||||
Pwr LV Times : 0
|
||||
|
||||
Pwr UV Times : 0
|
||||
|
||||
Pwr SLP Times : 0
|
||||
|
||||
COT Times : 0
|
||||
|
||||
CUT Times : 0
|
||||
|
||||
DOT Times : 0
|
||||
|
||||
DUT Times : 0
|
||||
|
||||
CHT Times : 0
|
||||
|
||||
CLT Times : 0
|
||||
|
||||
DHT Times : 0
|
||||
|
||||
DLT Times : 0
|
||||
|
||||
Shut Times : 751
|
||||
|
||||
Reset Times : 9
|
||||
|
||||
RV Times : 0
|
||||
|
||||
Input OV Times : 0
|
||||
|
||||
SOH Times : 131
|
||||
|
||||
BMICERR Times : 0
|
||||
|
||||
CYCLE Times : 25
|
||||
|
||||
SOH : 100
|
||||
|
||||
Pwr Percent : 71
|
||||
|
||||
Pwr Coulomb : 128403078
|
||||
|
||||
Dsg Cap : 1288446
|
||||
|
||||
HT@0.5C Cnt : 0
|
||||
|
||||
LT@0.5C Cnt : 0
|
||||
|
||||
HT Cnt : 0
|
||||
|
||||
LT Cnt : 0
|
||||
|
||||
LV Cnt : 0
|
||||
|
||||
LifeWarn Times : 0
|
||||
|
||||
LifeAlarm Times : 0
|
||||
|
||||
Command completed successfully
|
||||
|
||||
$$
|
||||
|
||||
pylon>
|
||||
|
||||
===== 05/09/2026 12:00:02 =====
|
||||
stat 2
|
||||
stat 2
|
||||
|
||||
@
|
||||
|
||||
Device address 2
|
||||
|
||||
Data Items : 0
|
||||
|
||||
HisData Items : 1795
|
||||
|
||||
Charge Cnt. : 179
|
||||
|
||||
Discharge Cnt. : 0
|
||||
|
||||
Charge Times : 32398
|
||||
|
||||
Status Cnt. : 178
|
||||
|
||||
Idle Times : 51188
|
||||
|
||||
COC Times : 0
|
||||
|
||||
COC2 Times : 0
|
||||
|
||||
DOC Times : 0
|
||||
|
||||
DOC2 Times : 0
|
||||
|
||||
COCA Times : 0
|
||||
|
||||
DOCA Times : 0
|
||||
|
||||
SC Times : 0
|
||||
|
||||
Bat OV Times : 0
|
||||
|
||||
Bat HV Times : 0
|
||||
|
||||
Bat LV Times : 0
|
||||
|
||||
Bat UV Times : 0
|
||||
|
||||
Bat SLP Times : 0
|
||||
|
||||
Pwr OV Times : 0
|
||||
|
||||
Pwr HV Times : 0
|
||||
|
||||
Pwr LV Times : 0
|
||||
|
||||
Pwr UV Times : 0
|
||||
|
||||
Pwr SLP Times : 0
|
||||
|
||||
COT Times : 0
|
||||
|
||||
CUT Times : 0
|
||||
|
||||
DOT Times : 0
|
||||
|
||||
DUT Times : 0
|
||||
|
||||
CHT Times : 0
|
||||
|
||||
CLT Times : 0
|
||||
|
||||
DHT Times : 0
|
||||
|
||||
DLT Times : 0
|
||||
|
||||
Shut Times : 7
|
||||
|
||||
Reset Times : 13
|
||||
|
||||
RV Times : 0
|
||||
|
||||
Input OV Times : 0
|
||||
|
||||
SOH Times : 0
|
||||
|
||||
BMICERR Times : 0
|
||||
|
||||
CYCLE Times : 33
|
||||
|
||||
SOH : 0
|
||||
|
||||
Pwr Percent : 70
|
||||
|
||||
Pwr Coulomb : 125172494
|
||||
|
||||
Dsg Cap : 1663847
|
||||
|
||||
HT@0.5C Cnt : 0
|
||||
|
||||
LT@0.5C Cnt : 0
|
||||
|
||||
HT Cnt : 0
|
||||
|
||||
LT Cnt : 0
|
||||
|
||||
LV Cnt : 0
|
||||
|
||||
LifeWarn Times : 0
|
||||
|
||||
LifeAlarm Times : 0
|
||||
1824
docs/mesures/batteries/202609051201-historique.txt
Normal file
1824
docs/mesures/batteries/202609051201-historique.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -207,15 +207,15 @@ async function main() {
|
||||
const nom = `${tampon()}-historique.txt`;
|
||||
console.log(`Extraction de l'historique a partir de l'enregistrement ${depuis}.`);
|
||||
console.log('Le module en garde 1798, un toutes les 30 minutes : comptez plusieurs minutes.');
|
||||
let f = journal(nom, `# releve du ${horodate()} sur ${dev}\n`);
|
||||
f = journal(nom, await commande(l, 'info', 8000));
|
||||
for (let i = depuis; i < 1800; i += 15) {
|
||||
const txt = await commande(l, `datalist history dtls ${i}`, 20000);
|
||||
const f = journal(nom, `# releve du ${horodate()} sur ${dev}\n`);
|
||||
journal(nom, await commande(l, 'info', 8000));
|
||||
// UNE seule commande suffit : le module pagine lui-meme jusqu'au dernier
|
||||
// enregistrement, `commande` tourne les pages. Boucler sur des index
|
||||
// croissants relancait le meme vidage complet a chaque fois.
|
||||
const txt = await commande(l, `datalist history dtls ${depuis}`, 30000);
|
||||
journal(nom, txt);
|
||||
if (!/\d{2}-\d{2}-\d{2}/.test(txt)) break;
|
||||
process.stdout.write(`\r enregistrement ${i}... `);
|
||||
}
|
||||
console.log(`\nEcrit dans ${f}`);
|
||||
const n = (txt.match(/^\d+ +\d\d-\d\d-\d\d /gm) || []).length;
|
||||
console.log(`${n} enregistrements ecrits dans ${f}`);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user