Bei Systemvariablen mit Zeichenkette wird keine Bedingung mehr angezeigt

Debian/Ubuntu basierte CCU

Moderator: Co-Administratoren

Benutzeravatar
deimos
Beiträge: 5396
Registriert: 20.06.2017, 10:38
System: Alternative CCU (auf Basis OCCU)
Wohnort: Leimersheim
Hat sich bedankt: 121 Mal
Danksagung erhalten: 957 Mal
Kontaktdaten:

Re: Bei Systemvariablen mit Zeichenkette wird keine Bedingung mehr angezeigt

Beitrag von deimos » 07.12.2020, 13:26

Hi,

ich konnte das Problem mit debmatic nachvollziehen, das ist mal wieder so ein Beispiel dafür, weshalb ich den Code von eQ-3 für unwartbar betrachte. Wenn man einen AlarmDP anlegt, bevor die Rega die 50 Kanal Geräte angelegt hat, dann wird ein Teil von /bin/hm_autoconf nicht mehr ausgeführt, sondern irgendein Code innerhalb der Rega. Und genau so einen AlarmDP lege ich für das Monitoring von der Verbindung zu HB-RF-ETH an und das scheinbar etwas zu früh. Ich schau mir mal an, wie ich das fixen kann.

Viele Grüße
Alex

jp112sdl
Beiträge: 12115
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Bei Systemvariablen mit Zeichenkette wird keine Bedingung mehr angezeigt

Beitrag von jp112sdl » 07.12.2020, 13:28

froema hat geschrieben:
07.12.2020, 13:25
Das kann gut sein. Ich hatte die VM's schon mal angelegt, bevor ich die Funkmodule dran hatte.
Das erklärt nämlich, warum Gateway-SysSrvDP die ID 41 hat, die eigentlich die ${sysVarServiceMessages} haben sollte

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

jp112sdl
Beiträge: 12115
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Bei Systemvariablen mit Zeichenkette wird keine Bedingung mehr angezeigt

Beitrag von jp112sdl » 07.12.2020, 13:30

deimos hat geschrieben:
07.12.2020, 13:26
Wenn man einen AlarmDP anlegt, bevor die Rega die 50 Kanal Geräte angelegt hat, dann wird ein Teil von /bin/hm_autoconf nicht mehr ausgeführt, sondern irgendein Code innerhalb der Rega. Und genau so einen AlarmDP lege ich für das Monitoring von der Verbindung zu HB-RF-ETH an und das scheinbar etwas zu früh. Ich schau mir mal an, wie ich das fixen kann.
Das DutyCycle Zeugs haut da glaub ich auch noch mit rein!?

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Benutzeravatar
deimos
Beiträge: 5396
Registriert: 20.06.2017, 10:38
System: Alternative CCU (auf Basis OCCU)
Wohnort: Leimersheim
Hat sich bedankt: 121 Mal
Danksagung erhalten: 957 Mal
Kontaktdaten:

Re: Bei Systemvariablen mit Zeichenkette wird keine Bedingung mehr angezeigt

Beitrag von deimos » 07.12.2020, 13:34

Hi,
jp112sdl hat geschrieben:
07.12.2020, 13:30
deimos hat geschrieben:
07.12.2020, 13:26
Wenn man einen AlarmDP anlegt, bevor die Rega die 50 Kanal Geräte angelegt hat, dann wird ein Teil von /bin/hm_autoconf nicht mehr ausgeführt, sondern irgendein Code innerhalb der Rega. Und genau so einen AlarmDP lege ich für das Monitoring von der Verbindung zu HB-RF-ETH an und das scheinbar etwas zu früh. Ich schau mir mal an, wie ich das fixen kann.
Das DutyCycle Zeugs haut da glaub ich auch noch mit rein!?
Nich bei debmatic, wird aber das gleiche Grundproblem sein.

In der /bin/hm_autoconf ist folgendes if drin:

Code: Alles auswählen

    if { [llength $result(sysvars)] == 0 } {
        puts "No system variables defined, creating default system variables"
        create_sysvars
    }
Und wenn das aus irgendwelchen Gründen schon vorher eine Systemvariable angelegt wurde, dann ist es halt Essig.

Viele Grüße
Alex

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

Re: Bei Systemvariablen mit Zeichenkette wird keine Bedingung mehr angezeigt

Beitrag von froema » 07.12.2020, 15:19

Also eine Variable hatte ich vorher nicht selber angelegt. Die einzige vorhandene Variable ist diese: "HB-RF-ETH Connection".

Würde es denn Sinn machen ein BackUp zu erstellen, debmatic neu (mit HB-RF-ETH) aufsetzen und dann das BackUp zurückspielen?
Dann müssten die Systemvariablen wieder erscheinen, oder?

