Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011uJ47NxgfpGnuuMr3f2n7Z
34 lines
1.7 KiB
Desktop File
34 lines
1.7 KiB
Desktop File
# Releve des cellules du PACK 1 (4 x US5000) sur yd-5CG6110DG0 (10.10.10.61).
|
|
# Le pack 2 est lu par le conteneur du Synology .17 ; le pack 1 ne peut pas
|
|
# l'etre : son cable est a puce Prolific PL2303 (067b:23a3), sans pilote sur DSM.
|
|
# Ce portable (noyau 7.0) le reconnait.
|
|
#
|
|
# Installation : sudo cp releve-pack1.service /etc/systemd/system/ &&
|
|
# sudo systemctl daemon-reload && sudo systemctl enable --now releve-pack1
|
|
[Unit]
|
|
Description=Releve des cellules Pylontech du pack 1 (US5000)
|
|
Wants=network-online.target
|
|
After=network-online.target remote-fs.target
|
|
# PAS de RequiresMountsFor= : au boot du 26/09, NetworkManager a declare le
|
|
# reseau pret 0,8 s avant qu'il le soit vraiment, le montage NFS a echoue
|
|
# (« Network is unreachable ») et le service, dependance en echec, n'a JAMAIS
|
|
# ete relance — Restart= ne couvre pas un echec de dependance. On verifie donc
|
|
# le depot dans ExecStartPre (l'acces declenche l'automontage) : un echec y est
|
|
# un echec du service, que Restart=always rattrape toutes les 30 s.
|
|
|
|
[Service]
|
|
User=tmzf5455
|
|
ExecStartPre=/usr/bin/test -r /mnt/projects/EVCS/EVCS/tools/pylontech-console.mjs
|
|
WorkingDirectory=/mnt/projects/EVCS/EVCS
|
|
# /dev/pylontech-pack1 : lien stable pose par 90-pylontech.rules d'apres le
|
|
# NUMERO DE SERIE du cable, jamais d'apres l'ordre d'enumeration.
|
|
# --suffixe pack1 : fichiers ...-pack1-suivi.csv, distincts de ceux du pack 2.
|
|
ExecStart=/usr/bin/node tools/pylontech-console.mjs --port /dev/pylontech-pack1 --suivi 600 --modules 1,2,3,4 --suffixe pack1
|
|
# Cable absent, port fige (garde anti-blocage du lecteur), NFS coupe, coupure
|
|
# de courant : on relance, sans limite. Le portable n'a plus de batterie.
|
|
Restart=always
|
|
RestartSec=30
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|