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

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: 3630
Registriert: 26.02.2011, 23:22
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.0.1, RFD-Monitor, Vellemann K8055, SSH KeyDir

Benutzeravatar
fairtv
Beiträge: 150
Registriert: 08.08.2014, 16:57
Wohnort: Bei Erding

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

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: 414
Registriert: 21.01.2012, 13:16

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
________________________________
CCU2, 100 Geräte, 140 Kanäle, nur Funk, hoher WAF trotz analogem Wife

grmpf
Beiträge: 414
Registriert: 21.01.2012, 13:16

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
________________________________
CCU2, 100 Geräte, 140 Kanäle, nur Funk, hoher WAF trotz analogem Wife

Antworten

Zurück zu „CUxD“