Pierwszy commit - inicjalizacja projektu

This commit is contained in:
ms
2026-02-08 17:31:44 +01:00
commit 3fd3951aa8
25 changed files with 8468 additions and 0 deletions

189
SYSTEMD_INSTALL.md Normal file
View 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
```