Seite 8 von 10

Re: Anleitung zur Installation der CCU auf einem x86 system (Part 2 inkl. HMIP)

Verfasst: 21.12.2018, 22:08
von chka
Danke für das Installation script ich mache mich mal wieder an eine ESX Installation.

habe aber nach dem reboot das Problem das kurz die Anzeige kommt das die CCU startet danach bekomme ich nur noch eine weiße Seite angezeigt mehr aber auch nicht.
Die Installation ist nackt, kein Backup oder sonstiges ist eingespielt

cixd ist unter /addons/cuxd/index.ccc?m=0 erreichbar

edit: Weiterleitung auf /pages/index.htm geht nicht!

die Oberfläche ist das Danke

Re: Anleitung zur Installation der CCU auf einem x86 system (Part 2 inkl. HMIP)

Verfasst: 22.12.2018, 07:48
von quickmic
Das hat vermutlich mit der neuesten ReGaHss-Beta Version zu tun. Die scheint einen Bug zu haben.

Aendere das Startscript... /opt/start.sh
Suche die Zeile:
/bin/ReGaHss -f /etc/config/rega.conf -l 2 &
und aendern auf:
/bin/ReGaHss.community -f /etc/config/rega.conf -l 2 &

Oder versuch den Ansatz:
viewtopic.php?f=56&t=47718

Re: Anleitung zur Installation der CCU auf einem x86 system (Part 2 inkl. HMIP)

Verfasst: 25.12.2018, 10:51
von ant
Hallo quickmic,

gibt es einen speziellen Grund, warum du remserial verwendest? Es graust mir schon etwas, wenn über eine http (nicht https) verbindung dateien heruntergeladen, dann kompiliert und als root ausgeführt werden.
ser2net hat die gleiche Funktionalität und ist im debian repo.
weiterhin unterstützt ser2net hosts_access Dateien d.h., man kann einschränken, welche hosts auf den serial port zugreifen können. derzeit kann einfach jeder im netzwerk auf den serial port zugreifen.

davon abgesehen wäre es grundsätzlich sowieso sinnvoll, remserial/ser2net mit einem normalen (service-)user anstatt root auszuführen.

Re: Anleitung zur Installation der CCU auf einem x86 system (Part 2 inkl. HMIP)

Verfasst: 25.12.2018, 14:00
von ant
Alternativ könnte man auch socat verwenden. Dies unterstützt, den Datenverkehr mit openssl zu verschlüsseln.

Re: Anleitung zur Installation der CCU auf einem x86 system (Part 2 inkl. HMIP)

Verfasst: 25.12.2018, 16:25
von quickmic
remserial verwende ich im Moment nur deshalb, weil ichs dort am Schnellsten hinbekommen habe.
ser2net hatte ich versucht aber lief nicht auf Anhieb. Vermutlich hatte ich Parameter falsch gesetzt.
Ich vermute aber, das nichts dagegen spricht zu wechseln. Hast du ser2net ans Laufen gebracht? Wenn ja, baue ich sofort um falls du mir die Kommandos posten kannst.

Ps:
Zumindest in der neuen Anleitung wird das Runterladen und selber Kompilieren weg fallen.
Aber die ist noch nicht vor Produktiveinsatz gedacht. Ich bau da noch zu viel Grundlegendes um.

Re: Anleitung zur Installation der CCU auf einem x86 system (Part 2 inkl. HMIP)

Verfasst: 25.12.2018, 23:09
von ant
Hey,
ich habe heute den ganzen Tag mit socat's openssl Funktionalität gebastelt. Inzwischen läuft es perfekt.
Das ist für mich die beste Lösung, da der Traffic verschlüsselt ist und die clients sich gegenseitig authentifizieren.

/etc/systemd/system/socat-homematic.service: (auf occu)

Code: Alles auswählen

[Unit]
Description=Socat remote hm/hmip tty
After=network.target

[Service]
Type=simple

# apparantly NEEDS to be /dev/ttyS[0-9]+ format. using /dev/ttyS-pi or similar leads
# to hm-copro.jar crashing
# commonname= is required, because (server-)cert has an empty commonname field and peer verification therefore fails using the remote hostname.
# peer authentication is already achieved through the cafile.
ExecStart=/usr/bin/socat -d -d pty,link=/dev/ttyS1000,raw openssl-connect:%i:2000,cert=/etc/ssl/homematic-socat/client.crt,key=/etc/ssl/homematic-socat/client.key,cafile=/etc/ssl/homematic-socat/%i.crt,forever,commonname=

Restart=always
RestartSec=1s

[Install]
WantedBy=multi-user.target
/etc/systemd/system/socat-homematic.service: (auf dem pi)

Code: Alles auswählen

[Unit]
Description=Socat remote hm/hmip tty
After=network.target

[Service]
Type=simple

ExecStart=/usr/bin/socat -d -d /dev/ttyUSB0,b115200,raw,echo=0 openssl-listen:2000,cert=/etc/ssl/homematic-socat/server.crt,key=/etc/ssl/homematic-socat/server.key,cafile=/etc/ssl/homematic-socat/client.crt,reuseaddr

Restart=always
RestartSec=1s

