HmIP-SPI mit CuxD loggen und mit Highcharts darstellen

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

Moderator: Co-Administratoren

Takahara
Beiträge: 41
Registriert: 16.12.2018, 11:31
Hat sich bedankt: 13 Mal

HmIP-SPI mit CuxD loggen und mit Highcharts darstellen

Beitrag von Takahara » 30.11.2020, 20:00

Hallo,

ich versuche den Status von Homematic sowie Homematic-IP Geräten gleichzeitig zu loggen und in Highcharts darzustellen.
Aktuell verwende ich einen HM-LC-Sw2-FM Schaltaktor und einen HmIP-SPI Präsenzmelder. Das loggen und darstellen in Highcharts funktioniert mit dem HM-LC-Sw2-FM Schaltaktor einwandfrei, nur den Status des Präsensmelders kann ich nicht loggen und in Highcharts darstellen.

Zum loggen des HmIP-Gerätes habe ich ein Script angelegt, welches auf Aktualisierung (Präsenz erkannt oder Präsenz nicht erkannt) ausgeführt wird.
Wichtig zu erwähnen ist, dass ich den Kanal 2 des CUX2801001 Gerätes anspreche und nicht den Kanal 1. Nach meinem Verständnis des CUx-Daemon ist jeder Kanal für ein neues zu loggendes Gerät zu nehmen.

object log=dom.GetObject(„$src$“);
if(log)
{
dom.GetObject(„CUxD.CUX2801001:2.LOGIT“).State((dom.GetObject((log.Channel()))).Name() #“ „# log.HssType() #“;“#log.Value());
}

Zusätzlich habe ich den LOGIT=“Geräte Seriennummer des HmIP-SPI im Cux-Daemon Menü eingetragen. Wenn ich Highcharts öffne kann ich leider nur alle Kanäle des HM-LC-Sw2-FM sehen und keine Kanäle des Hm-IP-SPI.

Hat jemand vielleicht eine Idee wo ich etwas falsch gemacht haben könnte?

VG
Takahara
Dateianhänge
2020-11-30 19_58_51-Window.png
2020-11-30 19_58_51-Window.png (15.4 KiB) 513 mal betrachtet
2020-11-30 19_58_31-Window.png

Baxxy
Beiträge: 2524
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 204 Mal
Danksagung erhalten: 392 Mal

Re: HmIP-SPI mit CuxD loggen und mit Highcharts darstellen

Beitrag von Baxxy » 30.11.2020, 23:00

Takahara hat geschrieben:
30.11.2020, 20:00
Hat jemand vielleicht eine Idee
CUxD-Highcharts stammt noch aus der Prä-IP-Zeit und wird auch nicht wirklich weiterentwickelt.
Daher ist die Anbindung von IP-Geräten zwar möglich aber etwas holprig.

Zum einen:
Takahara hat geschrieben:
30.11.2020, 20:00
Zusätzlich habe ich den LOGIT=“Geräte Seriennummer des HmIP-SPI im Cux-Daemon Menü eingetragen.
Das kannst du wieder entfernen, die LOGIT Einträge haben meines Wissens keinerlei Wirkung für IP-Geräte.
Takahara hat geschrieben:
30.11.2020, 20:00
Zum loggen des HmIP-Gerätes habe ich ein Script angelegt,
Soweit in Ordnung, aber der SMI sendet true / false. Damit kann CUxD-Highcharts nichts anfangen glaube ich.
Versuche es mal so.

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());
}}
Hier wird true / false in eine Ganzzahl gewandelt und mit 10 multipliziert. Also keine Präsens = 0; Präsens = 10

Rosagallica
Beiträge: 54
Registriert: 22.07.2018, 15:54
System: CCU
Hat sich bedankt: 7 Mal
Danksagung erhalten: 2 Mal

Re: HmIP-SPI mit CuxD loggen und mit Highcharts darstellen

Beitrag von Rosagallica » 01.12.2020, 16:11

Takahara hat geschrieben:
30.11.2020, 20:00
Zusätzlich habe ich den LOGIT=“Geräte Seriennummer des HmIP-SPI im Cux-Daemon Menü eingetragen. Wenn ich Highcharts öffne kann ich leider nur alle Kanäle des HM-LC-Sw2-FM sehen und keine Kanäle des Hm-IP-SPI.
Das dürfte an der fehlenden Seriennummern-Auflösung in /www/addons/cuxchart/ajax/dpinfos.cgi für HmIP-Devices liegen. Entweder im Log-Programm den Kanalnamen selbst auflösen und an LOGIT übergeben, oder (analog zu anderen Classic Homematic/Cuxd-Devices) die Auflösung in den Highcharts aufbohren:
viewtopic.php?f=37&t=35303&p=600374#p600374

Log-Programm sieht bei mir ähnlich aus:

Code: Alles auswählen

