Das bezieht sich auf den Gerätename des Sensors.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?
Gerätename mit einer Variable per Email Addon senden
Moderator: Co-Administratoren
Re: Gerätename mit einer Variable per Email Addon senden
-
- 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
Wie sag ichs meinem Kinde?
Gesetzt den Fall, alle deine Programme sind so aufgebaut, wie die beiden von Dir geposteten
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.
Ok, dann so wie hier im Bild:
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.
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:
falls nicht schon eine solche Zeile $argv 1 da ist?
und
in die Emailvorlage 02 das hinzufügen:
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
Gesetzt den Fall, alle deine Programme sind so aufgebaut, wie die beiden von Dir geposteten
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.
Ok, dann so wie hier im Bild:
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#"'");
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.
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]]
und
in die Emailvorlage 02 das hinzufügen:
Code: Alles auswählen
$serviceliste
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.
-
- 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
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.
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.
Alchy
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#"'");
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.
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.
Re: Gerätename mit einer Variable per Email Addon senden
Hallo Alchy,
das sind gut aus, nur welchen Wert muss ich in der Email Vorlage reinschreiben? $vxxx?
Gruss FlyWord
das sind gut aus, nur welchen Wert muss ich in der Email Vorlage reinschreiben? $vxxx?
Gruss FlyWord
-
- 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
Was sieht gut aus, a, b, c ?flyword hat geschrieben:
das sind gut aus, nur welchen Wert muss ich in der Email Vorlage reinschreiben? $vxxx?
Und die Anleitung für die Email Vorlage steht doch alles da
und drüber steht:alchy hat geschrieben: Natürlich auch dabei die Voraussetzungen wie in meinem Post oben.
cuxd.exec / TCL Reiter / Emailvorlage
Alchyalchy hat geschrieben: Du musst du in den TCL Reiter in die erste Zeile das reinkopieren:
falls nicht schon eine solche Zeile $argv 1 da ist?Code: Alles auswählen
set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]
und
in die Emailvorlage 02 das hinzufügen:Code: Alles auswählen
$serviceliste
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.
Re: Gerätename mit einer Variable per Email Addon senden
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
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
Re: Gerätename mit einer Variable per Email Addon senden
Hallo Alchy,
so sieht mein zweites Programm aus mit deinem Script:
und so kommt das Mail.
Wie kriege ich den korrekten Wert °C noch rein
Gruss FlyWord
so sieht mein zweites Programm aus mit deinem Script:
und so kommt das Mail.
Wie kriege ich den korrekten Wert °C noch rein
Gruss FlyWord
-
- 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
Der Auslöser für dein "zweites Programm" ist eine Systemvariable und kein Sensor.
Alchy
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.
Re: Gerätename mit einer Variable per Email Addon senden
Hallo Alchy,
hast du eine Idee wie ich dies hinkriege?
Gruss FlyWord
hast du eine Idee wie ich dies hinkriege?
Gruss FlyWord
-
- 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
vielleicht in dem du die Ausgabe meines Scriptes:
statt sie mittels
zu verschicken.
in eine Variable Zwischenspeichern lässt mittels:
Und
in deinem 2. Programm, was durch die Systemvariable nach 5 Stunden zum Meialversand getriggert wird,
Den Variableninhalt ausliest und verschickst
oder
in dem Du TCL Reiter im Mailaddon diese Variable einliest
mittels ZUSÄTZLICHER Zeilen:
und weiter unten dann im Setbereich
und in der Mailvorlage dann
einträgst.
Der Möglichkeiten gibt es viele.
Ich glaube ich muss die Logik in HM Programmen mal wieder lesen.
Alchy
statt sie mittels
Code: Alles auswählen
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 02"#" '"#slist#"'");
in eine Variable Zwischenspeichern lässt mittels:
Code: Alles auswählen
dom.GetObject("Name deiner Speichervariable").State(slist);
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#"'");
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();
Code: Alles auswählen
...
set v0815[encoding convertfrom utf-8 $values(v0815)]
Code: Alles auswählen
$v0815
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.