Gerätename mit einer Variable per Email Addon senden

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

flyword
Beiträge: 54
Registriert: 16.02.2016, 13:25

Re: Gerätename mit einer Variable per Email Addon senden

Beitrag von flyword » 16.08.2016, 15:39

beziehe. die Temperatur im Raum??? "TIEFKÜHLER" bezieht sich wirklich auf den auszulesenden Raumnamen wo sich der Sensor befindet, oder auf den Gerätenamen des Sensors?
Das bezieht sich auf den Gerätename des Sensors.

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

Re: Gerätename mit einer Variable per Email Addon senden

Beitrag von alchy » 16.08.2016, 19:58

Wie sag ichs meinem Kinde?
Gesetzt den Fall, alle deine Programme sind so aufgebaut, wie die beiden von Dir geposteten 8)
Wenn du jetzt, in jedem deiner Programme (TK, BR1), wo du abhängig von den Sensorwerten die jeweilige Variable auf WAHR setzt, parallel zum Wahr setzen der Variable, in dem Dann Zweig
auch noch dieses Script um die jeweilige Verzögerung versetzt ausführst. :mrgreen:

Ok, dann so wie hier im Bild:
tk1rjme63ixu4.jpg

Code: Alles auswählen

string slist = "";
object dp = dom.GetObject("$src$");
var ch = dom.GetObject(dp.Channel());
var dev = dom.GetObject(ch.Device());
slist = "Lieber Email Empfänger, die Temperatur im Raum "#dev.Name() #" hat den Grenzwert überschritten und ist aktuell auf " #dp.Value().ToString(1) #" °C, bitte kontrolliere die Temperatur vor Ort!";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 02"#" '"#slist#"'"); 
kriegst du deine geforderte Mail.
Natürlich kannst du die Mailvorlagennummer ändern. Sonst ist nichts zu machen. Einfach Copy & Paste in jedes der Programme an die beschriebene Stelle.

Was du noch machen musst, falls nicht schon geschehen. :wink:
cuxd.exec installieren, oder im Script den Mailversand auch system.exec umstellen(lassen)
und
Du musst du in den TCL Reiter in die erste Zeile das reinkopieren:

Code: Alles auswählen

set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]
falls nicht schon eine solche Zeile $argv 1 da ist?
und
in die Emailvorlage 02 das hinzufügen:

Code: Alles auswählen

$serviceliste
Natürlich brauchst du dann die Programme die die Mail verschicken (TK2,BR2) dann nicht mehr.
Grundsätzlich bräuchtest du auch die Systemvariablen (Varuiable_Tiefkühler...) nicht mehr....
Und überhaupt....

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.

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

Re: Gerätename mit einer Variable per Email Addon senden

Beitrag von alchy » 16.08.2016, 20:45

Und du könntest das Ganze theoretisch auch noch anders gestalten, in dem du ALLE Temperatursensoren, von denen du mit der selben Verzögerung eine Mail kriegen willst zusammenfasst in ein Programm.

Code: Alles auswählen

Wenn 
sensor 1 > -10
ODER
sensor 2 < -5
ODER
sensor 3 > 10
...
dann 
Script verzögert um x Stunden 

Code: Alles auswählen

string slist = "";
object dp = dom.GetObject("$src$");
var ch = dom.GetObject(dp.Channel());
var dev = dom.GetObject(ch.Device());
slist = "Lieber Email Empfänger, die Temperatur im Raum "#dev.Name() #" hat den Grenzwert überschritten und ist aktuell auf " #dp.Value().ToString(1) #" °C, bitte kontrolliere die Temperatur vor Ort!";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 02"#" '"#slist#"'"); 
Das Script liest immer den Auslöser des Programmes aus und sendet den Namen und den Wert des Temperatursensors.
Natürlich auch dabei die Voraussetzungen wie in meinem Post oben.
cuxd.exec / TCL Reiter / Emailvorlage

So, und nun bin ich gespannt, ob das nun das ist, was du von Anfang an wolltest. :mrgreen:

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.

flyword
Beiträge: 54
Registriert: 16.02.2016, 13:25

Re: Gerätename mit einer Variable per Email Addon senden

Beitrag von flyword » 17.08.2016, 16:49

Hallo Alchy,