object o = dom.GetObject("$src$");
if (o)
{
  boolean isBoolean = (o.ValueType() == ivtBinary);
  string chName = (dom.GetObject((o.Channel()))).Name();
  string hssType = o.HssType();
  var value;
  if (isBoolean) {
    value = o.Value().ToInteger();
  } else {
    value = o.Value();
  }
  dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(chName # " " # hssType # ";" # value);
}

yvdrege
Beiträge: 9
Registriert: 29.11.2020, 09:33
System: CCU und Access Point
Hat sich bedankt: 1 Mal

Re: HmIP-SPI mit CuxD loggen und mit Highcharts darstellen

Beitrag von yvdrege » 01.12.2020, 19:08

Baxxy hat geschrieben:
30.11.2020, 23:00
CUxD-Highcharts stammt noch aus der Prä-IP-Zeit und wird auch nicht wirklich weiterentwickelt.
Daher ist die Anbindung von IP-Geräten zwar möglich aber etwas holprig.
Was ist denn dann als Login zu empfehlen?
Wollte es eigentlich auch für HMIP Geräte nutzen.

Baxxy
Beiträge: 2524
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 204 Mal
Danksagung erhalten: 392 Mal

Re: HmIP-SPI mit CuxD loggen und mit Highcharts darstellen

Beitrag von Baxxy » 01.12.2020, 19:28

yvdrege hat geschrieben:
01.12.2020, 19:08
Was ist denn dann als Login zu empfehlen?
Ich nutze den CCU-Historian als Add-On auf meinen Zentralen (Pi3B / Pi4B). Der ist schnell installiert und auch die Dokumentation ist sehr gut.
Bei Problemen hilft der Autor hier im Forum schnell aus.

Man sollte sich aber definitiv etwas einlesen und spätestens einen Tag nach Installation in aller Ruhe seine Datenpunkte konfigurieren. Sonst nimmt die aufgezeichnete Datenmenge schnell überhand.
In der Grundeinstellung zeichnet der Historian "jeden Pups" auf den deine Zentrale lässt. :wink:

yvdrege
Beiträge: 9
Registriert: 29.11.2020, 09:33
System: CCU und Access Point
Hat sich bedankt: 1 Mal

Re: HmIP-SPI mit CuxD loggen und mit Highcharts darstellen

Beitrag von yvdrege » 01.12.2020, 19:49

Ok, aber das zieht für mich momentan noch recht kompliziert aus. :shock:

Takahara
Beiträge: 41
Registriert: 16.12.2018, 11:31
Hat sich bedankt: 13 Mal

Re: HmIP-SPI mit CuxD loggen und mit Highcharts darstellen

Beitrag von Takahara » 02.12.2020, 20:47

Hallo,

ich habe das Script von Baxxy ingesetzt und bin mit der Umsetzung ganz zufrieden (siehe screenshot mit den roten Balken).
@Baxxy: Hast du evtl. noch einen Tipp wie man die Behanghöhe eines Rollladenaktors (HmIP-BROLL) loggen kann? Die Behanghöhe wird nur in Werten zwischen 0.0 und 0.5, aber nach meinem Verständnis sollte die Behanghöhe zwischen 0% und 100% wechseln.

VG
Takahara
Dateianhänge
Rollladenaktor.png
2020-12-02 20_36_20-01_Allgemeine_Daten.xlsx - Excel.png

Baxxy
Beiträge: 2524
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 204 Mal
Danksagung erhalten: 392 Mal

Re: HmIP-SPI mit CuxD loggen und mit Highcharts darstellen

Beitrag von Baxxy » 02.12.2020, 21:47

Takahara hat geschrieben:
02.12.2020, 20:47
Hast du evtl. noch einen Tipp wie man die Behanghöhe eines Rollladenaktors (HmIP-BROLL) loggen kann?
Ich habe selbst keine HmIP-BROLL oder HmIP-FROLL.
Laut Dokumentation geben diese die Behanghöhe von 0.0 - 1.01 aus, was 0% - 101% entspricht.
Du bräuchtest also nur in meinem Beispielscript im else-Pfad die Scriptzeile erweitern oder durch folgende ersetzen.

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.LOGIT").State( (dom.GetObject((dp.Channel()))).Name() #" "# dp.HssType() #";"# (dp.Value() * 100.0) );
Der Ausgabewert wird einfach mit 100 multipliziert.
Warum deine Behanghöhe aber nur bis 0.5 (50%) geht kann ich nicht sagen. Zur Not könnte man den Wert im Script noch verdoppeln.

Takahara
Beiträge: 41
Registriert: 16.12.2018, 11:31
Hat sich bedankt: 13 Mal

Re: HmIP-SPI mit CuxD loggen und mit Highcharts darstellen

Beitrag von Takahara » 07.12.2020, 17:27

Hallo Baxxy,

deine Hilfe ist großartig und hat immer zum Ziel geführt! Vielen Dank schon mal.
Hast du evtl. nochmal einen Tipp, wie ich eine boolsche Variable auch mit CuXD loggen kann?

Das loggen des Duty-Cycles klappt wunderbar. Nur das loggen der boolschen Variable nicht.

object o = dom.GetObject("VariablenName");
dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value());

VG
Takahara

Baxxy
Beiträge: 2524
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 204 Mal
Danksagung erhalten: 392 Mal

Re: HmIP-SPI mit CuxD loggen und mit Highcharts darstellen

Beitrag von Baxxy » 07.12.2020, 17:48

Takahara hat geschrieben:
07.12.2020, 17:27
Hast du evtl. nochmal einen Tipp, wie ich eine boolsche Variable auch mit CuXD loggen kann?
Das geht genauso wie mit deinem HmIP-SMI.
bool muss zu integer werden.

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.LOGIT").State(o.Name()#";"#o.Value().ToInteger() * 10); 
Der Multiplikator am Ende bestimmt wie hoch der "Ausschlag" bei true ist.

Antworten

Zurück zu „CUxD“