Zustand / Wert per Email

diverse Zusatzsoftware

Moderator: Co-Administratoren

Antworten
danielbierstedt
Beiträge: 26
Registriert: 27.05.2019, 17:04
Hat sich bedankt: 8 Mal

Zustand / Wert per Email

Beitrag von danielbierstedt » 20.03.2020, 10:37

Hallo,
ich weiß, dieses Thema wurde schon hundertmal durchgekaut, aber ich komme trotzdem nicht zurecht. Im Detail geht es hier darum, dass ich verstehen will, wie ich mir eine Systemvariable per Email senden kann. Im konkreten Beispiel geht es um den Helligkeitswert eines Präsenzmelders, da ich bald mal eine Lichtsteuerung damit umsetzen will.

Das Problem hier konkret: wenn ich die Variable "$IllumFlur" in der Email Vorlage stehen habe, passiert nix. Nehme ich sie raus (und lasse den restlichen Text stehen), kommt die Email. Verstehe ich nicht...
CCU3 Illum Programm.PNG
Das setzen der Systemvariable klappt auch ganz gut. Hier Script 1 aus dem Screenshot:

Code: Alles auswählen

var ILLUM_FLUR = dom.GetObject("HmIP-RF.000C18A996B7A6:1.ILLUMINATION").Value();
dom.GetObject("HelligkeitFlurVar").State(ILLUM_FLUR);
Keine Ahnung, ob man das auch in einer Zeile abhandeln könnte / sollte.

Und Script 2 aus dem Screenshot:

Code: Alles auswählen

string stdout;
string stderr;
system.Exec("/etc/config/addons/email/email 09", &stdout, &stderr);
Das TCL Feld der Email:

Code: Alles auswählen

set IllumFlur dom.GetObject("HelligkeitFlurVar").Value();
Und die Email Vorlage (09):

Code: Alles auswählen

Helligkeit im Flur: $IllumFlur
Homematic CCU3
Türkontakte + Sirene = Alarmanlage
Amazon Fire HD mit Home Assistant als Display

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

Re: Zustand / Wert per Email

Beitrag von Baxxy » 20.03.2020, 11:02

danielbierstedt hat geschrieben:
20.03.2020, 10:37
Keine Ahnung, ob man das auch in einer Zeile abhandeln könnte / sollte.
Kann man machen, muss man aber nicht. :wink:

Code: Alles auswählen

dom.GetObject(ID_SYSTEM_VARIABLES).Get("HelligkeitFlurVar").State(datapoints.Get("HmIP-RF.000C18A996B7A6:1.ILLUMINATION").Value());
danielbierstedt hat geschrieben:
20.03.2020, 10:37
Das TCL Feld der Email:
Sieht mir irgendwie unvollständig aus. Hier mal ein Beispiel aus meiner TCL für die SysVar "Aussentemperatur":

Code: Alles auswählen

set atempsysvar [rega (dom.GetObject("Aussentemperatur").Value()).ToString(1) ];
Grüße
Baxxy

danielbierstedt
Beiträge: 26
Registriert: 27.05.2019, 17:04
Hat sich bedankt: 8 Mal

Re: Zustand / Wert per Email

Beitrag von danielbierstedt » 20.03.2020, 13:24

Was ist das "rega"? Steht das für "regex" oder so? Und brauchst du das, weil du toString benutzt?

Wie auch immer, jetzt funktioniert es. Danke!

Code: Alles auswählen

load tclrega.so

set IllumFlur [rega (dom.GetObject("HelligkeitFlurVar").Value())];
Die Email sieht nun so aus:

Code: Alles auswählen

Helligkeit im Flur: 12.400000
Muss ich mal schauen, ob man da die letzten Stellen abschneiden muss. Interessanterweise sieht die Systemvariable im Webinterface besser aus, also auf 2 Nachkommastellen gekürzt.
Homematic CCU3
Türkontakte + Sirene = Alarmanlage
Amazon Fire HD mit Home Assistant als Display

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

