Nummer der Objecte/Datenpunkte finden ?

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Antworten
1techone
Beiträge: 213
Registriert: 19.01.2016, 10:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 49 Mal
Danksagung erhalten: 19 Mal

Nummer der Objecte/Datenpunkte finden ?

Beitrag von 1techone » 16.12.2023, 16:25

Hallo,
ich habe vor langer Zeit folgende Auswertung für meinen Strom-Verbrauch/Einspeisung geschrieben.
Es funktioniert einwandfrei, doch nun muss es geändert werden :(
Ich hatte damals ein Hilfsprogramm, in dem die fünfstelligen (Zahlen) aufgelistet wurden.
Doch leider finde ich das Programm nicht mehr und weiss demnach auch nicht was zum Beispiel:
> domGetObject(19029).Value() < bedeutet.
Jeder Datenpunkt hatte dabei eine fortlaufende (fünfstellige?) Nummer.
Kann jemand mir einen Link zu einem Programm schicken, mit dem ich die Datenpunkte finden kann?
Anbei mein Programm, um zu zeigen, was ich meine:

Code: Alles auswählen

! Zeitdifferenz zur letzten Aktualisierung
integer diffTime = (dom.GetObject(19029).Timestamp().ToInteger()) - (dom.GetObject(22807).LastTimestamp().ToInteger());

! Bezug
dom.GetObject ("Bezug_Aktualisierung").State (system.Date("%X"));
real value = dom.GetObject(19029).Value() - dom.GetObject(19082).Value();
object a = dom.GetObject("Bezug_Heute");
a.State(value);

! Einspeisung
dom.GetObject ("Einsp_Aktualisierung").State (system.Date("%X"));
real value = dom.GetObject(19033).Value() - dom.GetObject(20201).State();
object a = dom.GetObject("Einspeisg_Heute");
a.State(value);

! Leistung
if(dom.GetObject ("ZeitDiff").State() > 0)
 {
! Hier kommt der Bezug in Watt
 object d = dom.GetObject ("Bezug_Aktuell");
 real curValue = dom.GetObject(19029).Value();
 real lastValue = dom.GetObject(19029).LastValue();
! real diffValue = ((curValue*1000) - (lastValue*1000));
 real diffValue = (((curValue - lastValue)+0.000006)*100).ToInteger();
! d.State ((3600*diffValue) / dom.GetObject ("ZeitDiff").State());
 d.State (300*diffValue);
 !dom.GetObject(ID_SYSTEM_VARIABLES).Get("TEST_HJN").State(diffValue); ! NUR zum TEST !

! Und nun kommt die momentane Einspeisung in Watt
 object e = dom.GetObject ("Einspeisg_Aktuell");
 real curValue = dom.GetObject(19033).Value();
 real lastValue = dom.GetObject(19033).LastValue();
! real diffValue = ((curValue*1000) - (lastValue*1000));
 real diffValueE = (((curValue - lastValue)+0.000006)*100).ToInteger();
! e.State((3600*diffValueE) / dom.GetObject ("ZeitDiff").State());
 e.State (300*diffValueE);
 dom.GetObject(ID_SYSTEM_VARIABLES).Get("TEST_HJN").State((("Verbr. = ")+(diffValue))+((" , und Einsp. = ")+(diffValueE))); ! NUR zum TEST !
 }

! letzten Zeitstempel setzen
integer LastTimestamp = dom.GetObject(19033).Timestamp().ToInteger();
dom.GetObject(22807).State(LastTimestamp);


object f = dom.GetObject ("ZeitDiff");
f.State (dom.GetObject(19029).Timestamp().ToInteger()) - (dom.GetObject(22807).LastTimestamp().ToInteger());

MichaelN
Beiträge: 9771
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 707 Mal
Danksagung erhalten: 1647 Mal

Re: Nummer der Objecte/Datenpunkte finden ?

Beitrag von MichaelN » 16.12.2023, 16:29

Blacks SDV kann das
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Benutzeravatar
Baxxy
Beiträge: 10982
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 624 Mal
Danksagung erhalten: 2271 Mal

Re: Nummer der Objecte/Datenpunkte finden ?

Beitrag von Baxxy » 16.12.2023, 16:34

Diese Zahlen sind Objekt-ID's.

Schreib das Script neu und nutze stattdessen definierte Objektzugriffe mit Klarnamen, so wie du sie teilweise schon drin hast.

Die ID's sind vermutlich Datenpunkte die man am schnellsten mit einer Suche über die devicelist.cgi des XML-Api AddOns findet.
(Strg+F im Browser und die ID eingeben)

MichaelN
Beiträge: 9771
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 707 Mal
Danksagung erhalten: 1647 Mal

Re: Nummer der Objecte/Datenpunkte finden ?

Beitrag von MichaelN » 16.12.2023, 17:01

Und wenn Du wirklich nur den Namen raus bekommen willst, gebe im Skript-Editor ein:

Code: Alles auswählen

WriteLine (dom.GetObject(42906).Name())  ; 
Die ID Nummer natürlich entsprechend anpassen.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

1techone
Beiträge: 213
Registriert: 19.01.2016, 10:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 49 Mal
Danksagung erhalten: 19 Mal

Re: Objekt-ID's der Objecte/Datenpunkte finden ?

Beitrag von 1techone » 16.12.2023, 17:41

MichaelN hat geschrieben:
16.12.2023, 17:01

Code: Alles auswählen

WriteLine (dom.GetObject(42906).Name())  ; 
Die ID Nummer natürlich entsprechend anpassen.
Super :!: danke :!: hat bestens geklappt :)

Grüße Jürgen

Antworten

Zurück zu „RaspberryMatic“