Platine HB-RF-ETH: Funkmodul per Netzwerk anbinden

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

deimos
Beiträge: 4233
Registriert: 20.06.2017, 10:38
Wohnort: Leimersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 446 Mal
Kontaktdaten:

Re: Platine HB-RF-ETH: Funkmodul per Netzwerk anbinden

Beitrag von deimos » 15.02.2021, 04:01

Hi,

ja, es wäre schön, wenn das gehen würde. Die dafür notwendigen Änderungen betreffen aber vor allem den Closed Source von eQ-3 und dürften relativ umfangreich sein. Ich würde daher sehr stark davon ausgehen, dass das nicht kommen wird.

Viele Grüße
Alex

froema
Beiträge: 184
Registriert: 19.12.2018, 15:20
Hat sich bedankt: 3 Mal

Re: Platine HB-RF-ETH: Funkmodul per Netzwerk anbinden

Beitrag von froema » 15.02.2021, 09:54

Das kann man ja mit einer zweiten CCU und einem zugehörigen HB-RF-ETH lösen. Die beiden CCU's können zB mit IP-Symcon kommunizieren.
Wenn man die Möglichkeit hat Koaxialkabel zu legen, kann man auch eine zweite Antenne verwenden.
Beides habe ich schon mal gemacht, bin aktuell bei der zweiten Antenne, was weniger Aufwand bedeutet.

Benutzeravatar
Black
Beiträge: 3739
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 100 Mal
Danksagung erhalten: 370 Mal
Kontaktdaten:

Re: Platine HB-RF-ETH: Funkmodul per Netzwerk anbinden

Beitrag von Black » 17.02.2021, 18:28

Das ETH tuts sauber am Spielesystem, FW update, adresse eingestellt. alles schick.
Bei einem Connection lost z.b. nach stromausfall kommt es ja von selber nicht wieder connected mit der RMatik hoch.

gibt es ein procedere, wenn dieses erkannt wurde, wie man die beiden wieder connected bekommt ?
a: Neustart kompletter CCU bzw neustart der VM ? geht
b: stop und restart bestimmter prozesse , wenn ja welcher und in welcher reihenfolge

und frage an deimos, besteht die aussicht, dass ein automatischer reconnect in einer der kommenden versionen zu realisieren ist ?

Thnx und nochmal Anerkennung für die super Arbeit

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen - mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken.
Klick - und weg

technical contribution against annoying advertising

deimos
Beiträge: 4233
Registriert: 20.06.2017, 10:38
Wohnort: Leimersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 446 Mal
Kontaktdaten:

Re: Platine HB-RF-ETH: Funkmodul per Netzwerk anbinden

Beitrag von deimos » 17.02.2021, 19:17

Hi,

das Problem bei einem Stromausfall ist, dass das Funkmodul danach nicht neu initialisiert wird, daher musst du alles mit Zugriff auf das Funkmodul neu starten, also mind. mal multimacd, rfd und hmipserver.
Da ist die einfachste Variante ein kompletter Neustart.

Einen einfachen Verbindungsunterbruch ohne Stromverlust wird im Kernel Modul ja schon länger abgefangen und ein Reconnect gemacht.

Viele Grüße
Alex

Benutzeravatar
jmaus
Beiträge: 7051
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 153 Mal
Danksagung erhalten: 664 Mal
Kontaktdaten:

Re: Platine HB-RF-ETH: Funkmodul per Netzwerk anbinden

Beitrag von jmaus » 18.02.2021, 16:14

deimos hat geschrieben:
17.02.2021, 19:17
das Problem bei einem Stromausfall ist, dass das Funkmodul danach nicht neu initialisiert wird, daher musst du alles mit Zugriff auf das Funkmodul neu starten, also mind. mal multimacd, rfd und hmipserver.
Da ist die einfachste Variante ein kompletter Neustart.
Wäre es nicht möglich, das du beim Anbinden des HB-RF-ETH z.B. eine art zufällige SessionID generierst (oder den ersten Zeitpunkt an dem es Strom erhalten hat) und irgendwo hinterlegst (z.B. in den Parametern des kernel modules) und wenn das HB-RF-ETH den Strom verliert und danach wieder oben ist liegt dann eine andere SessionID nach dem reconnect des kernel treibers vor und das könnte dann die jeweilige CCU Software ja irgendwie überwachen. Und wenn sich dabei herausstellt, das die SessionID sich zur Laufzeit geändert hat würde die CCU dann eben alle notwendigen Prozesse (multimacd, rfd, hmipserver inkl. detect_radio_module, etc.) neu starten bzw. alles wie bei einem neustart neu ablaufen lassen bis das Funkmodul wieder korrekt angebunden ist. Oder übersehe ich was?
RaspberryMatic 3.55.10.20210213 @ ESXi, ~190 Hm-RF/HmIP-RF/HmIPW Geräte, ioBroker – RaspberryMatic GitHub Projekt / Twitter

deimos
Beiträge: 4233
Registriert: 20.06.2017, 10:38
Wohnort: Leimersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 446 Mal
Kontaktdaten:

Re: Platine HB-RF-ETH: Funkmodul per Netzwerk anbinden

Beitrag von deimos » 18.02.2021, 16:33

Hi,

