Homematic IP Geräte mit CUxD loggen
Moderator: Co-Administratoren
-
- Beiträge: 789
- Registriert: 03.02.2007, 14:57
- Hat sich bedankt: 64 Mal
- Danksagung erhalten: 2 Mal
Re: Homematic IP Geräte mit CUxD loggen
Ich habe jetzt
- den CUxD neu installiert
- system.exec neu angelegt
Mit POSTIT erhalte ich keine Werte im dev-log, mit LOGIT ja. Aufruf der Highcharts bring das bekannte Bild: Während bei Homematic-Geräten die Datumdelder rechts oben im Diagramm mit dem min und max-Wert vorbelegt sind, erscheint in diesen Feldern bei der mit LOGIT geloggten Werten der Eintrag "invalid date". Fehler im Syslog gibt es zwar, aber nicht zu den Zeiten der mit LOGIT erstellten Einträge im dev-log.
VG,
joesch
- den CUxD neu installiert
- system.exec neu angelegt
Mit POSTIT erhalte ich keine Werte im dev-log, mit LOGIT ja. Aufruf der Highcharts bring das bekannte Bild: Während bei Homematic-Geräten die Datumdelder rechts oben im Diagramm mit dem min und max-Wert vorbelegt sind, erscheint in diesen Feldern bei der mit LOGIT geloggten Werten der Eintrag "invalid date". Fehler im Syslog gibt es zwar, aber nicht zu den Zeiten der mit LOGIT erstellten Einträge im dev-log.
VG,
joesch
- uwe111
- Beiträge: 4821
- Registriert: 26.02.2011, 22:22
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 246 Mal
- Kontaktdaten:
Re: Homematic IP Geräte mit CUxD loggen
Von Neuinstallation hatte ich aber nichts geschrieben.
Ich hätte vorher nur gerne herausgefunden, ob nach der Änderung von POSTIT zu LOGIT die ScriptRuntimeError Meldung weg ist.
Viele Grüße
Uwe
Ich hätte vorher nur gerne herausgefunden, ob nach der Änderung von POSTIT zu LOGIT die ScriptRuntimeError Meldung weg ist.
Viele Grüße
Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN Download: CUxD 2.11, SSH KeyDir
SPENDEN Download: CUxD 2.11, SSH KeyDir
-
- Beiträge: 789
- Registriert: 03.02.2007, 14:57
- Hat sich bedankt: 64 Mal
- Danksagung erhalten: 2 Mal
Re: Homematic IP Geräte mit CUxD loggen
Sorry - tut mir leid.
- edit -> ich hatte einen falschen Entwurf gepostet - sorry dafür.
Die beschriebene Neuinstallation scheint geholfen zu haben Jetzt kommen im Dev-Log auch mit POSTIT Daten an.
Was bleibt ist die fehlende Darstellung in den Highcharts, obwohl die Werte erkannt werden (im vorliegenden Beispiel soll das Diagramm nur Status 0 und 1 auswerten/Präsenz ja-nein): VG,
joesch
- edit -> ich hatte einen falschen Entwurf gepostet - sorry dafür.
Die beschriebene Neuinstallation scheint geholfen zu haben Jetzt kommen im Dev-Log auch mit POSTIT Daten an.
Was bleibt ist die fehlende Darstellung in den Highcharts, obwohl die Werte erkannt werden (im vorliegenden Beispiel soll das Diagramm nur Status 0 und 1 auswerten/Präsenz ja-nein): VG,
joesch
-
- Beiträge: 789
- Registriert: 03.02.2007, 14:57
- Hat sich bedankt: 64 Mal
- Danksagung erhalten: 2 Mal
Re: Homematic IP Geräte mit CUxD loggen
Hallo Uwe,
Ich will das mal am Beispiel des HMIP-Präsenzmelders verdeutlichen: Er sendet zuerst den Präsenzstatus und danach ("fast" zeitgleich) den Helligkeitswert. Lasse ich nun das Programm auf Aktualisierung eines der Werte starten und folgt während der Verarbeitung unmittelbar der zweite zu loggende Wert (beim Präsenzmelder die Helligkeit), kann dieser Wert untergehen (?) ...
VG,
joesch
eigentlich hätte ich schon viel früher darauf kommen können : Können unabhängig von dem Problem der Darstellung in den Highcharts fehlende Werte nicht darauf basieren, dass das Skript nach der Anleitung unmittelbar aufeinanderfolgende Werte nicht verarbeiten kann?uwe111 hat geschrieben:allerdings sollte es funktionieren, wenn Du das Script-Beispiel zum Loggen der Systemvariablen auf Seite 99 der CUxD-Doku entsprechend anpasst.
Ich will das mal am Beispiel des HMIP-Präsenzmelders verdeutlichen: Er sendet zuerst den Präsenzstatus und danach ("fast" zeitgleich) den Helligkeitswert. Lasse ich nun das Programm auf Aktualisierung eines der Werte starten und folgt während der Verarbeitung unmittelbar der zweite zu loggende Wert (beim Präsenzmelder die Helligkeit), kann dieser Wert untergehen (?) ...
VG,
joesch
System: RaspberryMatic auf Raspberry Pi 3 Model B Rev 1.2 (rpi3) mit RPI-RF-MOD (4.4.22)
- uwe111
- Beiträge: 4821
- Registriert: 26.02.2011, 22:22
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 246 Mal
- Kontaktdaten:
Re: Homematic IP Geräte mit CUxD loggen
Nein, das darf nicht passieren. Sonst wäre das eine Fehlfunktion der Logikschicht.joesch hat geschrieben:Können unabhängig von dem Problem der Darstellung in den Highcharts fehlende Werte nicht darauf basieren, dass das Skript nach der Anleitung unmittelbar aufeinanderfolgende Werte nicht verarbeiten kann?
Aber Du musst die Programmverknüpfung sowohl bei Präsenz erkannt als auch bei Präsenz nicht erkannt ausführen.
Viele Grüße
Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN Download: CUxD 2.11, SSH KeyDir
SPENDEN Download: CUxD 2.11, SSH KeyDir
-
- Beiträge: 789
- Registriert: 03.02.2007, 14:57
- Hat sich bedankt: 64 Mal
- Danksagung erhalten: 2 Mal
Re: Homematic IP Geräte mit CUxD loggen
Hm, dann stimmt doch etwas mit dem POSTIT nicht . Nutze ich das Skript
zum Logging, erhalte ich beide Werte im dev-log:
Es sind also alle Werte da (wenngleich statt CURRENT_ILLUMINATION nur ILLUMINATION als Datenpunktbezeichnung erscheint).
Nutze icherhalte ich bei gleichem Aufrufprogramm nur folgende Dev-log-Einträge:
vom gleichen HM-IP-Gerät, wenn ich im Setup eingetragen habe. Also keinen Helligkeitswert.
VG,
joesch
Code: Alles auswählen
object o = dom.GetObject("$src$");
if (o) {
dom.GetObject("CUxD.CUX2801001:8.LOGIT").State(o.Name()#";"#o.Value());
}
Code: Alles auswählen
2017-12-11T22:50:42 HmIP-RF.000C17099A04AB:1.PRESENCE_DETECTION_STATE false
2017-12-11T22:50:42 HmIP-RF.000C17099A04AB:1.ILLUMINATION 0.000000
Nutze ich
Code: Alles auswählen
object dp = dom.GetObject("$src$");
if (dp) {
dom.GetObject("CUxD.CUX2801002:1.POSTIT").State((dom.GetObject((dp.Channel()))).Address() #"."# dp.HssType() #";"#dp.Value());
}
Code: Alles auswählen
2017-12-11T20:27:37 000C17099A04AB:1.PRESENCE_DETECTION_STATE 1
2017-12-11T20:30:37 000C17099A04AB:1.PRESENCE_DETECTION_STATE 1
Code: Alles auswählen
LOGIT=000C17099A04AB
VG,
joesch
- uwe111
- Beiträge: 4821
- Registriert: 26.02.2011, 22:22
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 246 Mal
- Kontaktdaten:
Re: Homematic IP Geräte mit CUxD loggen
Stehen im Full Syslog der CCU wieder RunTime Fehler?joesch hat geschrieben:Hm, dann stimmt doch etwas mit dem POSTIT nicht . Nutze ich das Skript
.LOGIT und .POSTIT erwarten beim Aufruf die gleiche Parametersyntax. Du kannst die Funktionen zum Testen also auch tauschen.
Dann teste doch einfach mal folgendes unter "Skript testen":
Code: Alles auswählen
dom.GetObject("CUxD.CUX2801001:1.POSTIT").State("000C17099A04AB:1.PRESENCE_DETECTION_STATE;false");
dom.GetObject("CUxD.CUX2801001:1.POSTIT").State("000C17099A04AB:1.PRESENCE_DETECTION_STATE;true");
dom.GetObject("CUxD.CUX2801001:1.POSTIT").State("000C17099A04AB:1.ILLUMINATION;0.000000");
dom.GetObject("CUxD.CUX2801001:1.POSTIT").State("000C17099A04AB:1.ILLUMINATION;10.000000");
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State("000C17099A04AB:1.PRESENCE_DETECTION_STATE;false");
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State("000C17099A04AB:1.PRESENCE_DETECTION_STATE;true");
WriteLine("Fertig!");
.POSTIT verarbeitet die Daten, also wird aus false eine 0 und aus true dann 1. Nur damit Du Dich nicht wunderst.
Du kannst das Script zum Testen auch beliebig erweitern, falls Du die Verarbeitungsgeschwindigkeit im CUxD testen möchtest.
Viele Grüße
Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN Download: CUxD 2.11, SSH KeyDir
SPENDEN Download: CUxD 2.11, SSH KeyDir
-
- Beiträge: 475
- Registriert: 05.12.2016, 19:04
- Hat sich bedankt: 31 Mal
- Danksagung erhalten: 4 Mal
Re: Homematic IP Geräte mit CUxD loggen
Ich kann diese beiden Probleme bei mir bestätigen:
1) Wenn die LOGIT-Aufrufe zeitlich zu schnell (gleichzeitig bzw. 1 Sek Abstand) erfolgen, gehen manche Einträge verloren. Welche Einträge im DEVLOG landen und welche nicht, scheint zufällig zu sein. Erhöht man den zeitlichen Abstand auf 2 Sekunden oder mehr, so ist das Problem verschwunden, d.h. die DEVLOG-Einträge sind vollständig. Mir sieht das nach einem Timing-Problem aus.
2) Wenn man die DEVLOG-Einträge für HM-IP-Geräte so erzeugt, wie oben bzw. im Handbuch beschrieben, so werden sie von HIGHCHARTS nicht dargestellt bzw. ignoriert, obwohl sie im DEVLOG zu sehen sind. Woran liegt das? Haben die Einträge evtl. ein falsches Format? Für mich ist hier momentan der Workaround, die HMIP-Geräte über CUX-Geräte (Typ 90) abzubilden und dann die CUX-Geräte zu loggen und mit HIGHCHARTS darzustellen. Das ist zwar etwas umständlicher, funktioniert aber gut.
1) Wenn die LOGIT-Aufrufe zeitlich zu schnell (gleichzeitig bzw. 1 Sek Abstand) erfolgen, gehen manche Einträge verloren. Welche Einträge im DEVLOG landen und welche nicht, scheint zufällig zu sein. Erhöht man den zeitlichen Abstand auf 2 Sekunden oder mehr, so ist das Problem verschwunden, d.h. die DEVLOG-Einträge sind vollständig. Mir sieht das nach einem Timing-Problem aus.
2) Wenn man die DEVLOG-Einträge für HM-IP-Geräte so erzeugt, wie oben bzw. im Handbuch beschrieben, so werden sie von HIGHCHARTS nicht dargestellt bzw. ignoriert, obwohl sie im DEVLOG zu sehen sind. Woran liegt das? Haben die Einträge evtl. ein falsches Format? Für mich ist hier momentan der Workaround, die HMIP-Geräte über CUX-Geräte (Typ 90) abzubilden und dann die CUX-Geräte zu loggen und mit HIGHCHARTS darzustellen. Das ist zwar etwas umständlicher, funktioniert aber gut.
Viele Grüße,
debianatoe
debianatoe
- uwe111
- Beiträge: 4821
- Registriert: 26.02.2011, 22:22
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 246 Mal
- Kontaktdaten:
Re: Homematic IP Geräte mit CUxD loggen
zu 1) Hast Du mal die Tests aus meinem letzten Beitrag durchgeführt?debianatoe hat geschrieben:Ich kann diese beiden Probleme bei mir bestätigen:
zu 2) Das liegt am CUxD-HighCharts. Hier fehlt nur jemand, der sich das mal hier https://github.com/hobbyquaker/CUxD-Highcharts ansieht und anpasst.
Viele Grüße
Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN Download: CUxD 2.11, SSH KeyDir
SPENDEN Download: CUxD 2.11, SSH KeyDir
-
- Beiträge: 475
- Registriert: 05.12.2016, 19:04
- Hat sich bedankt: 31 Mal
- Danksagung erhalten: 4 Mal
Re: Homematic IP Geräte mit CUxD loggen
Die POSTIT-Zeilen laufen bei mir alle auf Fehler:uwe111 hat geschrieben: zu 1) Hast Du mal die Tests aus meinem letzten Beitrag durchgeführt?
local0.err ReGaHss: Error: IseESP::ScriptRuntimeError
Die LOGIT-Zeilen funktionieren fehlerfrei und ich bekomme auch alle Einträge mit demselben Timestamp im DEVLOG. In diesem Test werden allerdings auch nur statische Strings ins DEVLOG geschrieben. Das Problem scheint erst dann aufzutreten, wenn der Eintrag dynamisch über ein Gerät erzeugt wird, also mit: (dom.GetObject((dp.Channel()))).Address() #"."# dp.HssType() #";"#dp.Value()
Lassen sich also die Gerätefunktionen nicht beliebig schnell hintereinander aufrufen?
Wenn ich mir das Changelog ansehe, sind hier uwe111 und hobbyquaker die absoluten Spezialisten. Aber wenn das gewünscht und möglich ist, kann ich mir den Quellcode gerne mal ansehen. Wie wäre da die Vorgehensweise?uwe111 hat geschrieben: zu 2) Das liegt am CUxD-HighCharts. Hier fehlt nur jemand, der sich das mal hier https://github.com/hobbyquaker/CUxD-Highcharts ansieht und anpasst.
Viele Grüße,
debianatoe
debianatoe