Letzte Änderung einer Variable auslesen....

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Benutzeravatar
roe1974
Beiträge: 746
Registriert: 17.10.2017, 16:15
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wien
Hat sich bedankt: 52 Mal
Danksagung erhalten: 13 Mal

Letzte Änderung einer Variable auslesen....

Beitrag von roe1974 » 23.10.2017, 16:44

Hallo

Ich würde gerne Uhrzeit/Datum der letzten Änderung einer Variable "Bewegung Eingang" auslesen und in eine andere Variable schreiben "Letzte Bewegung Eingang"
Kann mir wer dabei helfen ? ;-)
DANKE !

lg Richard

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

Re: Letzte Änderung einer Variable auslesen....

Beitrag von alchy » 23.10.2017, 18:38

Ich würde das ja so nicht machen, sondern mit der Bewegungserkennung gleich die entsprechenden Systemvariablen beschreiben :shock:

Code: Alles auswählen

object sysvar = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Bewegung Eingang");
object ssysvar = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Letzte Bewegung Eingang");
if (sysvar && ssysvar){ 
WriteLine("Die Systemvariable: " #sysvar.Name() #" wurde letztmalig : "#sysvar.Timestamp() #" geändert");
ssysvar.State(sysvar.Timestamp());
WriteLine("\t der Wert wurde in " #ssysvar.Name() #" gespeichert");  
}else{
WriteLine("Systemvariable(n) nicht vorhanden");
}
aber das musst du natürlich nicht so tun.
Das Script macht das Gewünschte zu seiner Laufzeit.
Die WriteLines sind zur Erklärung und können auskommentiert oder gelöscht werden.

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
AndiN
Beiträge: 2621
Registriert: 10.06.2015, 08:54
Wohnort: Hennef
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal

Re: Letzte Änderung einer Variable auslesen....

Beitrag von AndiN » 23.10.2017, 18:42

Hallo,

ich bin mir nicht ganz sicher. Daher teste mal.

Code: Alles auswählen

WriteLine(dom.GetObject("SYSTEMVARIABLE").LastTimestamp());
Ist das die Zeit? Die kannst Du ja in Anzeige Sytemvariablen sehen.

Wenn es die Zeit ist, dann wäre der Code

Code: Alles auswählen

dom.GetObject("SYSTEMVARIABLE WO DIE ZEIT REIN SOLL").State(dom.GetObject("SYSTEMVARIABLE").LastTimestamp());
Andi
Zuletzt geändert von alchy am 23.10.2017, 18:44, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Andi (Greenhorn)

Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control
- Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links

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

Re: Letzte Änderung einer Variable auslesen....

Beitrag von alchy » 23.10.2017, 18:49

.LastTimestamp() auf eine Variable gibt (sofern vorhanden) die vorletzte Änderung der Systemvariable aus. Je nach Regaversion wahrscheinlich.
Aber das will der User ja gar nicht.


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
roe1974
Beiträge: 746
Registriert: 17.10.2017, 16:15
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wien
Hat sich bedankt: 52 Mal
Danksagung erhalten: 13 Mal

Re: Letzte Änderung einer Variable auslesen....

Beitrag von roe1974 » 23.10.2017, 20:05

danke !!!
brauche ich, da ich die bewegung über einen POST http bekomme .... von einem nicht HM Gerät ;-)

lg Richard

Benutzeravatar
AndiN
Beiträge: 2621
Registriert: 10.06.2015, 08:54
Wohnort: Hennef
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal

Re: Letzte Änderung einer Variable auslesen....

Beitrag von AndiN » 23.10.2017, 20:17

@Alchy: Mist. Klingt auch verwirrend. Last... den Timestamp hatte ich ausgeblendet. Danke Dir für die Info. Muss gerade mal in meinem System schauen. Da habe ich das vermutlich falsch hinterlegt gehabt, wenn ich damals genauso dachte

Andi
Andi (Greenhorn)

Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control
- Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Letzte Änderung einer Variable auslesen....

Beitrag von Cash » 23.10.2017, 20:52

alchy hat geschrieben:.LastTimestamp() auf eine Variable gibt (sofern vorhanden) die vorletzte Änderung der Systemvariable aus. Je nach Regaversion wahrscheinlich.
Aber das will der User ja gar nicht.


Alchy
Gilt das nur für Systemvariablen? Ich nutze es auf die item-id eines Kanals vom Fensterkontakt. Bei der Pushnachricht lasse ich mir so ausgeben wann das Fenster geöffnet wurde. Dort passte es nach meiner Meinung. Bin aber auch nicht auf der aktuellen Firmware unterwegs. Die Anleitung ist glaube ich auch von Dir.
Zuletzt geändert von Cash am 23.10.2017, 21:15, insgesamt 1-mal geändert.

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

Re: Letzte Änderung einer Variable auslesen....

Beitrag von alchy » 23.10.2017, 21:02

.LastTimestamp() auf den KANAL eines Sensors gibt dir die letzte Änderung aus.
Allerdings gab es darüber auch so manche Diskussion und Hinweise. .LastDPActionTime() ist dafür die bessere Methode.


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.

BadenPower

Re: Letzte Änderung einer Variable auslesen....

Beitrag von BadenPower » 23.10.2017, 21:39

alchy hat geschrieben:Allerdings gab es darüber auch so manche Diskussion und Hinweise. .LastDPActionTime() ist dafür die bessere Methode.
Es ist die richtige Methode.
alchy hat geschrieben:.LastTimestamp() auf den KANAL eines Sensors gibt dir die letzte Änderung aus.
Worauf allerdings kein Verlass ist.

Wird zum Beispiel bei einem Batterieaktor mit .State() als Abfrage auf den Kanal und/oder einen DP zugegriffen dann ändert sich dieser Zeitstempel auch, obwohl kein neuer Status gesetzt wurde.
.

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Letzte Änderung einer Variable auslesen....

Beitrag von Cash » 24.10.2017, 07:06

Dann pass ich es bei mir mal an. Danke.

Antworten

Zurück zu „HomeMatic allgemein“