das Verfahren mit einer Session-ID mache ich bereits und sofern die gleich bleibt, dann funktioniert auch der automatische Reconnect.
Das Verfahren jetzt auf einen automatischen Restart alle Dienste zu erweitern sehe ich kritisch an, weil da durch die entsprechenden Abhängkeiten eine Menge schief gehen kann. Auch kann sowas bei HA Systemen zu einem Ping-Pong führen. Sinniger dürfte es sein, dafür zu sorgen, dass kein Stromausfall vorkommt, eine Variante dafür wäre es, die Platine per PoE zu versorgen und parallel eine USB-USV bzw. eine passende Powerbank anzuschließen.

Viele Grüße
Alex

Benutzeravatar
jmaus
Beiträge: 7051
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 153 Mal
Danksagung erhalten: 664 Mal
Kontaktdaten:

Re: Platine HB-RF-ETH: Funkmodul per Netzwerk anbinden

Beitrag von jmaus » 18.02.2021, 16:42

deimos hat geschrieben:
18.02.2021, 16:33
das Verfahren mit einer Session-ID mache ich bereits und sofern die gleich bleibt, dann funktioniert auch der automatische Reconnect.
Das Verfahren jetzt auf einen automatischen Restart alle Dienste zu erweitern sehe ich kritisch an, weil da durch die entsprechenden Abhängkeiten eine Menge schief gehen kann. Auch kann sowas bei HA Systemen zu einem Ping-Pong führen.
Aber wäre das nicht im Auge bzw. der Verantwortung der jeweiligen Applikation die dein HB-RF-ETH nutzen will? Es sollte doch nicht schaden diese eindeutige SessionID oder Information über den Zeitpunkt des letzten Boots des HB-RF-ETH via kernel modul parameter der Applikation mitzuteilen. Dann kann diese doch selbst entscheiden ob diese für sie nützlich ist oder nicht. Ich würde das auf jeden Fall sinnvoll finden und sei es nur um dem Nutzer eine Information darüber zu geben das das HB-RF-ETH gerade neugestartet hat.
deimos hat geschrieben:
18.02.2021, 16:33
Sinniger dürfte es sein, dafür zu sorgen, dass kein Stromausfall vorkommt, eine Variante dafür wäre es, die Platine per PoE zu versorgen und parallel eine USB-USV bzw. eine passende Powerbank anzuschließen.
Da gebe ich dir vollkommen recht, das dies der beste Ansatz ist. Unabhängig davon fände ich jedoch die Information über den Bootzeitpunkt bzw. SessionID auch hilfreich bzw. nützlich.
RaspberryMatic 3.55.10.20210213 @ ESXi, ~190 Hm-RF/HmIP-RF/HmIPW Geräte, ioBroker – RaspberryMatic GitHub Projekt / Twitter

deimos
Beiträge: 4233
Registriert: 20.06.2017, 10:38
Wohnort: Leimersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 446 Mal
Kontaktdaten:

Re: Platine HB-RF-ETH: Funkmodul per Netzwerk anbinden

Beitrag von deimos » 18.02.2021, 16:53

Hi,

das würde eine Anpassung des Kommunikationsprotokolls erfordern und der Rattenschwanz an Arbeit, die das bedeutet steht in keinem Verhältnis mit dem Nutzen. Daher: Mach einen Issue auf Github auf, wenn es irgendwann mal sinnvoll reinpasst, kann ich schauen es mit aufzunehmen.

Viele Grüße
Alex

NFTE
Beiträge: 34
Registriert: 17.07.2018, 09:53
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: Platine HB-RF-ETH: Funkmodul per Netzwerk anbinden

Beitrag von NFTE » 22.02.2021, 09:20

Ich habe das Problem so gelöst:

1) Systemvariable "HB-RF-ETH-Reboot-Counter" als Zahl angelegt (um die Anzahl der Reboots zu überwachen - OPTIONAL).

2) Programm erstellt:
Reboot.jpg

3) Script:

Code: Alles auswählen

string stdout;
string stderr;
dom.GetObject("HB-RF-ETH-Reboot-Counter").State(dom.GetObject("HB-RF-ETH-Reboot-Counter").Value() + 1);
system.Exec ("/sbin/reboot", &stdout, &stderr);
Wenn HB-RF-ETH-Connection ausgelöst ist, startet die CCU alle 10 Minuten - sehe ich allerdings nicht als Problem, da ohne Funkmodul das System eh nicht brauchbar ist.
Wenn Innerhalb von 10 Minuten das Modul wieder connected ist, passiert nichts.

getestet mit:
  • LAN Verbindung Unterbrechung
  • HB-RF-ETH Spannungsausfall
Gruß
NFTE

deimos
Beiträge: 4233
Registriert: 20.06.2017, 10:38
Wohnort: Leimersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 446 Mal
Kontaktdaten:

Re: Platine HB-RF-ETH: Funkmodul per Netzwerk anbinden

Beitrag von deimos » 22.02.2021, 09:36

Hi,
NFTE hat geschrieben:
22.02.2021, 09:20
Wenn HB-RF-ETH-Connection ausgelöst ist, startet die CCU alle 10 Minuten - sehe ich allerdings nicht als Problem, da ohne Funkmodul das System eh nicht brauchbar ist.
Bei dir kann das sehr gut der Fall sein, allgemein gilt das allerdings nicht, denk zum Beispiel an Installation mit HM LAN GW oder CuXD. Für die Leute, bei welchen das passt, finde ich deine Lösung aber sehr gut.
Bei debmatic würde ich aber ggf. das "/sbin/reboot" durch "/bin/systemctl restart debmatic" ersetzen, damit nicht das Gesamtsystem neu gestart wird, sondern nur debmatic, da sonst natürlich auch andere auf dem System installierte Dienste betroffen sind.

Viele Grüße
Alex

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“