TCL Syntax für Email Addon

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

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

Re: TCL Syntax für Email Addon

Beitrag von alchy » 23.10.2012, 11:47

Moment. :!:
Im TCL Reiter füllst Du sozusagen Deine Variablen. (ich fülle da ca 15)
Welche Du dann in welcher Mailvorlage verwendest ist Dir doch überlassen.
In der Mailvorlage 01
Schreibst Du dann
Hallo
der Batteriestatus ist $v1
dein Haus

in der Mailvorlage 02

Hallo
der Lüfterstatus it $v2
dein Haus

oder wie auch immer.
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.

RogueSquadron
Beiträge: 200
Registriert: 15.07.2012, 18:46

Re: TCL Syntax für Email Addon

Beitrag von RogueSquadron » 23.10.2012, 11:58

So, ich hab's jetzt hinbekommen. Mit diesem Skript klappt es:

load tclrega.so

array set values [rega_script {

var v2 = dom.GetObject("Batteriestatus").Variable();
var v3 = dom.GetObject("Luftungswarnung").Variable();

} ]

set BatStatus $values(v2)
set Luftung $values(v3)

Vielen Dank nochmal an alle für eure Hilfe!

Benutzeravatar
metaxa
Beiträge: 649
Registriert: 01.10.2011, 00:03
Wohnort: südliches Wien
Hat sich bedankt: 3 Mal

Re: TCL Syntax für Email Addon

Beitrag von metaxa » 27.10.2012, 01:03

Ich suche & lese & suche & lese & suche & lese .... finde leider nicht die für mich (subjekitv) verständliche Antwort.

Die Anleitung von Alchy funktioniert so weit so gut. Ich habe jedoch meiner Variablen "sv04_Verschluss_FTK_Alle" die Werte "Zu" und "Offen" zugeordnet, bekomme aber nur die Werte "false" und "true" in der Mail übermittelt.

Wie kann ich in diesem Tcl Eintrag meine zugordneten Worte aus-/einlesen?

load tclrega.so
array set values [rega_script {
var mv04 = dom.GetObject("sv04_Verschluss_FTK_Alle").Value();
var mv09 = dom.GetObject("sv09_Garagentor").Value();
} ]
set mv04 $values(mv04)
set mv09 $values(mv09)

Lg aus Wien

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

Re: TCL Syntax für Email Addon

Beitrag von alchy » 27.10.2012, 17:30

Die Anleitung von Alchy funktioniert so weit so gut
Was heisst hier ganz gut? :D
Irgendwo hab ich das auch schon geschrieben, aber hier auf die Schnelle für dich speziell.
So sollte es gehen:

Code: Alles auswählen

load tclrega.so
array set values [rega_script {
if (dom.GetObject("sv04_Verschluss_FTK_Alle").Value() == 'false') {
   var mv04 = "alles zu";
}else {
   var mv04 = "alles offen";
}
if (dom.GetObject("sv09_Garagentor").Value() == 'false') {
   var mv04 = "Garagentor zu";
}else {
   var mv04 = "Garagentor offen";
}

} ]
set mv04 $values(mv04)
set mv09 $values(mv09)
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
metaxa
Beiträge: 649
Registriert: 01.10.2011, 00:03
Wohnort: südliches Wien
Hat sich bedankt: 3 Mal

Re: TCL Syntax für Email Addon

Beitrag von metaxa » 29.10.2012, 23:01

Hallo achy,
kaum schreibe ich meinen ersten Beitrag, schon ins Fettnäpfchen :roll:
Du hast recht, dein Script funktioniert prächtig! Deine spezielle Version ein wenig korrigiert, funktioniert nun vollends zu meiner Zufriedenheit.

Hier mein persönliches Script:

Code: Alles auswählen

load tclrega.so
array set values [rega_script {
if (dom.GetObject("sv04_Verschluss_FTK_Alle").Value() == false) {
var mv04 = "alles zu";
}else {
var mv04 = "alles offen";
}
if (dom.GetObject("sv09_Garagentor").Value() == false) {
var mv09 = "Garagentor zu";
}else {
var mv09 = "Garagentor offen";
}

} ]
set mv04 $values(mv04)
set mv09 $values(mv09
Was habe ich daraus gelernt (Bitte korrigiere mich, wenn ich es falsch interpretiere):

1) Systemvariablen in der CCU angelegt, können verschiedene - selbst definierte - Werte enthalten
2) Diese Werte werden auch auf der Oberfläche WEB GUI verwendet und bei Programmen auswählbar
3) Scripts/TCL greift allerdings eine Ebene (Systemebene) tiefer zu, deswegen stehen die oben (1) selbst definierten Werte nicht zur Verfügung
4) Daher müssen die Systemwerte aus Variablen wie "true", "false" oder "0", "1", "2", usw. in Scripts/TCL über z.B. "IF" Abfragen neu belegt werden.

