Programme aktiv/bedienbar/sichtbar

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Xel66
Beiträge: 14819
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 649 Mal
Danksagung erhalten: 1632 Mal

Re: Programme aktiv/bedienbar/sichtbar

Beitrag von Xel66 » 12.07.2024, 21:00

grmpf hat geschrieben:
12.07.2024, 19:10
... Fehlerprotokoll auf Tracing ...
Bin im Moment nicht zu Hause, kann nicht nachschauen, wie mein Log steht. Ich sehe die Programmausführungen auch im Systemlog. Meine Lösung "filtert" die Programmausführungen raus in ein separates Log. Somit habe ich diese Infos verdichtet und kann Abläufe nachvollziehen. Da ich viele Programme habe, läuft bei mir recht viel.

Mein normales Systemlog wird schnell überschrieben. Denke, ich habe meinen Loglevel recht hochgedreht. Da das in das RAM loggt, wird auch kein Speichermedium zusätzlich belastet. Und Logrotate begrenzt auch den Speicherverbrauch. Täglich um 4:00Uhr wird rotiert.

Habe auch mal vor ein paar Wochen meine Überwachung der Zugriffe auf den Webserver hier vorgestellt. Hier filtere ich "unbekannte" Zugriffe raus. Funktioniert nach dem gleichen Prinzip (tail).

Gruß Xel66
-------------------------------------------------------------------------------------------
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen

grmpf
Beiträge: 769
Registriert: 21.01.2012, 12:16
Hat sich bedankt: 14 Mal
Danksagung erhalten: 11 Mal

Re: Programme aktiv/bedienbar/sichtbar

Beitrag von grmpf » 13.07.2024, 13:03

Wenn Du wieder zurück bist kannst Du mir bei Gelegenheit mal den Link auf die Beschreibung schicken. Kling sehr interessant! Hat aber Zeit.
Gert
________________________________
Raspi 3B+/RFUSB RaspberryMatic HM+HMIP, LAN-Rep., >80 Geräte, ~180 sichtb. Kanäle, (leider) nur Funk, hoher WAF trotz analogem Wife
Raspi 3B/HM-MOD-RPI-PCB Raspberrymatic (HM, 18x Rollladensteuerung und HMIP Heizungssteuerung in Altbau)
CCU3 (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FB-HZG-Steurung) plus HMIP 23x BROLL und einige weitere Geräte
Raspi 3B+/RFUSB (Neubauinst. im Aufbau) HMIPW (1x DRI, 3x DRS, kpl. FB-HZG-Steurung) plus HMIP 20x BROLL und einige weitere Geräte

Xel66
Beiträge: 14819
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 649 Mal
Danksagung erhalten: 1632 Mal

Re: Programme aktiv/bedienbar/sichtbar

Beitrag von Xel66 » 16.07.2024, 03:48

So, wie versprochen jetzt mal eine kurze Beschreibung meiner Log-Lösung für Programmläufe. Meine Loglevel stehen auf "Tracing" (HmIP) bzw. "alles loggen" (HM) und "Information" (Logikschicht). Anschauen kann ich mir die Logs mit mit der "myHM-show_logs"-Lösung hier aus dem Forum, kann mir die Logdatei aber auch bei Bedarf automatisch per Mail über das Mail-Addon zusenden lassen (wenn z.B. der DC über einen bestimmten Wert ansteigt) oder direkt auf der Konsole oder dem Browser innerhalb CUxD anschauen. Möglichkeiten gibt es viele.

Zum Starten des Loggings habe mir ein Programm ohne Bedingung im WENN angelegt, mit dem das Logging bei Systemstart automatisch aktiviert wird. Durch manuelles Ausführen des enthaltenen Scripts kann ich das Logging auch via WebUI ein- und ausschalten. Ich habe das absichtlich nicht als cron-Job oder die systeminterne Funktionen (rc.d) angelegt, weil ich häufig aus einer stark reglementierten IT-Umgebung nur Zugriff auf die WebUI via Cloudmatic habe. So ist als Nebeneffekt das Nachmachen für nicht-Linux-affine Anwender einfacher, weil alles via WebUI erledigt werden kann.

Code: Alles auswählen

! PID des Tail-Prozesses auslesen - Programmlogging stoppen bzw. starten (toggeln)
string stdout; string stderr;
system.Exec("pgrep -x tail", &stdout, &stderr);
if ((stdout >1) && (stderr=="")) {
    system.Exec("pkill -x tail");
    WriteLine("Logging gestoppt");}
else { system.Exec("echo Neustart >> /var/log/run-prog.log");
 system.Exec("tail -F /var/log/messages  | awk '/ReGaHss: Info: Program/ { print $0 }' >> /var/log/run-prog.log &"); 
    WriteLine("Logging gestartet");}
