<aside> ❓ Das voize Gateway ist ein Synchronisierungs-Service der zwischen die voize Endgeräte und den Vivendi VX Server geschalten wird:
Vorteile und Nachteile auf einen Blick:
👍 Die Last auf den Vivendi VX Server wird reduziert.
👍 voize Endgeräte können sich schneller und öfter aktualisieren.
👎 voize Endgeräte können nur die Daten laden, die das voize Gateway bereits abgerufen hat.
</aside>
Inhaltsverzeichnis
<aside> <img src="/icons/server_blue.svg" alt="/icons/server_blue.svg" width="40px" /> Die Hardware Anforderungen für das voize Gateway sind:
Pro Bewohner, für den Daten geladen werden, empfehlen wir mind. 100 MB Festplattenspeicher vorzuhalten.
</aside>

Erstelle eine Linux VM in deiner Netzwerk Infrastruktur (vorzugsweise Ubuntu)
Konfiguration
mkdir voize-senior-care-gatewaycd voize-senior-care-gatewaycompose.yaml mit folgendem Inhalt:Lege in voize Admin ein voize Gateway an und gib diesem einen beliebigen Namen und die URL, unter der das Gateway erreichbar sein soll:
# Alte/conflicting Pakete entfernen
for pkgin docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc;do
sudo apt-get remove-y$pkg
done
# Paketquellen vorbereiten
sudo apt-get update
sudo apt-get install-y ca-certificatescurl gnupg
sudo install-m0755-d /etc/apt/keyrings
curl-fsSL https://download.docker.com/linux/ubuntu/gpg |sudo gpg--dearmor-o /etc/apt/keyrings/docker.gpg
sudochmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo${UBUNTU_CODENAME:-$VERSION_CODENAME}) stable" |tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker + Compose Plugin installieren
sudo apt-get update
sudo apt-get install-y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Docker starten
sudo systemctl enable--now docker
services:
voize-senior-care-gateway:
image: voize/senior-care-gateway:latest
container_name: voize-senior-care-gateway
ports:
# if port 8080 is already in use on host: change to e.g. 8181:8080
- "8080:8080"
env_file:
- .env
environment:
TZ: "Europe/Berlin"
# unless OTEL collector is set up, disable it:
OTEL_SDK_DISABLED: "true"
INTEGRATION_ROOT_BASE_PATH: /data
networks:
- voize-senior-care-gateway-network
volumes:
- ${PWD}/data:/data
restart: always
# Required: cap log file size so container logs cannot fill the host disk
logging:
driver: json-file
options:
max-size: "128m"
max-file: "3"
ulimits:
nofile: 65535
proxy:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./certs:/etc/nginx/certs:ro
networks:
- voize-senior-care-gateway-network
restart: always
# Updates the container automatically to the latest version (every 15m).
# Keep the --cleanup flag: it removes old images, which otherwise accumulate and fill the host disk.
auto-updater:
image: nickfedor/watchtower
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 900 --cleanup voize-senior-care-gateway
networks:
voize-senior-care-gateway-network: {}

Erstelle eine .env Datei mit den Werten aus voize Admin:

Erstelle ein neues Directory data, in dem geladene Daten gespeichert werden. In diesem Directory dürfen Dateien nicht manuell geändert werden, da es sich um die geschützten Datenbank-Daten handelt.
Nach diesen Schritten existieren folgende Dateien:
voize-senior-care-gateway/
├─ data/
├─ .env
├─ compose.yaml
Starten des Services
docker compose up -ddocker compose logs -ft abgerufen werdendocker compose logs --no-color -t >& logs.txtVerbinde das neue voize Gateway mit der entsprechenden bereichsbasierten Konfiguration in voize Admin. Öffne dafür die Bereichs-Konfigurationen in der Bearbeitungsansicht und verbinde sie einzeln mit dem Gateway:

Standardmäßig werden Ressourcen in folgenden im Interval FAST aktualisiert. Setze die Device Property INTEGRATION_SERVICE_REFRESH_INTERVAL_CONFIG_TEMPLATE, um die Intervalle nach einem Template auf MEDIUM oder SLOW anzupassen und die Serverlast zu reduzieren:
| Ressource | Ressource (Key für individuelle Config) | FAST
Maximales Alter / Geplante Aktualisierung nach | MEDIUM
Maximales Alter / Geplante Aktualisierung nach | SLOW
Maximales Alter / Geplante Aktualisierung nach | |
| --- | --- | --- | --- | --- | --- |
| Konfiguration | | | | | |
| Version des Bestandssystem | integrationVersion | 40m / 20m | 40m / 20m | 40m / 20m | |
| Integrationseinstellungen | integrationInfo | 3h / 2h | 12h / 10h | 12h / 10h | |
| Bereiche | areas | 3h / 2h | 12h / 10h | 12h / 10h | |
| Bewohner (Stammdaten) | | | | | |
| Klienten | residents | 60m / 30m | 3h / 2h | 12h / 10h | |
| Klienten-abhängige Grenzwerte und Konfigurationen | residentConfigs | 12h / 10h | 12h / 10h | 12h / 10h | |
| Klienten-Bilder | residentImages | 12h / 10h | 12h / 10h | 12h / 10h | |
| Freiheitsbeschränkungen (Genehmigungen) | fixations | 12h / 10h | 12h / 10h | 12h / 10h | |
| Bewohner (Doku) | | | | | |
| Hygieneeinträge | hygiene | 40m / 20m | 60m / 30m | 3h / 2h | |
| Vitalwerteeinträge | vitals | 40m / 20m | 60m / 30m | 3h / 2h | |
| Körpergewichte und -größen | lowFrequencyVitals | 60m / 30m | 60m / 30m | 12h / 10h | |
| Lagerungseinträge | positionings | 40m / 20m | 60m / 30m | 3h / 2h | |
| Berichte | careReports | 40m / 20m | 60m / 30m | 60m / 30m | |
| Bilanzierungen (Ausfuhr) | urinations | 40m / 20m | 60m / 30m | 3h / 2h | |
| Bilanzierungen (Einfuhr) | fluidIntakes | 40m / 20m | 60m / 30m | 3h / 2h | |
| Ärztl. Diagnosen | diagnoses | 40m / 20m | 60m / 30m | 3h / 2h | |
| SIS | sis | 40m / 20m | 60m / 30m | 3h / 2h | |
| Wunden und Wundverlaufseinträge | wounds | 40m / 20m | 60m / 30m | 3h / 2h | |
| Medikamente (Verordnungen) | medications | 40m / 20m | 60m / 30m | 3h / 2h | |
| Medikamente-Bilder | medicamentImages | 12h / 10h | 12h / 10h | 12h / 10h | |
| Planung/Maßnahmen | | | | | |
| Planung | measuresWithChecks | 3h / 2h | 12h / 10h | 12h / 10h | |
| Durchführungen | measureChecks | 20m / 10m | 40m / 20m | 3h / 2h | |
| (veraltet) Planung und Durchführungen | ~~measuresWithoutChecks~~ | 60m / 30m | 60m / 30m | 3h / 2h | |
| Tourenplanung | tours | 3h / 2h | 12h / 10h | 12h / 10h | |