Benutzeravatar
deimos
Beiträge: 5396
Registriert: 20.06.2017, 10:38
System: Alternative CCU (auf Basis OCCU)
Wohnort: Leimersheim
Hat sich bedankt: 121 Mal
Danksagung erhalten: 957 Mal
Kontaktdaten:

Re: Bei Systemvariablen mit Zeichenkette wird keine Bedingung mehr angezeigt

Beitrag von deimos » 07.12.2020, 15:25

Hi,

es sollte funktionieren, dass du den entsprechenden Code aus der hm_autoconf einmalig manuell ausführst:

Code: Alles auswählen

            object sv=dom.CreateObject(OT_ALARMDP, "${sysVarAlarmZone1}");
            dom.GetObject(ID_SYSTEM_VARIABLES).Add(sv.ID());
            sv.DPInfo("${sysVarAlarmZone1Msg}");
            sv.ValueUnit("");
            sv.ValueType( ivtBinary );
            sv.ValueSubType( istAlarm );
            sv.ValueName1("${sysVarAlarmZone1Triggered}");
            sv.ValueName0("${sysVarAlarmZone1NotTriggered}");
            sv.AlType(atSystem);
            sv.AlArm(true);

            sv=dom.GetObject(ID_PRESENT);
            dom.GetObject(ID_SYSTEM_VARIABLES).Add(sv.ID());
            sv.Name("${sysVarPresence}");
            sv.DPInfo("${sysVarPresenceMsg}");
            sv.ValueUnit("");
            sv.ValueName1("${sysVarPresencePresent}");
            sv.ValueName0("${sysVarPresenceNotPresent}");

            sv=dom.GetObject(40);
            dom.GetObject(ID_SYSTEM_VARIABLES).Add(sv.ID());
            sv.Name("${sysVarAlarmMessages}");
            sv.DPInfo("${sysVarAlarmMessagesCount}");
            sv.Internal(0);

            sv=dom.GetObject(41);
            dom.GetObject(ID_SYSTEM_VARIABLES).Add(sv.ID());
            sv.Name("${sysVarServiceMessages}");
            sv.DPInfo("${sysVarServiceMessagesCount}");
            sv.Internal(0);
Viele Grüße
Alex

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Bei Systemvariablen mit Zeichenkette wird keine Bedingung mehr angezeigt

Beitrag von alchy » 07.12.2020, 17:53

deimos hat geschrieben:
07.12.2020, 15:25
es sollte funktionieren, dass du den entsprechenden Code aus der hm_autoconf einmalig manuell ausführst:
Jupp, aber Alarmzone 1 kann man dabei aber auch weglassen.
Und man kann dann gleich die Eingabe von Klarnamen benutzen, sonst stolpert man da auch noch später drüber. :wink:

jp112sdl hat geschrieben:
07.12.2020, 13:28
Das erklärt nämlich, warum Gateway-SysSrvDP die ID 41 hat, die eigentlich die ${sysVarServiceMessages} haben sollte
dieses Object wird dann natürlich überschrieben.
deimos hat geschrieben:
07.12.2020, 13:26
so einen AlarmDP lege ich für das Monitoring von der Verbindung zu HB-RF-ETH an und das scheinbar etwas zu früh.
Daher ja auch die Probleme innerhalb RaspberryMatic mit den Standard Systemvariablen 40/41/950 so wie du ja folgerichtig geschrieben hast:
deimos hat geschrieben:
07.12.2020, 13:34
In der /bin/hm_autoconf ist folgendes if drin:
denn das verhindert nun mal das Anlegen der Standardsystemvariablen wenn vorher ein "Schnellschuss" erfolgreich war. :mrgreen:

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
deimos
Beiträge: 5396
Registriert: 20.06.2017, 10:38
System: Alternative CCU (auf Basis OCCU)
Wohnort: Leimersheim
Hat sich bedankt: 121 Mal
Danksagung erhalten: 957 Mal
Kontaktdaten:

Re: Bei Systemvariablen mit Zeichenkette wird keine Bedingung mehr angezeigt

Beitrag von deimos » 07.12.2020, 18:27