Re: Zustand / Wert per Email

Beitrag von Baxxy » 20.03.2020, 13:46

danielbierstedt hat geschrieben:
20.03.2020, 13:24
Was ist das "rega"? Steht das für "regex" oder so? Und brauchst du das, weil du toString benutzt?
Ganz ehrlich... Keine Ahnung. :shock: Ich habe mir die meisten Sachen hier im Forum zusammengesucht, und das was funktioniert reiche ich halt weiter. :wink:
danielbierstedt hat geschrieben:
20.03.2020, 13:24
Muss ich mal schauen, ob man da die letzten Stellen abschneiden muss.
Musst man nicht. Aber sieht halt besser aus. Geht ja auch einfach mit .ToString(x).

Grüße
Baxxy

danielbierstedt
Beiträge: 26
Registriert: 27.05.2019, 17:04
Hat sich bedankt: 8 Mal

Re: Zustand / Wert per Email

Beitrag von danielbierstedt » 20.03.2020, 13:57

Ja, aber mit toString ist es dann halt ein string und keine Zahl mehr. Dann kann ich damit nicht mehr rechnen oder die Zahl mit was anderem vergleichen.

Ist jetzt in der Email aber auch nicht so schlimm.
Homematic CCU3
Türkontakte + Sirene = Alarmanlage
Amazon Fire HD mit Home Assistant als Display

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

Re: Zustand / Wert per Email

Beitrag von alchy » 20.03.2020, 20:36

danielbierstedt hat geschrieben:
20.03.2020, 10:37
Das setzen der Systemvariable klappt auch ganz gut.
Es ist nicht nötig einen Datenpunktwert in eine Systemvariable zu schreiben, um den Wert dann in einer Mail zu verschicken.
Verschick einfach den Datenpunktwert direkt.
danielbierstedt hat geschrieben:
20.03.2020, 13:24
Interessanterweise sieht die Systemvariable im Webinterface besser aus, also auf 2 Nachkommastellen gekürzt
Aber nicht überall. :lol: So z.B. bei Staus und Bedienung.
Wenn du die Variable z.B. zur Startseite hinzufügst wird sie angezeigt wie sie in Echt ist mit 6 Nachkommastellen.
danielbierstedt hat geschrieben:
20.03.2020, 10:37
Das TCL Feld der Email:
Aufpassen. Jede Mailvorlage verwendet den einen TCL Reiter. IN der Mailvorlage kannst du dann alle, einen, keinen oder ein paar der Variablen verwerten.

viewtopic.php?f=27&t=45897&p=459760&hil ... se#p459760
viewtopic.php?f=19&t=43991&p=439203&hil ... so#p439203
viewtopic.php?f=41&t=43292&p=431842&hil ... so#p431842
...

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.

danielbierstedt
Beiträge: 26
Registriert: 27.05.2019, 17:04
Hat sich bedankt: 8 Mal

Re: Zustand / Wert per Email

Beitrag von danielbierstedt » 20.03.2020, 23:51

alchy hat geschrieben:
20.03.2020, 20:36
Es ist nicht nötig einen Datenpunktwert in eine Systemvariable zu schreiben, um den Wert dann in einer Mail zu verschicken.
Verschick einfach den Datenpunktwert direkt.
Würde mich interessieren, aber dann wäre es natürlich cool, wenn du einen Hinweis hinterlässt.

$(dom.GetObject("HelligkeitFlurVar").Value())?

Alles klar, sorry. Ich wusste nicht, dass man einfach Systemvariablen nutzen kann. Ich war der Meinung, dass man diese erst irgendwie "überführen" muss.
Homematic CCU3
Türkontakte + Sirene = Alarmanlage
Amazon Fire HD mit Home Assistant als Display

Antworten

Zurück zu „Sonstige Addons“