Das Script macht folgendes. Im "if" schaut es, ob es schon einen Prozess mit Namen "tail" gibt und beendet diesen über die gefundene PID, wenn er gefunden wird. Dieses dient dazu, den Prozess auch via Scriptlauf manuell via WebUI stoppen zu können. Im "else" wird - wenn der Prozess (noch) nicht existiert - eine Log-Datei mit Namen "rung-prog.log" im Log-Verzeichnis "/var/log" angelegt wenn sie noch nicht vorhanden ist und als Eintrag "Neustart" hinterlegt. Danach wird ein tail-Prozess gestartet, der in Verbindung mit awk die neu hinzugefügten Zeilen im System-Log (messages) auf die Suchphrase "ReGaHss: Info: Program" überwacht und entsprechende Einträge in die vorher angelegte (oder bereits vorhandene) Logdatei kopiert. Die Logdatei wird vom systemeigene Logrotate automatisch berücksichtigt und beginnt bei mir immer um 4:00 Uhr. Die Vorversion ist unter /var/log/run-prog.log.1.gz verfügbar und wird täglich überschrieben.

Das Log sieht dann ungefähr so aus:

Code: Alles auswählen

Jul 15 04:00:00 homematic-raspi local0.info ReGaHss: Info: Program ID = 8942 'Temperatur-Tagesgleitwert', rule's trigger flags = 6 [SetState():iseDOMPrg.cpp:524]
Jul 15 04:00:00 homematic-raspi local0.info ReGaHss: Info: Program ID = 2827 'VarTageszeit', rule's trigger flags = 2 [SetState():iseDOMPrg.cpp:524]
Jul 15 04:00:06 homematic-raspi local0.info ReGaHss: Info: Program ID = 134755 'prgEnergyCounter_134739_ABC1234567:1', rule's trigger flags = 6 [SetState():iseDOMPrg.cpp:524]
Jul 15 04:00:06 homematic-raspi local0.info ReGaHss: Info: Program ID = 16010 'Windrichtung', rule's trigger flags = 6 [SetState():iseDOMPrg.cpp:524]
Jul 15 04:00:06 homematic-raspi local0.info ReGaHss: Info: Program ID = 15698 'Status Wetterdaten', rule's trigger flags = 6 [SetState():iseDOMPrg.cpp:524]
...
Es sind also die gleichen Einträge, die man sich manuell in der messages-Datei zusammensuchen könnte. Abgebrochene Bedingungsprüfungen ("ReGaHss: Info: Rule evaluated state is FALSE by Program ID = ...") werden übrigens nicht geloggt, weil ich es nicht benötige. Man könnte den awk-Aufruf entsprechend erweitern.

hth
Gruß Xel66
-------------------------------------------------------------------------------------------
617 Kanäle in 166 Geräten und 242 CUxD-Kanäle in 45 CUxD-Geräten:
366 Programme, 357 Systemvariablen und 209 Direktverknüpfungen,
RaspberryMatic Version: 3.75.7.20240420 (rpi3) + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch, Logging von Programmläufen

grmpf
Beiträge: 769
Registriert: 21.01.2012, 12:16
Hat sich bedankt: 14 Mal
Danksagung erhalten: 11 Mal

Re: Programme aktiv/bedienbar/sichtbar

Beitrag von grmpf » 16.07.2024, 08:43

Danke! Sobald das mit dem DC wieder auftritt baue ich das ein!
Ich habe erstmal die Verdachtsfälle ausgeschlossen und jetzt warte ich erstmal.
Gert
________________________________
Raspi 3B+/RFUSB RaspberryMatic HM+HMIP, LAN-Rep., >80 Geräte, ~180 sichtb. Kanäle, (leider) nur Funk, hoher WAF trotz analogem Wife
Raspi 3B/HM-MOD-RPI-PCB Raspberrymatic (HM, 18x Rollladensteuerung und HMIP Heizungssteuerung in Altbau)
CCU3 (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FB-HZG-Steurung) plus HMIP 23x BROLL und einige weitere Geräte
Raspi 3B+/RFUSB (Neubauinst. im Aufbau) HMIPW (1x DRI, 3x DRS, kpl. FB-HZG-Steurung) plus HMIP 20x BROLL und einige weitere Geräte

sct
Beiträge: 158
Registriert: 02.03.2016, 15:12
Hat sich bedankt: 6 Mal

Re: Programme aktiv/bedienbar/sichtbar

Beitrag von sct » 23.09.2024, 20:44

Guten Abend,

grmpf hat Recht. Ich verstehe das bedienbar/sichtbar Kontrollfeld bei den Programmen auch nicht. Das Programm ist nur sichtbar wenn beide Kontrollfelder gesetzt sind. Eine der beiden Checkboxen hätte man sich da sparen können.

Bembi
Beiträge: 525
Registriert: 04.02.2015, 02:15
System: CCU und Access Point
Wohnort: Bochum
Hat sich bedankt: 17 Mal
Danksagung erhalten: 67 Mal

Re: Programme aktiv/bedienbar/sichtbar

Beitrag von Bembi » 24.09.2024, 13:43

Moin,
sct hat geschrieben:
23.09.2024, 20:44
Eine der beiden Checkboxen hätte man sich da sparen können.
nicht ganz, aber vom Gerät abhängig.