Hi,
alchy hat geschrieben:
07.12.2020, 17:53
deimos hat geschrieben:
07.12.2020, 15:25
es sollte funktionieren, dass du den entsprechenden Code aus der hm_autoconf einmalig manuell ausführst:
Jupp, aber Alarmzone 1 kann man dabei aber auch weglassen.
Und man kann dann gleich die Eingabe von Klarnamen benutzen, sonst stolpert man da auch noch später drüber. :wink:
Hi, das ist einfach exakt der Code aus der CCU ohne jegliche Anpassung.
alchy hat geschrieben:
07.12.2020, 17:53
jp112sdl hat geschrieben:
07.12.2020, 13:28
Das erklärt nämlich, warum Gateway-SysSrvDP die ID 41 hat, die eigentlich die ${sysVarServiceMessages} haben sollte
dieses Object wird dann natürlich überschrieben.
Ja, so wie es normal auch gemacht worden wäre, die beiden Objekte werden von der Rega beim initialen Start mit diesen IDs angelegt, das ist fest einkompiliert. Kann man mit dem Befehl strings teilweise nachvollziehen.
alchy hat geschrieben:
07.12.2020, 17:53
deimos hat geschrieben:
07.12.2020, 13:26
so einen AlarmDP lege ich für das Monitoring von der Verbindung zu HB-RF-ETH an und das scheinbar etwas zu früh.
Daher ja auch die Probleme innerhalb RaspberryMatic mit den Standard Systemvariablen 40/41/950 so wie du ja folgerichtig geschrieben hast:
deimos hat geschrieben:
07.12.2020, 13:34
In der /bin/hm_autoconf ist folgendes if drin:
denn das verhindert nun mal das Anlegen der Standardsystemvariablen wenn vorher ein "Schnellschuss" erfolgreich war. :mrgreen:
Ja und das ist meiner Meinung nach ein Bug. Das Anlegen der SVs, der Räume und der Gewerke sollte imho beim Start passieren (/bin/hm_startup) und nicht beim Anlegen des ersten Geräts über die hm_autoconf.
Ich kann nur nicht abschließend beurteilen, ob in der Rega nach dem Aufruf von hm_startup noch irgendwas passiert, was dagegen spricht. Ich hoffe Jens antwortrt mir bald auf die diesbezügliche Frage beim RasberryMatic Issue auf Github.

Viele Grüße
Alex

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

Re: Bei Systemvariablen mit Zeichenkette wird keine Bedingung mehr angezeigt

Beitrag von froema » 08.12.2020, 09:44

deimos hat geschrieben:
07.12.2020, 15:25
Hi,

es sollte funktionieren, dass du den entsprechenden Code aus der hm_autoconf einmalig manuell ausführst:

Code: Alles auswählen

            object sv=dom.CreateObject(OT_ALARMDP, "${sysVarAlarmZone1}");
            dom.GetObject(ID_SYSTEM_VARIABLES).Add(sv.ID());
            sv.DPInfo("${sysVarAlarmZone1Msg}");
            sv.ValueUnit("");
            sv.ValueType( ivtBinary );
            sv.ValueSubType( istAlarm );
            sv.ValueName1("${sysVarAlarmZone1Triggered}");
            sv.ValueName0("${sysVarAlarmZone1NotTriggered}");
            sv.AlType(atSystem);
            sv.AlArm(true);

            sv=dom.GetObject(ID_PRESENT);
            dom.GetObject(ID_SYSTEM_VARIABLES).Add(sv.ID());
            sv.Name("${sysVarPresence}");
            sv.DPInfo("${sysVarPresenceMsg}");
            sv.ValueUnit("");
            sv.ValueName1("${sysVarPresencePresent}");
            sv.ValueName0("${sysVarPresenceNotPresent}");

            sv=dom.GetObject(40);
            dom.GetObject(ID_SYSTEM_VARIABLES).Add(sv.ID());
            sv.Name("${sysVarAlarmMessages}");
            sv.DPInfo("${sysVarAlarmMessagesCount}");
            sv.Internal(0);

            sv=dom.GetObject(41);
            dom.GetObject(ID_SYSTEM_VARIABLES).Add(sv.ID());
            sv.Name("${sysVarServiceMessages}");
            sv.DPInfo("${sysVarServiceMessagesCount}");
            sv.Internal(0);
Viele Grüße
Alex
Hallo Alex,

vielen Dank. Das hat funktioniert. Ich habe nur lange gebraucht, um zu verstehen, dass ich das als Skript ausführen muss. :lol:

Der-Kieler
Beiträge: 38
Registriert: 23.04.2020, 22:42
System: Alternative CCU (auf Basis OCCU)
Wohnort: Flintbek
Hat sich bedankt: 7 Mal
Danksagung erhalten: 1 Mal

Re: Bei Systemvariablen mit Zeichenkette wird keine Bedingung mehr angezeigt

Beitrag von Der-Kieler » 27.12.2020, 21:56

alchy hat geschrieben:
07.12.2020, 17:53
Jupp, aber Alarmzone 1 kann man dabei aber auch weglassen.
Und man kann dann gleich die Eingabe von Klarnamen benutzen, sonst stolpert man da auch noch später drüber. :wink:

Alchy
Ich habe das jetzt so ausgeführt und habe eine Variable "alarmzone 1". Soll ich die jetzt einfach löschen?

Was meinst Du mit Klarnamen? Was soll ich ändern, an den bereits angelegten Variablen oder ist das zu spät?
Raspberrymatic auf Pi4 mit 40 Geräten, 15 Programmen und 33 Variablen.

Antworten

Zurück zu „debmatic“