Skriptdebugging/Logging
Moderator: Co-Administratoren
- trood
- Beiträge: 42
- Registriert: 21.03.2017, 11:46
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Erkrath
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 1 Mal
Skriptdebugging/Logging
Ich benutze zur Entwicklung neuer Homematic scripts das Skriptparser-AddOn und in den scripts dann tonnenweise WriteLine als Debugging-Hilfe fürs stdout. Nicht HighTech, aber es erfüllt immerhin seinen Zweck.
Dazu hab ich zwei Fragen:
- geht das auch "besser/schöner"
- wie kann ich das Logging dauerhaft so bauen, dass es auch später funktioniert, wenn die Programme auf der CCU eventgesteuert ablaufen - ich habe noch nicht rausbekommen, wie ich den stdout generisch z.B. zu einem syslog oder weblogging weiterleiten kann. gibt es da was "fertiges" als plugin oder muss ich mir mit CuxD-exec-curl aushelfen, um die Logs von der CCU in Echtzeit rauszubekommen?
Danke für Anregungen!
LG
Thorsten
Dazu hab ich zwei Fragen:
- geht das auch "besser/schöner"
- wie kann ich das Logging dauerhaft so bauen, dass es auch später funktioniert, wenn die Programme auf der CCU eventgesteuert ablaufen - ich habe noch nicht rausbekommen, wie ich den stdout generisch z.B. zu einem syslog oder weblogging weiterleiten kann. gibt es da was "fertiges" als plugin oder muss ich mir mit CuxD-exec-curl aushelfen, um die Logs von der CCU in Echtzeit rauszubekommen?
Danke für Anregungen!
LG
Thorsten
LG
Thorsten
Thorsten
-
- Beiträge: 9561
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 696 Mal
- Danksagung erhalten: 1608 Mal
Re: Skriptdebugging/Logging
Mächtigstes Werkzeug : SDV von Black
Ansonsten findest du in meiner Signatur noch ein paar Tipps.
Ansonsten findest du in meiner Signatur noch ein paar Tipps.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 331
- Registriert: 05.10.2020, 18:37
- System: CCU
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 23 Mal
Re: Skriptdebugging/Logging
Hi
https://forum.fhem.de/index.php/topic,82923.0.html
live-Syslog-Fehler-Meldungen
live-Rpc-Events
live-Systemprotokoll
Echtzeit-Schritt-für-Schritt-Debugger
Thomas
noch mächtiger: Hm-Internal
https://forum.fhem.de/index.php/topic,82923.0.html
live-Syslog-Fehler-Meldungen
live-Rpc-Events
live-Systemprotokoll
Echtzeit-Schritt-für-Schritt-Debugger
Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
- trood
- Beiträge: 42
- Registriert: 21.03.2017, 11:46
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Erkrath
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 1 Mal
Re: Skriptdebugging/Logging
oh danke! Schau ich mir beide gerne mal an. Was ich aber noch nicht kapiert habe: wie kommt das WriteLine dann mal in irgendein brauchbares (externes) Log-System, wenn die Scripts dann auf der CCU ausgeführt werden? Interaktiv im Editor reicht eben nicht. Hab ich was übersehen?
LG
Thorsten
Thorsten
-
- Beiträge: 9561
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 696 Mal
- Danksagung erhalten: 1608 Mal
Re: Skriptdebugging/Logging
Ja, wenn man auf Kotau steht.
Du kannst die Ausgabe einer protokollierten Systemvariable zuweisen oder ins Fehlerprotokoll schreiben lassen (über System.Exec)
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 331
- Registriert: 05.10.2020, 18:37
- System: CCU
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 23 Mal
Re: Skriptdebugging/Logging
Hi
SDV-Fehler melden und Docu schreiben tun == sperrung im SDV
mit logger in system.Exec tust du ins syslog schreiben.
Thomas
Hätte ich bei SDV vom Black tun sollen und nicht fehler melden.
SDV-Fehler melden und Docu schreiben tun == sperrung im SDV
mit logger in system.Exec tust du ins syslog schreiben.
Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.
- Baxxy
- Beiträge: 10644
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 596 Mal
- Danksagung erhalten: 2180 Mal
Re: Skriptdebugging/Logging
Wie schon geschrieben wurde, mit CUxD oder System.Exec per logger ins syslog (/var/log/messages) schreiben. Log entweder direkt per ssh auf der Zentrale mit tail begutachten oder über eine Einstellungen in der Systemsteuerung an einen Syslog-Server weiterleiten und dort verarbeiten.
Zuletzt geändert von Baxxy am 22.01.2022, 20:24, insgesamt 1-mal geändert.
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
- trood
- Beiträge: 42
- Registriert: 21.03.2017, 11:46
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Erkrath
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 1 Mal
Re: Skriptdebugging/Logging
Die Idee mit der protokollierten Variable finde ich gut, vielen Dank.
Hab das gerade mal ausprobiert, aber im SysLog finde ich im Klartext weder den Inhalt, noch den Namen der Variablen im betroffenen Zeitfenster - wohl aber bspw. den Namen des auslösenden Programms. Gibt es da einen Trick, wie var.State("content"); wirklich auch extern ankommt?
system.Exec ist doch die "böse" Funktion, oder?
Dann gucke ich mir mal den CUxD Syslog an, ob das besser klappt.
Hab das gerade mal ausprobiert, aber im SysLog finde ich im Klartext weder den Inhalt, noch den Namen der Variablen im betroffenen Zeitfenster - wohl aber bspw. den Namen des auslösenden Programms. Gibt es da einen Trick, wie var.State("content"); wirklich auch extern ankommt?
system.Exec ist doch die "böse" Funktion, oder?
Dann gucke ich mir mal den CUxD Syslog an, ob das besser klappt.
LG
Thorsten
Thorsten
-
- Beiträge: 10752
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 672 Mal
Re: Skriptdebugging/Logging
Lass dir nichts einreden.
Du kannst gern ohne "die beiden mächtigen" Werkzeuge das Scripten erlernen, dann erlernst du es wahrscheinlich besser wie viele andere hier mit den Tools.
Das eine Werkzeug basiert ja auf dem anderen zumindest anfänglich.
aber mal zum Thema
In das Fehlerprotokoll kann man auf die verschiedenste Wege etwas eintragen. Mittlerweile wurde ds schon zigmal kopiert.
Mal zwei Möglichkeiten einmal mit system.exec und einmal mittels CUxD.
( PS: System.exec ist mittlerweile nicht mehr gaaanz so böse wie vor ein paar Jahren.)
Man könnte logger benutzen
eine weitere Möglichkeit ist aber auch z.B. SYSLOG von CUxD direkt zu benutzen:
Im Systemprotokoll (hat nichts mit dem o.g. >> Fehlerprotokoll << zu tun)
geht das unter anderen auch mit einer protokollierten Systemvariable.
Alchy
Du kannst gern ohne "die beiden mächtigen" Werkzeuge das Scripten erlernen, dann erlernst du es wahrscheinlich besser wie viele andere hier mit den Tools.
Das eine Werkzeug basiert ja auf dem anderen zumindest anfänglich.
aber mal zum Thema
In das Fehlerprotokoll kann man auf die verschiedenste Wege etwas eintragen. Mittlerweile wurde ds schon zigmal kopiert.
Mal zwei Möglichkeiten einmal mit system.exec und einmal mittels CUxD.
( PS: System.exec ist mittlerweile nicht mehr gaaanz so böse wie vor ein paar Jahren.)
Man könnte logger benutzen
Code: Alles auswählen
! Schreiben ins Systemfehlerprotokoll
! https://homematic-forum.de/forum/viewtopic.php?f=43&t=72261&p=702401#p702401
string slist = " der String soll ins Fehlerprotokoll ";
string stdout;string stderr; system.Exec("logger -t script -p user.debug [1. Alchy sagt mit System.Exec: "#slist#" - Script durch ]", &stdout, &stderr);
!oder
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("logger -t script -p user.debug [2. ALCHY SAGT mit CUXD: " #slist #" - Script durch ]");
Code: Alles auswählen
string slist = " der String soll auch noch ins Fehlerprotokoll ";
dom.GetObject("CUxD.CUX2801001:1.SYSLOG").State("[3. Alchy sagt mit SYSLOG: "#slist #" - Script durch ]");
Im Systemprotokoll (hat nichts mit dem o.g. >> Fehlerprotokoll << zu tun)
geht das unter anderen auch mit einer protokollierten Systemvariable.
Wenn du Probleme mit Scripten hast, dann poste diese - oder zumindest einen lauffähigen Teil davon - in Codetags eingebettet.
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.
- trood
- Beiträge: 42
- Registriert: 21.03.2017, 11:46
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Erkrath
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 1 Mal
Re: Skriptdebugging/Logging
das CUxD-Pendant hat bei mir sofort funktioniert. Das reicht mir völlig so, zumal auch die LogFacility sich dadurch ändert und man aufm syslog so viel besser vorab filtern kann. Danke.
PS: meine Rolladensteuerung ist schon fertig gescriptet - ich häng nur seit einiger Zeit beim Logging/Debugging in der Luft. Passt für mich jetzt. Und mir reicht mein vorhandenes Syntax-Highlightning im N++.
PS: meine Rolladensteuerung ist schon fertig gescriptet - ich häng nur seit einiger Zeit beim Logging/Debugging in der Luft. Passt für mich jetzt. Und mir reicht mein vorhandenes Syntax-Highlightning im N++.
LG
Thorsten
Thorsten