Protokolliert ist klar, aktiv schreibt ins Systemprotokoll, inaktiv aber nicht.
Sichtbar (fast) auch klar, Du kannst damit nicht genutzte Kanäle unsichtbar machen. Also aus der GUI ausblenden
Bedienbar (fast) auch klar. Du kannst Die Kanäle ansteuern, wenn es über die GUI sein soll, dann müssen sie natürlich auch sichtbar sein.
Damit könnte man einzelne Funktionen eines Gerätes quasi "abschalten"

Bei den virtuellen CCU Kanälen (BiCos oder IP) habe ich alle Kanäle unsichtbar gemacht, die ich tatsächlich nicht benutzte. Somit sehe ich die Kanäle nicht. Bedienbar sind sie aber trotzdem, was z.B. das Ansteuern über ein Script (o.ä.) erlaubt. Gibt ja durchaus Kanäle, die Du als Brücke benutzt, da macht die direkte Bedienung über die CCU / GUI nicht unbedingt Sinn, sie müssen aber trotzdem bedienbar sein.

Bei einer meiner Fernbedienungen (hier HM-RC-Dis-H-x-EU) ist es so dass alle Kanäle sichtbar sind. Aber nur die Benutzten sind auch bedienbar.
Diese Einstellung bewirkt, dass ich auf dem Gerät wie auch in der GUI nur die Kanäle sehe, ich ich auch tatsächlich benutzte. Also eigentlich anders, als man vermuten sollte.

Bei anderen Geräten (besser gesagt Kanäle der Geräte) richtet sich die Verfügbarkeit von sichtbar / bedienbar nach der Logik des Gerätes. Je nach Gerät und Kanal eben verfügbar oder ausgegraut, oder ggf. sogar gar nicht vorhanden.

Insofern machen beide Einstellmöglichkeiten durchaus Sinn, wie das einzelne Gerät bzw. Kanal jedoch drauf reagiert, das kann man nur ausprobieren. Ich denke, dass eQ3 da stark vereinheitlicht hat, die Begrifflichkeiten "sichtbar und bedienbar" nicht immer ganz zur Art des Gerätes / Kanal passen oder einfach aus Kompatibilitätsgründen so belassen wurden, wie das Gerät das selbst interpretiert.
1 x CCU3 mit aktuell 37 Geräten und 343 Kanälen (HM, HmIP, HmIPW)
1 x CCU3 mit aktuell 65 Geräten und 605 Kanälen (HM, HmIP, HmIPW)
2 x CCU2 und einen Schrank voll mit Restbeständen, 13,5 KWp auf dem Dach mit Solaredge WR, Waterkotte WP über ModBus


Bembi
Beiträge: 525
Registriert: 04.02.2015, 02:15
System: CCU und Access Point
Wohnort: Bochum
Hat sich bedankt: 17 Mal
Danksagung erhalten: 67 Mal

Re: Programme aktiv/bedienbar/sichtbar

Beitrag von Bembi » 24.09.2024, 17:05

Baxxy hat geschrieben:
24.09.2024, 13:46
Eigentlich geht's hier nur um die Checkboxen bei den WebUI-Programmen...
Oh, danke für den Hinweis :mrgreen:
Wer lesen kann...
Fürwar..., unter Status und Bedienung - Programme
Alles was bedienbar = aktiv ist, ist sichtbar und auch triggerbar, egal was unter sichtbar eingestellt ist.

Na zumindest ist ja auch bei einzelnen Geräten die Logik etwas anders als erwartet.

Hab zumindest ad hoc nirgendwo etwas gefunden, wo sich das "sichtbar" bei den Programmen in der WebUI auswirkt.
1 x CCU3 mit aktuell 37 Geräten und 343 Kanälen (HM, HmIP, HmIPW)
1 x CCU3 mit aktuell 65 Geräten und 605 Kanälen (HM, HmIP, HmIPW)
2 x CCU2 und einen Schrank voll mit Restbeständen, 13,5 KWp auf dem Dach mit Solaredge WR, Waterkotte WP über ModBus

jp112sdl
Beiträge: 12231
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 864 Mal
Danksagung erhalten: 2184 Mal
Kontaktdaten:

Re: Programme aktiv/bedienbar/sichtbar

Beitrag von jp112sdl » 24.09.2024, 17:57

Hmm, die writeProgCtrl()-Methode, die die Elemente baut, könnte "bedienbar" berücksichtigen.

Die Variable iStatusOnly gibt an, ob Bedienelemente angezeigt werden sollen (=0) oder nicht (=1):
https://github.com/eq-3/occu/blob/maste ... 1245-L1298

Seltsamerweise wird jedoch in der programs.htm direkt vor dem Aufruf der dcCreate-Methode fix

Code: Alles auswählen

integer iStatusOnly = 0;
gesetzt. https://github.com/eq-3/occu/blob/667ed ... #L112-L113

Keine Ahnung, warum das "Operate"-Flag nicht ausgewertet wird...

Um auf den Eingangs-Post zurückzukommen: Vielleicht einfach nur ein Fehler im Code WebUI-Handbuch 8)

VG,
Jérôme ☕️

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

Antworten

Zurück zu „HomeMatic allgemein“