das sind gut aus, nur welchen Wert muss ich in der Email Vorlage reinschreiben? $vxxx?

Gruss FlyWord

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

Re: Gerätename mit einer Variable per Email Addon senden

Beitrag von alchy » 18.08.2016, 07:22

flyword hat geschrieben:
das sind gut aus, nur welchen Wert muss ich in der Email Vorlage reinschreiben? $vxxx?
Was sieht gut aus, a, b, c ?
Und die Anleitung für die Email Vorlage steht doch alles da :shock:
alchy hat geschrieben: Natürlich auch dabei die Voraussetzungen wie in meinem Post oben.
cuxd.exec / TCL Reiter / Emailvorlage
und drüber steht:
alchy hat geschrieben: Du musst du in den TCL Reiter in die erste Zeile das reinkopieren:

Code: Alles auswählen

set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]
falls nicht schon eine solche Zeile $argv 1 da ist?
und
in die Emailvorlage 02 das hinzufügen:

Code: Alles auswählen

$serviceliste
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.

flyword
Beiträge: 54
Registriert: 16.02.2016, 13:25

Re: Gerätename mit einer Variable per Email Addon senden

Beitrag von flyword » 18.08.2016, 07:47

Hallo Alchy,

entschuldige, ich hatte den obigen Post nicht gesehen!

Soweit ist mir alles klar und der Mailversand funktioniert in einem Testprogramm auch aber betreffend der Systemvariablen, wenn ich eine Verzögerung von 5h habe dann verschickt er mir auf Nummer sicher nach 5h ein Mail weil der Wert ja überschritten wurde, ich möchte jedoch nur ein Mail versenden wenn der Wert überschritten wurde und auch 5h lang überschritten bleibt ansonsten soll er mir kein Mail schicken, ich denke aus diesen Gründen brauche ich die Methode mit den Systemvariablen.

Ich teste soeben die Sache durch mit 10min Verzögerungen.

Schöne Grüsse
FlyWord

flyword
Beiträge: 54
Registriert: 16.02.2016, 13:25

Re: Gerätename mit einer Variable per Email Addon senden

Beitrag von flyword » 18.08.2016, 08:10

Hallo Alchy,

so sieht mein zweites Programm aus mit deinem Script:
Bild

und so kommt das Mail.
Bild

Wie kriege ich den korrekten Wert °C noch rein :?

Gruss FlyWord

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

Re: Gerätename mit einer Variable per Email Addon senden

Beitrag von alchy » 18.08.2016, 08:28

Der Auslöser für dein "zweites Programm" ist eine Systemvariable und kein Sensor.

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.

flyword
Beiträge: 54
Registriert: 16.02.2016, 13:25

Re: Gerätename mit einer Variable per Email Addon senden

Beitrag von flyword » 18.08.2016, 08:30

Hallo Alchy,

hast du eine Idee wie ich dies hinkriege?

Gruss FlyWord

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

Re: Gerätename mit einer Variable per Email Addon senden

Beitrag von alchy » 18.08.2016, 11:30

vielleicht in dem du die Ausgabe meines Scriptes:

statt sie mittels

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 02"#" '"#slist#"'");
zu verschicken.

in eine Variable Zwischenspeichern lässt mittels:

Code: Alles auswählen

dom.GetObject("Name deiner Speichervariable").State(slist);
Und
in deinem 2. Programm, was durch die Systemvariable nach 5 Stunden zum Meialversand getriggert wird,
Den Variableninhalt ausliest und verschickst

Code: Alles auswählen

string slist = dom.GetObject("Name deiner Speichervariable").Value();
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 02"#" '"#slist#"'");
oder

in dem Du TCL Reiter im Mailaddon diese Variable einliest
mittels ZUSÄTZLICHER Zeilen:

Code: Alles auswählen

...
var v0815 = dom.GetObject("Name deiner Speichervariable").Value(); 

und weiter unten dann im Setbereich

Code: Alles auswählen

...
set v0815[encoding convertfrom utf-8 $values(v0815)]
und in der Mailvorlage dann

Code: Alles auswählen

$v0815
einträgst.

Der Möglichkeiten gibt es viele.
Ich glaube ich muss die Logik in HM Programmen mal wieder lesen.

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.

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“