Jetzt hoffe ich sehr, du zerstörst meine persönlichen Logikfortschritte nicht gleich im Ansatz :D

Lieben Dank für deine Hilfe!
Metaxa aus Wien

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

Re: TCL Syntax für Email Addon

Beitrag von alchy » 30.10.2012, 21:06

metaxa hat geschrieben:Hallo achy,
kaum schreibe ich meinen ersten Beitrag, schon ins Fettnäpfchen :roll:
Quatsch, war doch nur Spass ! daher auch das :D
Aber zu den Fragen.
Du kannst vieles auslesen und in einer Mail verschicken, und ja die IF's sind nur da um die Werte der Datenpunkte lesbar zu übersetzen.
Ich gehe davon aus, das die auf WebUI auch nur "übersetzt" (hab ich aber nicht geprüft)
Wenn in der Mail steht: Der Wassermelder meldet: 3 musst du überlegen, ob die Bude schwimmt. :lol:
Die Temperatur des Sensors ist da schon eher aussagekräftiger.
Hier in diesen Thread wollte ich nur kurz helfen...

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.

Günni
Beiträge: 231
Registriert: 03.10.2013, 00:20
Wohnort: Nordstemmen
Danksagung erhalten: 1 Mal

Re: TCL Syntax für Email Addon

Beitrag von Günni » 22.04.2015, 22:47

Hallo,
in meine TCL fehlt wohl etwas, kann mir jemand sagen was? :roll:

Danke
Gruß Günni


Code: Alles auswählen

load tclrega.so

array set values [rega_script {
var v1 = dom.GetObject("Brenner Verbrauch heute").Value();
var v2 = dom.GetObject("Brenner Betriebsstunden heute").Value();
var v3 = dom.GetObject("Brenner Tankinhalt aktuell").Value();
Write("Hallo Welt!");
} ]

set v1 $values(v1)
set v2 $values(v2)
set v3 $values(v3)

array set result [rega_script { Write("Hallo Günter!"); }]
$result(STDOUT)
# bis hier hin klappt es

# dies wird nicht ausgeführt! fehlt hier zwischen etwas??
set a1 [lindex $argv 1]
Gruß Günni

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

Re: TCL Syntax für Email Addon

Beitrag von alchy » 23.04.2015, 21:38

Standard wäre so etwas:

Code: Alles auswählen

set a1 [lindex $argv 1]
load tclrega.so
array set values [rega_script {
var v1 = dom.GetObject("Brenner Verbrauch heute").Value();
var v2 = dom.GetObject("Brenner Betriebsstunden heute").Value();
var v3 = dom.GetObject("Brenner Tankinhalt aktuell").Value();
} ]
set v1 $values(v1)
set v2 $values(v2)
set v3 $values(v3)
den Rest darfst du mir gern mal erklären, was du im TCL Reiter beim Email Addon erreichen willst.

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.

Günni
Beiträge: 231
Registriert: 03.10.2013, 00:20
Wohnort: Nordstemmen
Danksagung erhalten: 1 Mal

Re: TCL Syntax für Email Addon

Beitrag von Günni » 24.04.2015, 15:27

Danke für die Antwort,
warum muss, set a1 [lindex $argv 1], als erstes in der Tcl stehen, damit sie ausgeführt wird?

hiermit habe ich "Hallo Günter"in eine Email übergeben, anders hatte ich es nicht hinbekommen.
$result(STDOUT)

Code: Alles auswählen

array set result [rega_script { Write("Hallo Günter!"); }]
$result(STDOUT)
Gruß Günni
Gruß Günni

Günni
Beiträge: 231
Registriert: 03.10.2013, 00:20
Wohnort: Nordstemmen
Danksagung erhalten: 1 Mal

Re: TCL Syntax für Email Addon

Beitrag von Günni » 25.04.2015, 00:50

Hallo, so geht es auch nicht,
bekomme eine leere Mail, für meine verbrauch.
gruß Günni
jetzt wird nur ,set a1 [lindex $argv 1], ausgeführt.

Code: Alles auswählen

    
set a1 [lindex $argv 1]
    load tclrega.so
    array set values [rega_script {
    var v1 = dom.GetObject("Brenner Verbrauch heute").Value();
    var v2 = dom.GetObject("Brenner Betriebsstunden heute").Value();
    var v3 = dom.GetObject("Brenner Tankinhalt aktuell").Value();
    } ]
    set v1 $values(v1)
    set v2 $values(v2)
    set v3 $values(v3)
Gruß Günni

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“