Homematic IP Geräte mit CUxD loggen

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

Moderator: Co-Administratoren

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

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von alchy » 17.02.2020, 21:09

Ich habe mal ein wenig rum gespielt. Geht doch.
IP Geräte funktionieren schon mal genau so wie die RF Geräte.
uwe111 hat geschrieben:
14.02.2020, 23:00
Das stimmt nicht! Die "invalid date" Meldung hatte ich ich auch schon früher auf meiner CCU1. Aktuell habe ich sie nicht.
Klar stimmt das. Weil ein Datenpunktname automatisch ein . enthält. Hab ich ja geschrieben.
Wenn du das nicht hast, liegt das daran, das du keine . im Namen der geloggten Sachen an der falschen Stelle hast.
Logge einfach mal eine Systemvariabe mit . im Namen und wähle sie aus. invalide Date ist vorprogrammiert.

Unlustigerweise muss ich jetzt trotzdem noch mal schauen, wo jetzt genau der beschriebene Bug drin steckt.


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.

Benutzeravatar
uwe111
Beiträge: 4807
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 » 17.02.2020, 22:35

alchy hat geschrieben:
17.02.2020, 21:09
uwe111 hat geschrieben:
14.02.2020, 23:00
Das stimmt nicht! Die "invalid date" Meldung hatte ich ich auch schon früher auf meiner CCU1. Aktuell habe ich sie nicht.
Klar stimmt das. Weil ein Datenpunktname automatisch ein . enthält. Hab ich ja geschrieben.
Wenn du das nicht hast, liegt das daran, das du keine . im Namen der geloggten Sachen hast.
Also entweder reden wir jetzt aneinander vorbei oder warum stehen dann in meinem DEVLOGFILE die folgenden Einträge mit . und ich habe keine "invalid Date" Meldung im HighCharts?

Code: Alles auswählen

2020-02-17T16:00:12 000A9707A0A204:1.SET_POINT_TEMPERATURE 20.000000
2020-02-17T16:00:12 000A9707A0A204:1.ACTUAL_TEMPERATURE 20.500000
2020-02-17T17:00:10 000A9707A0A204:1.SET_POINT_TEMPERATURE 17.000000
2020-02-17T17:00:10 000A9707A0A204:1.ACTUAL_TEMPERATURE 20.500000
2020-02-17T17:10:24 000A9707A0A204:1.SET_POINT_TEMPERATURE 17.000000
2020-02-17T17:10:24 000A9707A0A204:1.ACTUAL_TEMPERATURE 20.600000
Oder passiert das nur, wenn ich Systemvariablen logge? Das habe ich jetzt nicht probiert.

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

alpa
Beiträge: 1
Registriert: 10.03.2020, 19:56

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von alpa » 10.03.2020, 21:12

Servus!

Wie bereits andere User, hatte ich leider ähnliche Probleme mit dem Graphen. Nach mehreren Anläufen, hats aber dann irgendwann doch was angezeigt. Ich stand zunächst ein wenig auf dem Schlauch, weil das Device Logging eigentlich von Anfang an solide funktioniert hat, nur irgendwie wollte es mit der Anzeige nicht.

Also bin ich dem ganzen ein wenig hinterher getaucht, und hab mich an dem invalid date erstmal entlang gehangelt und denke auch das Problem mehr oder weniger gefunden zu haben.

Wie alchy bereits erwähnt hat, gibt es wohl einen Bug was die Anzeige von Einträgen mit einem "." im Namen angeht. Es ist nicht ganz wenig Code zum durchsteigen, kenn mich leider mit Highcharts nicht unbedingt gut aus und weiß als blutiger Homematic User auch nicht unbedingt genau wie das mal funktioniert hat bzw. gedacht war.

Soweit ich das bisher verstanden habe, versucht das Script mit Hilfe des "." den String zu spliten um anhand des Teiles nach dem "." den Anzeigetyp für den Graphen zu bestimmen. Jetzt ist es nur irgendwie so, dass noch an anderer Stelle gesplitet wird und dabei u.a. der hintere Teil wieder hinten dran gehängt wird (sieht dann so aus 000123456789AB:1.ACTUAL_TEMPERATURE.ACTUAL_TEMPERATURE), was sich dann im weiteren dann irgendwie verschluckt.

Ich vermute den Übeltäter hier:

