Pierwszy commit - inicjalizacja projektu
This commit is contained in:
189
SYSTEMD_INSTALL.md
Normal file
189
SYSTEMD_INSTALL.md
Normal file
@@ -0,0 +1,189 @@
|
||||
# Instalacja i konfiguracja systemd service
|
||||
|
||||
## Pliki
|
||||
|
||||
- `read-energy.service` - jednostka serwisu, która uruchamia program modborno3
|
||||
- `read-energy.timer` - timer uruchamiający service co 10 sekund
|
||||
|
||||
## Instalacja
|
||||
|
||||
### 1. Skopiuj pliki do systemd
|
||||
|
||||
```bash
|
||||
sudo cp read-energy.service /etc/systemd/system/
|
||||
sudo cp read-energy.timer /etc/systemd/system/
|
||||
```
|
||||
|
||||
### 2. Przeładuj konfigurację systemd
|
||||
|
||||
```bash
|
||||
sudo systemctl daemon-reload
|
||||
```
|
||||
|
||||
### 3. Włącz timer (autostart)
|
||||
|
||||
```bash
|
||||
sudo systemctl enable read-energy.timer
|
||||
```
|
||||
|
||||
### 4. Uruchom timer
|
||||
|
||||
```bash
|
||||
sudo systemctl start read-energy.timer
|
||||
```
|
||||
|
||||
## Zarządzanie
|
||||
|
||||
### Sprawdzenie statusu
|
||||
|
||||
```bash
|
||||
# Status timera
|
||||
sudo systemctl status read-energy.timer
|
||||
|
||||
# Status serwisu
|
||||
sudo systemctl status read-energy.service
|
||||
|
||||
# Lista aktywnych timerów
|
||||
systemctl list-timers --all | grep read-energy
|
||||
```
|
||||
|
||||
### Zatrzymanie
|
||||
|
||||
```bash
|
||||
# Zatrzymaj timer (przestanie uruchamiać odczyty)
|
||||
sudo systemctl stop read-energy.timer
|
||||
|
||||
# Wyłącz autostart
|
||||
sudo systemctl disable read-energy.timer
|
||||
```
|
||||
|
||||
### Ponowne uruchomienie
|
||||
|
||||
```bash
|
||||
sudo systemctl restart read-energy.timer
|
||||
```
|
||||
|
||||
### Logi
|
||||
|
||||
```bash
|
||||
# Pokaż logi z ostatniego odczytu
|
||||
sudo journalctl -u read-energy.service -n 50
|
||||
|
||||
# Logi w czasie rzeczywistym
|
||||
sudo journalctl -u read-energy.service -f
|
||||
|
||||
# Logi z ostatniej godziny
|
||||
sudo journalctl -u read-energy.service --since "1 hour ago"
|
||||
|
||||
# Logi z dzisiaj
|
||||
sudo journalctl -u read-energy.service --since today
|
||||
```
|
||||
|
||||
### Testowanie
|
||||
|
||||
```bash
|
||||
# Ręczne uruchomienie (test)
|
||||
sudo systemctl start read-energy.service
|
||||
|
||||
# Sprawdź czy działa
|
||||
sudo systemctl status read-energy.service
|
||||
|
||||
# Zobacz logi
|
||||
sudo journalctl -u read-energy.service -n 100 --no-pager
|
||||
```
|
||||
|
||||
## Modyfikacja interwału
|
||||
|
||||
Aby zmienić interwał z 10s na inny:
|
||||
|
||||
1. Edytuj plik `/etc/systemd/system/read-energy.timer`
|
||||
2. Zmień wartość `OnUnitActiveSec=10s` (np. `OnUnitActiveSec=30s` dla 30 sekund)
|
||||
3. Przeładuj i zrestartuj:
|
||||
|
||||
```bash
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart read-energy.timer
|
||||
```
|
||||
|
||||
## Debugowanie
|
||||
|
||||
### Sprawdź czy timer jest aktywny
|
||||
|
||||
```bash
|
||||
systemctl is-active read-energy.timer
|
||||
systemctl is-enabled read-energy.timer
|
||||
```
|
||||
|
||||
### Sprawdź kiedy następny odczyt
|
||||
|
||||
```bash
|
||||
systemctl list-timers read-energy.timer
|
||||
```
|
||||
|
||||
### Sprawdź błędy
|
||||
|
||||
```bash
|
||||
sudo journalctl -u read-energy.service -p err -n 50
|
||||
```
|
||||
|
||||
### Test połączenia Modbus
|
||||
|
||||
```bash
|
||||
# Ręcznie uruchom program
|
||||
cd /home/ms/projekty/python3/modebus/ornoserial3
|
||||
./modborno3
|
||||
```
|
||||
|
||||
## Wymagania
|
||||
|
||||
- Program `modborno3` musi być skompilowany i dostępny w:
|
||||
`/home/ms/projekty/python3/modebus/ornoserial3/modborno3`
|
||||
- Użytkownik `ms` musi być w grupie `dialout`
|
||||
- Serwer MQTT musi być dostępny (10.1.1.1:1883)
|
||||
- Port `/dev/ttyUSB0` musi być dostępny
|
||||
|
||||
### Sprawdź uprawnienia
|
||||
|
||||
```bash
|
||||
# Sprawdź czy użytkownik jest w grupie dialout
|
||||
groups ms
|
||||
|
||||
# Jeśli nie, dodaj:
|
||||
sudo usermod -a -G dialout ms
|
||||
|
||||
# Wyloguj i zaloguj się ponownie
|
||||
```
|
||||
|
||||
## Konfiguracja
|
||||
|
||||
Aby zmienić parametry (port, adresy Modbus, MQTT), edytuj plik:
|
||||
`/home/ms/projekty/python3/modebus/ornoserial3/modb_orno3.c`
|
||||
|
||||
Sekcja konfiguracji znajduje się w liniach 11-42 (#define).
|
||||
|
||||
Po zmianie:
|
||||
```bash
|
||||
cd /home/ms/projekty/python3/modebus/ornoserial3
|
||||
bash cc-modb_orno3.sh
|
||||
sudo systemctl restart read-energy.timer
|
||||
```
|
||||
|
||||
## Monitorowanie w czasie rzeczywistym
|
||||
|
||||
```bash
|
||||
# Terminal 1: logi
|
||||
sudo journalctl -u read-energy.service -f
|
||||
|
||||
# Terminal 2: status
|
||||
watch -n 2 'systemctl status read-energy.timer && echo && systemctl list-timers read-energy.timer'
|
||||
```
|
||||
|
||||
## Usunięcie
|
||||
|
||||
```bash
|
||||
sudo systemctl stop read-energy.timer
|
||||
sudo systemctl disable read-energy.timer
|
||||
sudo rm /etc/systemd/system/read-energy.service
|
||||
sudo rm /etc/systemd/system/read-energy.timer
|
||||
sudo systemctl daemon-reload
|
||||
```
|
||||
Reference in New Issue
Block a user