Homematic IP Geräte mit CUxD loggen

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Chris203
Beiträge: 2
Registriert: 22.06.2018, 15:13
Danksagung erhalten: 1 Mal

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von Chris203 » 22.06.2018, 15:15

Was nicht gelingt ist die Anzeige der Werte der HM-IP Thermostat im CUxD-Highchart.
Mache ich da etwas falsch, oder geht das aktuell einfach nicht.
Ich habe exakt dasselbe Problem und habe keine Ahnung wonach ich hier suchen muss?

Hat jemand tipps?

Hier mein Script:

Code: Alles auswählen

!Schlafzimmer
var aktuelleTemp = (datapoints.Get("HmIP-RF.000E5709A90E91:1.ACTUAL_TEMPERATURE")).Value();
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State("Temp. Schlafzimmer"#";"# aktuelleTemp );

!Ben
aktuelleTemp = (datapoints.Get("HmIP-RF.000E5709A90B03:1.ACTUAL_TEMPERATURE")).Value();
dom.GetObject("CUxD.CUX2801001:2.LOGIT").State("Temp. Ben"#";"# aktuelleTemp );
Hier die CuxD Config:

Code: Alles auswählen

;INI-File for cuxd
LISTENPORT=8700
HM-SCRIPTHOST=127.0.0.1
HM-SCRIPTPORT=8181
RPCHOST=127.0.0.1
RPCPORT=8701
HTTP-REFRESH=5
TERMINALLINES=25
RCVLOGSIZE=10000
USERLOGIN=
CUXINITCMD=X21
LOGFILE=/tmp/devicelogs.log
LOGLEVEL=1
LOGSIZE=0
LOGFILEMOVE=/usr/local/mnt/VM1/Data/RASPI_DATA/DeviceLogs/
LOGIT=CUX2801001:1
LOGIT=CUX2801001:2
LOGIT=CUX2801001:3
LOGIT=CUX2801001:4
LOGIT=CUX2801001:5
LOGIT=CUX2801001:6
DEVLOGFILE=/usr/local/mnt/VM1/Data/RASPI_DATA/DeviceLogs/devicelogs.log
DEVLOGSIZE=10000000
DEVLOGMOVE=
DEVLOGMOVE-HR=
DEVLOGEXPORT=
DEVTIMEFORMAT=%Y-%m-%dT%X
DEVDATAFORMAT=
DEVLOGOLDALIAS=0
SUBSCRIBE-RF=1
SUBSCRIBE-WR=1
AUTOSAVE=1
MOUNTCMD=mount -t nfs4 192.168.178.36:/mnt/RAID5 /usr/local/mnt/VM1/
UMOUNTCMD=umount -f /usr/local/mnt/VM1/
BACKUPCMD=
SYSLOGMOVE=
SYSLOGMOVEDAILY=
TH-DIR=
TH-DIR-FILTER=
ADDRESS-BUFFER=120
CLOUDMATIC_CMD=/etc/config/addons/mh/cloudmatic
WEBCAMCONFIG=/usr/local/addons/cuxd/webcamconfig.ini
WEBCAMSNAPSHOT=/tmp/snapshots
WEBCAMCACHE=/tmp/webcams
SYSLOGFILENAME=/var/log/messages
CUXD-CHARTS=/etc/config/addons/www/cuxchart/index.html
DFU_ERASE=./dfu-programmer $TARGET$ erase
DFU_FLASH=./dfu-programmer $TARGET$ flash $HEXFILE$
DFU_START=./dfu-programmer $TARGET$ start
XMLDEBUG-LOG=
INTERNAL=
Im Logfile werden Werte erzeugt:

Code: Alles auswählen

2018-06-21T23:25:06 Temp._WoZi_K<FC>che 23.200000
2018-06-21T23:25:13 Temp._Schlafzimmer 20.300000
2018-06-21T23:25:13 Temp._Ben 22.900000
2018-06-21T23:25:13 Temp._Becca 21.900000
2018-06-21T23:25:13 Temp._Bad 22.400000
2018-06-21T23:25:13 Temp._Miriam 22.200000
2018-06-21T23:25:13 Temp._WoZi_K<FC>che 23.200000
2018-06-21T23:26:01 Temp._Schlafzimmer 20.300000
2018-06-21T23:26:01 Temp._Ben 22.900000
2018-06-21T23:26:01 Temp._Becca 21.900000
2018-06-21T23:26:01 Temp._Bad 22.400000
2018-06-21T23:26:01 Temp._Miriam 22.200000
2018-06-21T23:26:01 Temp._WoZi_K<FC>che 23.200000
2018-06-21T23:30:00 Temp._Schlafzimmer 20.300000
2018-06-21T23:30:00 Temp._Ben 22.900000
2018-06-21T23:30:00 Temp._Becca 21.900000
2018-06-21T23:30:00 Temp._Bad 22.400000
2018-06-21T23:30:00 Temp._Miriam 22.200000
2018-06-21T23:30:00 Temp._WoZi_K<FC>che 23.200000
2018-06-21T23:35:00 Temp._Schlafzimmer 20.300000


Benutzeravatar
uwe111
Beiträge: 4805
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 239 Mal
Kontaktdaten:

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von uwe111 » 22.06.2018, 16:21

Chris203 hat geschrieben:Hat jemand tipps?
Wahrscheinlich kann HighCharts keine Beziehung zwischen Deinen Datenpunkten im Logfile und dem auf der CCU angelegten Gerät herstellen. Anhand des Namens ist das ja nicht möglich.

In Kapitel 9 der CUxD Doku habe ich deshalb auch eine andere Vorgehensweise über den .POSTIT-Datenpunkt gewählt.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

Benutzeravatar
fairtv
Beiträge: 220
Registriert: 08.08.2014, 16:57
Wohnort: Bei Erding
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von fairtv » 22.06.2018, 18:25

Ich lasse sämtliche HM-IP Logs über den gleichen LOGIT Eintrag laufen:

Code: Alles auswählen

LOGIT=CUX9000001:1
Der Scriptcode sieht so aus:

Code: Alles auswählen

object dp = dom.GetObject("$src$");
if (dp)
{
	dom.GetObject("CUxD.CUX2801001:1.LOGIT").State( (dom.GetObject((dp.Channel()))).Name() #" "# dp.HssType() #";"#dp.Value());
}
Da Boolwerte (und % leider auch) leider so nicht wie sonst auf der zweiten Achse landen, skaliere ich sie, damit sie etwas sichtbarer werden:

Code: Alles auswählen

object dp = dom.GetObject("$src$");
if (dp)
{
    if (dp.Value() == "true" |  dp.Value() == "false")
    {
        dom.GetObject("CUxD.CUX2801001:1.LOGIT").State( (dom.GetObject((dp.Channel()))).Name() #" "# dp.HssType() #";"#(dp.Value().ToInteger() * 20));
    }
    else
    {
        dom.GetObject("CUxD.CUX2801001:1.LOGIT").State( (dom.GetObject((dp.Channel()))).Name() #" "# dp.HssType() #";"#dp.Value());
    }
}
Meine Log Einträge im Vergleich zu deinen:

Code: Alles auswählen

2018-06-22T02:31:55 Thermo_Wohnzimmer:1_ACTUAL_TEMPERATURE 20.900000
2018-06-21T23:25:13 Temp._Ben 22.900000
Damit das mit dem $src$ klappt, sollte das Klickscript drumrum so aussehen:
HM-Log-IP.png
Datensparsame können noch auf Änderung statt Aktualisierung gehen, dann dauert es aber u.U. länger bis die Kurve in HighCharts weitergemalt wird.

Und damit sehe ich sie auch in HighCharts.
Das mit dem .POSTIT (mit original Sample Code) erzeugt bei mir auf der Zentrale leider nur einen Fehler, den ich bislang nicht gefunden habe. Daher bin ich auf die "alte" Methode zurück gekehrt.
Viele Grüße,
fairtv

Chris203
Beiträge: 2
Registriert: 22.06.2018, 15:13
Danksagung erhalten: 1 Mal

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von Chris203 » 22.06.2018, 22:39

Aaaaalso....

Mit .POSTIT habe ich es nicht hin bekommen. Keine Ahnung was da nicht geht, aber ich sehe dann nichts im Log.
Dafür habe ich es jetzt mit .LOGIT geschafft.

Uwe, dein Hinweis, dass HighCharts die Datenpunkte nicht zuordnen kann, war Gold Wert.
Das Problem waren definitiv die Namen... Ich habe daraufhin die Namen in der Gerätekonfiguration nochmal überarbeitet, und meine Scripte geändert.

Da ich alle 10 Minuten das Script für alle Temperatursensoren aufrufe, kann ich nicht mit %src% arbeiten, sondern muss die Geräte direkt ansprechen.

Falls jemand das selbe vorhat, hier mein Script:

Code: Alles auswählen

!Wohnzimmer
var aktuelleTemp = (datapoints.Get("HmIP-RF.000E5709A90B32:1.ACTUAL_TEMPERATURE")).Value();
if(aktuelleTemp > 0)
{
  dom.GetObject("CUxD.CUX2801001:1.LOGIT").State("TemperaturWoZiKuecheWert:1_ACTUAL_TEMPERATURE"#";"# aktuelleTemp );
}

!Schlafzimmer
aktuelleTemp = (datapoints.Get("HmIP-RF.000E5709A90E91:1.ACTUAL_TEMPERATURE")).Value();
if(aktuelleTemp > 0)
{
  dom.GetObject("CUxD.CUX2801001:2.LOGIT").State("TemperaturSchlafzimmerWert:1_ACTUAL_TEMPERATURE"#";"# aktuelleTemp );
}

!Ben
aktuelleTemp = (datapoints.Get("HmIP-RF.000E5709A90B03:1.ACTUAL_TEMPERATURE")).Value();
if(aktuelleTemp > 0)
{
  dom.GetObject("CUxD.CUX2801001:3.LOGIT").State("TemperaturBenWert:1_ACTUAL_TEMPERATURE"#";"# aktuelleTemp );
}

!Becca
aktuelleTemp = (datapoints.Get("HmIP-RF.000E5709A90AF1:1.ACTUAL_TEMPERATURE")).Value();
if(aktuelleTemp > 0)
{
  dom.GetObject("CUxD.CUX2801001:4.LOGIT").State("TemperaturRebeccaWert:1_ACTUAL_TEMPERATURE"#";"# aktuelleTemp );
}

!Bad
aktuelleTemp = (datapoints.Get("HmIP-RF.000E5709A90A1F:1.ACTUAL_TEMPERATURE")).Value();
if(aktuelleTemp > 0)
{
  dom.GetObject("CUxD.CUX2801001:5.LOGIT").State("TemperaturBadObenWert:1_ACTUAL_TEMPERATURE"#";"# aktuelleTemp );
}

!Miriam
aktuelleTemp = (datapoints.Get("HmIP-RF.000E5709A90DE2:1.ACTUAL_TEMPERATURE")).Value();
if(aktuelleTemp > 0)
{
  dom.GetObject("CUxD.CUX2801001:6.LOGIT").State("TemperaturMiriamWert:1_ACTUAL_TEMPERATURE"#";"# aktuelleTemp );
}

Ich werde das gleiche jetzt noch für die Luftfeuchtigkeit machen...
Falls jemand interesse an dem resultierenden Script hat, kann ich dies gerne dann posten.

Danke für eure Hilfe!

grmpf
Beiträge: 659
Registriert: 21.01.2012, 12:16
Hat sich bedankt: 7 Mal
Danksagung erhalten: 5 Mal

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von grmpf » 13.07.2018, 11:30

Also ich habe seit vorhin den HMIP-SLO Helligkeitssensor.

Auf der CCU2 natürlich problemlos.
Logging über CUXD - geht nicht
bin nach Kap. 9 der Beschreibung für 2.0 vorgegangen und habe das Skript nicht geändert.
Bei LOGIT habe ich im Setup folgendes probiert:

LOGIT=000FFFFFFFFFFF:
LOGIT=000FFFFFFFFFFF:1
LOGIT=: CURRENT_ILLUMINATION
LOGIT=: AVERAGE_ILLUMINATION

2801001 ist schon ewig im CUXD/CCU2 angelegt.
Es sind keine Fehler im Syslog. Das Programm der CCU2 läuft ebenfalls regelmäßig.

Wo ist mein Denkfehler?
Gert
________________________________
CCU3 HM+HMIP, LAN-Rep., >80 Geräte, ~180 sichtb. Kanäle, (leider) nur Funk, hoher WAF trotz analogem Wife
CCU3 (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FB-HZG-Steurung) plus HMIP 23x BROLL und einige Bew-/Wasser-Melder
Raspi 3B mit Raspberrymatic (HM, 18x Rollladensteuerung und HMIP Heizungssteuerung in Altbau)

grmpf
Beiträge: 659
Registriert: 21.01.2012, 12:16
Hat sich bedankt: 7 Mal
Danksagung erhalten: 5 Mal

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von grmpf » 13.07.2018, 12:16

Also POSTIT geht nur ganz selten und nur einer der Werte wird geloggt
LOGIT geht super und ist mir sogar lieber.
Gert
________________________________
CCU3 HM+HMIP, LAN-Rep., >80 Geräte, ~180 sichtb. Kanäle, (leider) nur Funk, hoher WAF trotz analogem Wife
CCU3 (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FB-HZG-Steurung) plus HMIP 23x BROLL und einige Bew-/Wasser-Melder
Raspi 3B mit Raspberrymatic (HM, 18x Rollladensteuerung und HMIP Heizungssteuerung in Altbau)

grmpf
Beiträge: 659
Registriert: 21.01.2012, 12:16
Hat sich bedankt: 7 Mal
Danksagung erhalten: 5 Mal

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von grmpf » 08.11.2019, 19:02

Soooo - ich stehe hier auf dem Schlauch!
Ich habe eine nagelneue Installation (nur HMIPW) und will die Temperatur-Ist der HMIP-WTH mitloggen. CCU3 und CUXD sind auf den neuesten Versionen. In der WebUI habe ich das entsprechende Programm zum loggen der Werte angelegt und bei Änderung der IST-Temp wird folgendes Skript ausgeführt.

Code: Alles auswählen

object o = dom.GetObject("$src$");
if (o) {
dom.GetObject("CUxD.CUX2801001:5.LOGIT").State(o.Name()#";"#o.Value());
}
Ja, CUXD2801001 existiert und wird bei mir zum Aufruf von System Execs fleißig benutzt.
Es sind keine Fehler im SYSLOG zu sehen - aber es wird auch nichts geloggt. Auch nicht bei der Variante .POSTIT
Im Setup von CUXD habe ich folgendes ausprobiert:

Code: Alles auswählen

LOGIT=: ACTUAL_TEMPERATURE
LOGIT=0099999999830F:1 ACTUAL_TEMPERATURE
LOGIT=0099999999830F
Aber nach meinem Verständnis muss da eigentlich gar nichts stehen!
Wenn ich LOGIT=: eintrage wird eine ganze Menge "Unsinn" von der CCU geloggt. Habe ich nur zum testen mal gemacht.
Wo ist mein Fehler?
Zuletzt geändert von grmpf am 08.11.2019, 19:44, insgesamt 1-mal geändert.
Gert
________________________________
CCU3 HM+HMIP, LAN-Rep., >80 Geräte, ~180 sichtb. Kanäle, (leider) nur Funk, hoher WAF trotz analogem Wife
CCU3 (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FB-HZG-Steurung) plus HMIP 23x BROLL und einige Bew-/Wasser-Melder
Raspi 3B mit Raspberrymatic (HM, 18x Rollladensteuerung und HMIP Heizungssteuerung in Altbau)

debianatoe
Beiträge: 471
Registriert: 05.12.2016, 19:04
Hat sich bedankt: 30 Mal
Danksagung erhalten: 4 Mal

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von debianatoe » 08.11.2019, 19:29

Also bei mir funktioniert es mit
LOGIT=001CDA498F830F:1 ACTUAL_TEMPERATURE MeineTemperatur

Ich habe allerdings einen HmIP-STH.
Viele Grüße,
debianatoe

grmpf
Beiträge: 659
Registriert: 21.01.2012, 12:16
Hat sich bedankt: 7 Mal
Danksagung erhalten: 5 Mal

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von grmpf » 08.11.2019, 19:47

Siehe oben: Bei mir nicht. Ist das Skript bei Dir identisch? Ich habe das aus der CUxD-Beschreibung genutzt und nur den Kanal 5 verwendet statt 1 oder 8. Aber das dürfte egal sein.
Beim expliziten loggen der Device mit folgendem Skript funktioniert es - aber es sollte doch auch gemäß CUxD-Doku funktionieren, oder?

Code: Alles auswählen

var temp1 = (datapoints.Get("HmIP-RF.0099999999830F:1.ACTUAL_TEMPERATURE")).Value();
if(temp1 > 0)
{
  dom.GetObject("CUxD.CUX2801001:5.LOGIT").State("EG Thermostat Arbeitszimmer:1_ACTUAL_TEMPERATURE"#";"# temp1 );
}
Gert
________________________________
CCU3 HM+HMIP, LAN-Rep., >80 Geräte, ~180 sichtb. Kanäle, (leider) nur Funk, hoher WAF trotz analogem Wife
CCU3 (Neubauinst.) HMIPW (3x DRI, 5x DRS, kpl. FB-HZG-Steurung) plus HMIP 23x BROLL und einige Bew-/Wasser-Melder
Raspi 3B mit Raspberrymatic (HM, 18x Rollladensteuerung und HMIP Heizungssteuerung in Altbau)

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

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von alchy » 08.11.2019, 19:51

grmpf hat geschrieben:
08.11.2019, 19:02
und bei Änderung der IST-Temp wird folgendes Skript ausgeführt.
Du musst aber auch dafür sorgen das $src$ der Auslöser ist und ausgelöst wird.

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.

Antworten

Zurück zu „CUxD“