Code: Alles auswählen

var tmpArr = [];
for (var dp in cuxchart.dates) {
    var tmp = dp.split(".");
    if (!tmp[1]) { <-- im Fall von "_" true und ergibt einen leeren String
        tmp[1] = "";
    } else {
        tmp[1] = "." + tmp[1];
    }
    tmpArr.push(cuxchart.dpInfos[dp].ChannelName + tmp[1]); <-- hier wird im Fall von "." der Teil danach ein zweites mal an den Channel gehängt
}
tmpArr.sort();
var serie;
for (var i = 0; i < tmpArr.length; i++) {
    if (cuxchart.revDpInfos[tmpArr[i]]) {
        serie = cuxchart.revDpInfos[tmpArr[i]];
    } else {
        serie = tmpArr[i];
    }
    cuxchart.addSeries(serie);
}
Ob cuxchart.dates oder cuxchart.dpInfos[dp].ChannelName evtl. nicht richtig sind so weit bin ich bisher nicht durchgestiegen.

Das invalid date kommt glaub ich dann zu Stande, wenn man ausschließlich Einträge mit "." in der Devicelog hat, bzw. er dann auch in der Legende nichts anzeigt. Ich hab bisher nur zwei HMIP Geräte an der CCU, da fällt es dann relativ leicht auf wenn es mit dem "." im Programm nicht, aber dafür mit dem "_" funktioniert (wenn man's mal herausgefunden hat woran es liegt).

Zum maintainen wird meine Zeit aktuell leider nicht reichen, aber ich könnte versuchen das gefixt zu bekommen und nen PR zu machen. Vielleicht steckt jemand tiefer drin und kann mir zumindest verraten wie das gedacht war, weil ich da noch was gefunden hab:

Code: Alles auswählen

case "TEMPERATURE":
case "ABS_HUMIDITY":
case "DEW_POINT":
case "TEMP_MAX_24H":
case "TEMP_MIN_24H":
valueDecimals = 1;
type = "spline";
break;
Das würde im Fall von dem Script aus der CUxD Readme:

Code: Alles auswählen

object dp = dom.GetObject("$src$");
if (dp) {
dom.GetObject("CUxD.CUX2801001:1.POSTIT").State((dom.GetObject((dp.Channel()))).Address() #"."# dp.HssType() #";"#dp.Value());
}
auch nicht ganz matchen weil das wäre bei mir z.B. ACTUAL_TEMPERATURE und nicht TEMPERATURE.

Wäre nett wenn sich vielleicht wer melden mag und mir paar Infos dazu stecken kann. Ich wüsste z.B. auch nicht wie das mit den Alias funktioniert (hat) etc.

Kleiner Nachtrag:
Anstatt den zusammen gestampften Code zu debuggen, den originalen zu benutzen hilft ungemein. Allerdings ist mir dabei noch was aufgefallen. Die Backend Schnittstellen bestehen aus tcl/perl(?) Scripts die dann irgendwie auf die Script Ebene von der CCU zugreifen? Mit JS bin ich relativ fit aber damit hab ich jetzt irgendwie bissl meine Probleme.

Grüße,
Alex

Benutzeravatar
uwe111
Beiträge: 4807
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 » 11.03.2020, 23:56

Hallo Alex,
alpa hat geschrieben:
10.03.2020, 21:12
Wäre nett wenn sich vielleicht wer melden mag und mir paar Infos dazu stecken kann. Ich wüsste z.B. auch nicht wie das mit den Alias funktioniert (hat) etc.
Den Alias habe ich nur aus historischen Gründen noch drin. Ich denke er wird jetzt ans Ende der Zeile geschrieben und dann vor der Übergabe mittels logfilter weggefiltert. Das müsste man mal prüfen. Ich bin mir da nicht mehr so sicher.
alpa hat geschrieben:
10.03.2020, 21:12
Die Backend Schnittstellen bestehen aus tcl/perl(?) Scripts die dann irgendwie auf die Script Ebene von der CCU zugreifen? Mit JS bin ich relativ fit aber damit hab ich jetzt irgendwie bissl meine Probleme.
Für den Zugriff auf die Logs habe ich dieses kleine Programm geschrieben: https://github.com/jens-maus/cuxd/tree/ ... /logfilter

Du kannst Programm auch direkt von der Kommandozeile aufrufen, falls Du die Ausgabe kontollieren möchtest:

Code: Alles auswählen

/usr/local/addons/cuxd/extra/logfilter
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
Rosagallica
Beiträge: 81
Registriert: 22.07.2018, 15:54
System: CCU
Hat sich bedankt: 14 Mal
Danksagung erhalten: 6 Mal

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von Rosagallica » 25.08.2020, 18:35

uwe111 hat geschrieben:
15.02.2020, 20:01
Wenn das so ist, dann sollte dieses Problem aber in CUxD Highcharts korrigiert werden. Denn die von mir im DEVLOGFILE definierte Schreibweise ist folgende:
Seriennummer:Kanal.Datenpunkt Wert
alchy hat geschrieben:
14.02.2020, 23:23
Wenn CUxD Highcharts die geloggten IP Seriennummern auch in die Namen wandeln würde wäre das perfekt.
Genau so sehe ich das auch! Wenn dann noch der sporadisch auftretende "invalid Date" Fehler weg ist, wäre es wirklich perfekt.

Ich habe momentan leider nicht die Zeit, mich nebenbei auch noch mit CUxD Highcharts zu beschäftigen und würde es sehr begrüßen, wenn jemand das Projekt weiterführen würde: https://github.com/homematic-community/CUxD-Highcharts
Bis auf kleine Optimierungen, die ich vor 5 Jahren gemacht habe ist hier seit 7 Jahren nichts mehr passiert. :cry:
Dazu muss man auch kein Programmierexperte sein. Mit grundlegendem Programmierverständnis und viel Zeit sollte eigentlich jeder in der Lage sein sich in JavaScript einzuarbeiten. Bei den Schnittstellen-Scripts würde ich natürlich gerne unterstützend zur Verfügung stehen.

Viele Grüße
Uwe
Ich bin jetzt auch nochmal über das Thema gestolpert, nachdem ich den POSTIT-Logger für ein Wrapper-Device ergänzt habe. Ich hatte mich schon länger geärgert, dass HmIP-Kanal-Umbenennungen in den Charts nicht nachgezogen wurden.

Wenn man nicht auf eine der bereits beschrieben Wege "händisch" per DP-Namensauflösung HmIP-Datenpunkte in einen Highcharts-kompatiblen Logeintrag überführen will, ist ja das grundlegende Problem die fehlende Auflösung von HmIP-Geräte-Seriennummern bei Logeinträgen, die mittels POSTIT entstanden sind.
Dies passiert im CUxD-Backend in der Datei ajax/dpinfos.cgi - lokal zu finden unter /www/addons/cuxchart/ajax/dpinfos.cgi:

Code: Alles auswählen

 if { [string equal -length 3 $dp "CUX"] } {
        append hm_script "o = dom.GetObject('CUxD.$dp');\n"
    } else {
        append hm_script "o = dom.GetObject('BidCos-RF.$dp');\nif (!o) \{\n"
        append hm_script "o = dom.GetObject('BidCos-Wired.$dp');\n\}\n"
    }
Hier muss also noch neben der Unterscheidung zwischen CUxD- und HM-Geräten noch eine Abfrage für HmIP rein.
Diese Zeile quick'n'dirty ergänzt...

Code: Alles auswählen

    if { [string equal -length 3 $dp "CUX"] } {
        append hm_script "o = dom.GetObject('CUxD.$dp');\n"
    } else {
        append hm_script "o = dom.GetObject('BidCos-RF.$dp');\nif (!o) \{\n"
        append hm_script "o = dom.GetObject('BidCos-Wired.$dp');\n\}\n"
# NEU >>
        append hm_script "if (!o) \{ o = dom.GetObject('HmIP-RF.$dp'); \}\n";
# NEU <<
    }
...liefern vielversprechende Ergebnisse im Highchart-Diagramm.
Der Datenpunkt mit Unterstrichen sind meine bislang per Skript generierten Logeinträge - der mit Leerzeichen ist jetzt durch diesen Patch dazugekommen.
ergebnis-patch-cuxd-highcharts.png
ergebnis-patch-cuxd-highcharts.png (20.17 KiB) 2376 mal betrachtet
Jetzt gilt es eigentlich nur die richtige "Weichenbedingung" zu finden, um den passenden dom.GetObject(...)-Befehl hier je nach ankommender Seriennummer zu generieren. Auf gut Glück - wie oben skizziert - mit allen Präfixen zu probieren, geht sicherlich, ist aber nicht so "schön" und kostet unnötig Performance.
Vielleicht hilft Euch das als Anregung...

UPDATE 05/2021:
Manche HmIP-Geräte (etwa der Tür-Fenster-Kontakt) liefern im Attribute ValueUnit keinen Leerstring sondern als Inhalt die Anführungszeichen gleich mit (""). Damit produziert das in dpinfos.cgi generierte Homematic-Skript ungültiges JSON, sodass dann Highcharts festhängt beim Lesen der Datenpunkte.

Diese Zeile

Code: Alles auswählen

 append hm_script "Write('\"ValueUnit\":\"' # o.ValueUnit() # '\"');\n"
ist daher auch noch zu ersetzen mit

Code: Alles auswählen

append hm_script "string valueunit = o.ValueUnit();\n"
append hm_script "if (valueunit=='\"\"') \{ valueunit = \"\"; \}\n"
append hm_script "Write('\"ValueUnit\":\"' # valueunit # '\"');\n"
Zuletzt geändert von Rosagallica am 30.05.2021, 22:10, insgesamt 1-mal geändert.

SebSchill
Beiträge: 1
Registriert: 10.11.2020, 14:45
System: CCU

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von SebSchill » 11.11.2020, 21:09

Guten Abend,

ich bin ganz neu hier und das auch auf dem Gebiet der Homematic.

Und ich habe auch das problem das mir cuxd Highcharts leider meien Aufgezeichnetenwerte nicht Anzeigt.

hier mal ein auszug aus dem devlog
2020-11-11T06:09:50 CUX-SYSTEM:0.MEMUSED 519880
2020-11-11T06:09:56 00059A498C6E8F:1.STATE false
2020-11-11T06:10:00 CUX-SYSTEM:0.CPU10 4.1
2020-11-11T06:10:00 CUX-SYSTEM:0.LAVG1M 0.44
2020-11-11T06:10:00 CUX-SYSTEM:0.LAVG5M 0.24
2020-11-11T06:10:00 CUX-SYSTEM:0.LAVG15M 0.19
2020-11-11T06:10:00 CUX-SYSTEM:0.PROCS 262
2020-11-11T06:10:00 CUX-SYSTEM:0.CUXDMEM 178504
2020-11-11T06:10:00 CUX-SYSTEM:0.MEMUSED 520512
2020-11-11T06:10:06 000A98A9AB1CE0:1.ACTUAL_TEMPERATURE 21.600000

sieht für mich so ais das die werte schon mal korrekt im devlog landen, ist das korrekt?

Wenn dann die daten über Highcharts ansehen möchte bekomme ich auch leider die anzeige mit invalid date
Gibt es schon eine Lösung dafür?

Wenn ich mit nur reine CUXd geräte logs anzeigen lasse dan funktioniter das einwandfrei


Gruß
Sebastian

JRE
Beiträge: 15
Registriert: 15.03.2015, 10:10
System: CCU
Wohnort: Köln

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von JRE » 29.01.2023, 16:59

Hallo Zusammen,

ich weiß nicht ob es richtig ist meine Frage hier anzuhängen oder ob ich einen neuen Thread aufmachen sollte. Wenn es hier falsch ist, dann bitte eine Info und ich ändere es.

Wie ich gesehen habe, wurde bei CUxD mit HighChart schon länger nichts mehr gemacht. Ich habe vorab den Thread viewtopic.php?f=37&t=12939&start=500 komplett durchgelesen und abgearbeitet. Einiges ausprobiert und wieder verworfen. Musste schon 2 mal die CCU3 über ein Backup wiederherstellen. Passiert halt. :roll:
Ich habe eine CCU3 mit etlichen Schalt-Messsteckdosen, 7 ältere und 9 von den neuen HMIP. Fensterkontakte, Heizkörperthermostate und Wandthermostate kann man im Moment außen vor lassen.

Die Messwerte der Steckdosen werden in devlog.txt gespeichert. In HighChart werden die Seriennummern der älteren Steckdosen in Namen umgesetzt, nur die der HMIP Dosen nicht, da steht nur die Seriennummer und der Datenpunkt.

Auszug aus der devlog.txt
  • 2023-01-29T00:28:41 0034DF2991CB0B:6_POWER 0.000000
    2023-01-29T00:28:41 0034DF2991CB0B:6_CURRENT 0.000000
    2023-01-29T00:28:48 LEQ0537922:2.POWER 0.0
    2023-01-29T00:28:48 LEQ0537922:2.CURRENT 0.0
    2023-01-29T00:28:52 0034DF2991CBD2:6_POWER 0.000000
    2023-01-29T00:28:52 0034DF2991CBD2:6_CURRENT 0.000000
    2023-01-29T00:28:55 0034DF29B5140A:6_POWER 49.020000
    2023-01-29T00:28:55 0034DF29B5140A:6_CURRENT 271.000000
    2023-01-29T00:28:58 0034DF2991CBD9:6_POWER 0.000000
    2023-01-29T00:28:58 0034DF2991CBD9:6_CURRENT 0.000000
    2023-01-29T00:29:06 0034DF29B2FE05:6_POWER 0.880000
    2023-01-29T00:29:06 0034DF29B2FE05:6_CURRENT 17.000000
Wollte einen ScreenShot einfügen, hab aber keine Webseite auf der ich das Bild speichern kann.

Auszug aus HighChart
  • HMIP
    0034DF29B5166V:6_CURRENT
    0034DF29B5166V:6_POWER

    HM
    SD-01-Trockner:2 CURRENT [mA]
    SD-01-Trockner:2 POWER [W]
Habe dann wie von Rosagallica beschrieben die /www/addons/cuxchart/ajax/dpinfos.cgi angepasst, leider auch ohne Erfolg.

Code: Alles auswählen

#!/bin/tclsh

# meta.cgi
#
# 5'2013 hobbyquaker https://github.com/hobbyquaker
# 2'2015 Uwe Langhammer ulangham@gmx.de
#

load tclrega.so

puts "Content-Type: text/json;Charset=ISO-8859-1"
puts "Access-Control-Allow-Origin: *"
puts ""

set postdata [string trim [read stdin]]

set dps [split $postdata ";"]
set counter 0
foreach dp $dps {
    if { $counter == 0 } {
      set hm_script "object o;\nobject ch;\n"
    }
    incr counter
    if { [string equal -length 3 $dp "CUX"] } {
        append hm_script "o = dom.GetObject('CUxD.$dp');\n"
    } else {
        append hm_script "o = dom.GetObject('BidCos-RF.$dp');\nif (!o) \{\n"
        append hm_script "o = dom.GetObject('BidCos-Wired.$dp');\n\}\n"
# NEU >>
        append hm_script "if (!o) \{ o = dom.GetObject('HmIP-RF.$dp'); \}\n";
# NEU <<
    }  
    append hm_script "if (o) \{\n"
    append hm_script "Write('\"$dp\":\{');\n"
    append hm_script "string valueunit = o.ValueUnit();\n"
    append hm_script "if (valueunit=='\"\"') \{ valueunit = \"\"; \}\n"
    append hm_script "Write('\"ValueUnit\":\"' # valueunit # '\"');\n"
#    append hm_script "Write('\"ValueUnit\":\"' # o.ValueUnit() # '\"');\n"   
#    append hm_script "Write('\"ValueType\":\"' # o.ValueType() # '\",');\n"
#    append hm_script "Write('\"ValueSubType\":\"' # o.ValueSubType() # '\",');\n"
#    append hm_script "Write('\"ValueMin\":\"' # o.ValueMin() # '\",');\n"
#    append hm_script "Write('\"ValueMax\":\"' # o.ValueMax() # '\"');\n"
    append hm_script "ch = dom.GetObject(o.Channel());\nif (ch) \{\n"
    append hm_script "Write(',\"ChannelName\":\"' # ch.Name() # '\"');\n"
#    append hm_script "Write('\"ChannelHssType\":\"' # ch.HssType() # '\"');\n"
    append hm_script "\}\nWriteLine('\},');\n"
    append hm_script "\}\n"
    if { $counter == 50 } {
#puts "query $counter"
#puts $hm_script
        append ret [lindex [rega_script $hm_script] 1]
        set counter 0
    }
}
if { $counter > 0 } {
#puts "last query $counter"
#puts $hm_script
    append ret [lindex [rega_script $hm_script] 1]
}
set retlen [string length $ret]
set retmin [expr { $retlen - 3 }]
puts -nonewline "{"
puts -nonewline [string replace $ret $retmin $retlen]
puts "}"

Hat noch jemand eine Idee was ich machen kann, oder wo ich einen Fehler habe? Wenn ich wüßte wie ich es händisch einmalig und dauerhaft umsetzten kann, durch Alias vergeben oder sonstwas, würde ich es auch machen.

Vielen Dank schon mal.
JRE [Johannes]

31.01.2023 Update: Hat sich erledigt, ich habs hinbekommen.
Liebe Grüße

JRE [Johannes]

20Chris23
Beiträge: 2
Registriert: 04.08.2023, 19:45
System: CCU

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von 20Chris23 » 27.11.2023, 21:54

Hallo zusammen,

ich stehe weiterhin vor dem Problem, des "invalid date" in cuxchart.
31.01.2023 Update: Hat sich erledigt, ich habs hinbekommen.
Aber wie?

Liebe Grüße

JRE
Beiträge: 15
Registriert: 15.03.2015, 10:10
System: CCU
Wohnort: Köln

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von JRE » 28.11.2023, 08:00

Moin 20Chris23,

um ehrlich zu sein, das weiß ich nicht mehr :( . Bin im Februar schon umgestiegen auf IoBroker, InfluxDB und Grafana. Natürlich habe ich dort die CCU3 angebunden und zeichne den Stromverbrauch, Temperaturen etc. auf.
Ich habe in meinen Notizen nachgesehen und 2 Links zu der Webseite von Technikkram gefunden, die ich wohl als zusätzliche Anleitung genutzt habe.

https://technikkram.net/blog/2019/05/26 ... s-teil-1/
https://technikkram.net/blog/2019/05/26 ... n-teil-2/

Dann hatte ich mir noch folgendes notiert:
Da die Namensauflösung irgendwie nicht funktioniert, muss man für jede HMIP Steckdose ein Programm anlegen und den Namen im Script angeben.

Code: Alles auswählen

object dp = dom.GetObject("$src$");
if (dp) {
 dom.GetObject("CUxD.CUX2801001:1.LOGIT").State((dom.GetObject(("SD-09-PC-Johannes:6"))).Name() #"_"# dp.HssType() #";"#dp.Value());
}
Eventuell hilft dir das weiter. Ich kann es leider nicht mehr nachvollziehen, weil ich das alles von der CCU3 gelöscht habe.
Liebe Grüße

JRE [Johannes]

20Chris23
Beiträge: 2
Registriert: 04.08.2023, 19:45
System: CCU

Re: Homematic IP Geräte mit CUxD loggen

Beitrag von 20Chris23 » 28.11.2023, 09:37

Hi Johannes,

lieben Dank für die schnelle Antwort. Ich habe es ca. eine halbe Stunde später dann auch selber hinbekommen.

Bei mir hat folgendes geklappt:
Cuxd installiert
cuxdhighchart installiert
    Anweisungen aus der Dokumentation von cuxd folgen.
      Anschließend das Programm für die IP Geräte in der ccu3 einrichten
        Aber das Skript aus folgendem thread eingetragen.
        viewtopic.php?f=37&t=63149&start=10

        Code: Alles auswählen

        !- LOGIT Datenpunkte von IP-Geräten für CUxD [Highcharts]
        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() * 10));
        }
        else {
        dom.GetObject("CUxD.CUX2801001:1.LOGIT").State( (dom.GetObject((dp.Channel()))).Name() #" "# dp.HssType() #";"#dp.Value());
        }}
          Alle Namen der Geräte die geloggt werden sollen in der ccu3 ohne Leerzeichen mit Unterstrichen benennen. Z.B. "Temperatur_Vorlauf_FBH"
            In Cuxd unter Setup einmal einen LOGIT=Temperatur_Vorlauf_FBH eintragen.

            Anschließend waren die Datenpunkte nicht nur in cuxd sondern auch im highchart drin. Läuft bisher problemlos.

            Vielleicht hilft das jemandem noch weiter.

            An den iobroker habe ich mich noch nicht getraut. Ist aber sicherlich einer der sinnigen weiteren Schritte.

            Liebe Grüße
            Chris

            Antworten

            Zurück zu „CUxD“