[Install]
WantedBy=multi-user.target
Zertifikate und keys auf dem PI erstellen:

Code: Alles auswählen

mkdir /etc/ssl/homematic-socat/
openssl genrsa -out /etc/ssl/homematic-socat/server.key 4096
openssl req -new -key /etc/ssl/homematic-socat/server.key -x509 -days 3653 -out /etc/ssl/homematic-socat/server.crt
scp /etc/ssl/homematic-socat/server.crt root@pi:/etc/ssl/homematic-socat/pi.crt
Zertifikate und keys auf occu:

Code: Alles auswählen

mkdir /etc/ssl/homematic-socat/
openssl genrsa -out /etc/ssl/homematic-socat/client.key 4096
openssl req -new -key /etc/ssl/homematic-socat/client.key -x509 -days 3653 -out /etc/ssl/homematic-socat/client.crt
scp /etc/ssl/homematic-socat/client.crt root@pi:/etc/ssl/homematic-socat/client.crt
Aktivieren auf pi: systemctl start socat-homematic

Aktivieren auf occu: systemctl start socat-homematic@pi

Re: Anleitung zur Installation der CCU auf einem x86 system (Part 2 inkl. HMIP)

Verfasst: 26.12.2018, 08:58
von quickmic

Code: Alles auswählen

ich habe heute den ganzen Tag mit socat's openssl Funktionalität gebastelt.
Hat sich ausgezahlt, echt cool vielen Dank. :D Das schaut bereits nach ein Komplettlösung aus inkl. ssl Key Generierung usw.
Ich teste das asap und bau das dann gleich mit ein.

Re: Anleitung zur Installation der CCU auf einem x86 system (Part 2 inkl. HMIP)

Verfasst: 27.12.2018, 18:07
von quickmic
Ich versuch grade deine Loesung einzubauen.
Erster Step ist die Key Generierung und dann certificate-exchange bevor ich mit socat weitermache.
Im Moment grüble ich grade, wie das benutzerfreundlich ins Install-script einzubauen ist.
Erstens bei Key/Certificate-Generieung hab ich auf...

Code: Alles auswählen

openssl req -new -key /etc/ssl/homematic-socat/client.key -x509 -days 100000 -subj /C=EN -out /etc/ssl/homematic-socat/client.crt
...umgebaut. Das unterdrueckt die Abfragen des Countrycodes etc.
Beim Keyaustausch via scp wird was schon schwerer.
Ich will den Benutzern nicht zuviel zumuten, daher muss das vollautomatisch laufen.

Problem im Moment ist noch, dass vor dem Austausch beide Devices online sein muessen.
Ziel ist z.b. Raspi down, CCU installation. scp push klappt also noch nicht.
Dann Raspi-Install, Host waere schon Up.
Ich koennte also beim Raspi-Install das Password vom Host als Eingabe abfragen, kein Problem.
Aber egal wie ich das drehe, eines der Gerate wir beim der ersten Install offline sein.

Irgendeine Idee? Password will ich nicht speichern anfangen, um z.b. bei jedem Boot das certificate rauszupushen.



EDIT:
Loesung:
Raspi Installieren mit:

Code: Alles auswählen

openssl genrsa -out /etc/ssl/homematic-socat/server.key 4096
openssl req -new -key /etc/ssl/homematic-socat/server.key -x509 -days 100000 -subj /C=EN -out /etc/ssl/homematic-socat/server.crt
CCU Installieren mit:

Code: Alles auswählen

openssl genrsa -out /etc/ssl/homematic-socat/client.key 4096
openssl req -new -key /etc/ssl/homematic-socat/client.key -x509 -days 100000 -subj /C=EN -out /etc/ssl/homematic-socat/client.crt
scp /etc/ssl/homematic-socat/client.crt root@192.168.0.107:/etc/ssl/homematic-socat/client.crt
scp root@192.168.0.107:/etc/ssl/homematic-socat/server.crt  /etc/ssl/homematic-socat/server.crt
Raspi muss zuerst laufen... Oder halt genau umgekehrt.

Re: Anleitung zur Installation der CCU auf einem x86 system (Part 2 inkl. HMIP)

Verfasst: 03.01.2019, 15:49
von ant
Ich hab das genauso gelöst wie du. Ich habe es genau andersherum gelöst. Ich gehe davon aus, dass die OCCU immer zuerst eingerichtet wird und danach der raspi. Macht ja auch Sinn.

Re: Anleitung zur Installation der CCU auf einem x86 system (Part 2 inkl. HMIP)

Verfasst: 03.01.2019, 16:00
von quickmic
Ja hast du Recht, werde ich wahrscheinlich auch umbauen.
Ausserdem werde ich die config (IP) vom Raspi auf die CCU pushen und nicht auf der CCU bei der Installation reinkonfigurieren per Abfrage.
Im Moment schaut das Startscript der CCU nach, ob das File "/var/status/HMIPremserialhost" vorhanden ist.
Wenn ja, ließt das Startscript aus der Datei die IP des Raspi-Hosts.
Waere auch sinnvoller, dass bei Raspi-Installation die /var/status/HMIPremserialhost gleich in die CCU reinkopiert wird.

Ps;
Der name HMIPremserialhost ist auch eine Altlast :wink: