TCL Aufbau

diverse Zusatzsoftware

Moderator: Co-Administratoren

HmRainer
Beiträge: 6
Registriert: 15.01.2017, 14:20
Wohnort: Sauerland

TCL Aufbau

Beitrag von HmRainer » 16.01.2017, 14:22

Hallo,

kann mir jemand bei dem Aufbau von TCl helfen?
Ich habe bereits einige Skripte aus dem Forum übernommen und einzelne auch für sich umgesetzt. Diese funktionieren auch recht gut. Allerdings ist mir nicht ganz klar wie ich die verschiedenen Skripte hintereinander schreiben muss damit diese der Reihe nach abgearbeitet werden.

Email-Addon ist eingerichtet und sendet die verlangten Mails, die Skripte in den Programmen der WebUi laufen auch hervorragend. Der Haken bei "TCL aktivieren" ist auch gesetzt.

Das erste TCL-Skript im Anhang wird auch anstandslos gesendet, bei dem zweiten Skript bekomme ich nur eine leere Email gesendet.

Habe mich auch schon im Forum recht weit umgesehen und bin auch schon die HM_Skript-Dateien durch, habe aber leider noch nichts gefunden.

Danke in Voraus
Rainer
Dateianhänge
TCL-Skrirt.jpg
Zuletzt geändert von alchy am 17.01.2017, 08:45, insgesamt 1-mal geändert.
Grund: Da dein TCL Reiter zum MailAddon gehört - verschoben ins richtige Forum

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

Re: TCL Aufbau

Beitrag von alchy » 17.01.2017, 08:48

Verschoben hab ich deine Frage schon mal.
Eine Hilfe bei Code ist nicht wirklich mit einer Bildschirmcopy zu geben.
Bitte Kopiere den Code deines TCL Reiters und füge ihn hier in Codetags eingebettet ein.

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.

HmRainer
Beiträge: 6
Registriert: 15.01.2017, 14:20
Wohnort: Sauerland

Re: TCL Aufbau

Beitrag von HmRainer » 17.01.2017, 13:57

Sorry,
mit Foren hab ich es nicht so. Hab mich bisher immer so durchgeschlagen.

Zum Skript:
Habe auch schon diverse Ansätze durchgespielt und die Positionen der Skripte verändert.
Hat aber, wie man sieht, nichts geändert.
Ich habe auch versucht die Skript-Teile direkt in den Programmen mit unter zubringen.
Dieses ist dann wohl an der Skriptsprache gescheitert.

Gruß
Rainer

Code: Alles auswählen

load tclrega.so

array set values [rega_script {
var v11 = dom.GetObject("BidCos-RF.LEQ0800087:1.TEMPERATURE").Value().ToString(2);
var v12 = dom.GetObject("BidCos-RF.LEQ0800087:1.HUMIDITY").Value().ToString(2);
} ]

set v11 $values(v11)
set v12 $values(v12)

! Ende Script


load tclrega.so

array set values [rega_script {
if
(dom.GetObject("BidCos-RF.LEQ1098526:1").Value()  == 'false')
if
(dom.GetObject("BidCos-RF.NEQ0995277:1").Value()  == 'false') {
var v1 = "Feuchtigkeit erkannt";
var Heizung = "Heizung";
	var v3 = "Heizung";
	var Bad = "Bad";
	var v3 = "Bad";
	var v3 = "Taster";

}else {
var v1 = "Wasserstand erkannt"
var Heizung = "Heizung";
	var v3 = "Heizung";
	var Bad = "Bad";
	var v3 = "Bad";
	var v3 = "Taster";
}
} ]

set v1 $values(v1)
set Heizung $values(Heizung)
set Bad $values(Bad)
set v3 $values(v3)


! Ende Script

array set values [rega_script {
if (dom.GetObject("BidCos-RF.LEQ1098526:1").Value()  == 'false') {
	var Heizung = "Heizung";
	var v3 = "Heizung";
}
if (dom.GetObject("BidCos-RF.NEQ0995277:1").Value()  == 'false') {
	var Bad = "Bad";
	var v3 = "Bad";
}

} ]

set Heizung $values(Heizung)
set Bad $values(Bad)
set v3 $values(v3)

! Ende Script

array set values [rega_script {
if
(dom.GetObject("BidCos-RF.LEQ0757764:1.Keller_Eingang").Value() == 'false') {
var v2 = "offen";
}else {
var v2 = "geschlossen";
}
} ]

set v2 $values(v2)

! Ende Script

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

Re: TCL Aufbau

Beitrag von alchy » 17.01.2017, 23:35

Das wird schon. :wink:

Wenn du den TCL Reiter löschst und nur folgenden Code einfügst:

Code: Alles auswählen

load tclrega.so
array set values [rega_script {

var v11 = dom.GetObject("BidCos-RF.LEQ0800087:1.TEMPERATURE").Value().ToString(2);
var v12 = dom.GetObject("BidCos-RF.LEQ0800087:1.HUMIDITY").Value().ToString(2);
} ]
set v11 $values(v11)
set v12 $values(v12)
solltest du die Variablen v11 & v12 in Form von Temperaturwert und Luftfeuchtigkeit benutzen können:
Also in MAilvorlage:

Code: Alles auswählen

Meldung deiner Homematic:
Temperatur: $v11 Grad
Luftfeuchte: $v12 Prozent
Probier es aus, kommt die Mail an wie erwartet? Lass es so.

Gehen wir zum 2. Teil über.
Dein Scriptteil:

Code: Alles auswählen

if
(dom.GetObject("BidCos-RF.LEQ1098526:1").Value()  == 'false')
if
(dom.GetObject("BidCos-RF.NEQ0995277:1").Value()  == 'false') {
var v1 = "Feuchtigkeit erkannt";
var Heizung = "Heizung";
   var v3 = "Heizung";
   var Bad = "Bad";
   var v3 = "Bad";
   var v3 = "Taster";

}else {
var v1 = "Wasserstand erkannt"
var Heizung = "Heizung";
   var v3 = "Heizung";
   var Bad = "Bad";
   var v3 = "Bad";
   var v3 = "Taster";
}
ist ein wenig verworren.
ich kann nur raten, ist dein Gerät mit der Seriennummer NEQ0995277 ein HM Wassermelder HM-Sec-WDS und du willst dessen Zustand per Mail verschicken? Und was ist dein Gerät mit der Seriennummer LEQ1098526?

Das Ganze wird dann irgendwie im Teil 3 wiederholt...


Der letzte Teil des Chaos scheint mit der Seriennummer LEQ0757764 ein Fensterkontakt zu sein? Ist dem so?
Also bitte deine Geräte beschreiben und was du erwartest.

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.

HmRainer
Beiträge: 6
Registriert: 15.01.2017, 14:20
Wohnort: Sauerland

Re: TCL Aufbau

Beitrag von HmRainer » 18.01.2017, 12:00

Hallo Alchy,

der 1. Teil mit der Temperatur und der Luftfeutigkeit funktioniert wie erwartet und programmiert.

Im 2. Teil handelt es sich bei beiden Geräten um HM-Wassermelder HM-Sec-WDS-2.
Hier soll eine Mail verschickt werden wenn einer der Melder Feuchtigkeit oder Wasser erkennt und zusätzlich der auslösende Melder mitgeteilt werden (gerne auch schon im Betreff).
Die "var v3 = Taster" stellt einen virtuellen Taster der CCU dar, mit dem ich das Skript getestet habe. Die Mail wurde auch verschickt, allerdings ohne Inhalt (kein Hinweis auf den Taster). Kann das mit der Reihenfolge der Abfrage zusammenhängen?

Die Mail-Vorlage:

Code: Alles auswählen

Wassermeldung Keller $v1
$Heizung
$Bad
$v3
Nachdem ich die Variablen entfernt habe kan dann immerhin die Mail mit dem Inhalt "Wassermeldung Keller" an.

Der 3. Teil ist die eigendliche Fassung des Skripts aus den ersten Versuchen mit einem Wassermelder (später erweitert mit dem Melder fürs Bad). Hier scheint auch schon ein Fehler drin zu sein.

Der letzte Teil ist tatsächlich ein Festermelder.
Dieser soll mir eben nur die Meldung "offen" über Mail melden. Abhängig von einigen Bedingungen in einem Programm.

Die Teile 3 (mit einem Melder) und 4 haben auch am Anfang funktioniert.
Diese Teile habe ich als TCL jeweils einzeln eingefügt. Hier habe ich am Anfang nicht richtig hingeschaut und bin davon ausgegangen, dass für jede Mail-ID ein eigenständiges TCL-Skript angefügt wird.

Weitere Meldungen sollen noch folgen (Rauchmelder usw.).
Aber alles der Reihe nach.
Erstmal ist mir der Temperatursensor und die Wassermelder wichtig.
Wenn mir klar ist wie ich die verschiedenen Skripte untereinander kriege wird das wirklich was. :)

Rainer

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

Re: TCL Aufbau

Beitrag von alchy » 18.01.2017, 13:54

ich hab ds mal bissel umgestrickt, damit du besser durchsiehst.

TCL Reiter ERSETZEN durch:

Code: Alles auswählen

load tclrega.so

array set values [rega_script {

var sensor_temperatur = dom.GetObject("BidCos-RF.LEQ0800087:1.TEMPERATURE").Value().ToString(2);
var sensor_feuchte = dom.GetObject("BidCos-RF.LEQ0800087:1.HUMIDITY").Value().ToString(2);

if (dom.GetObject("BidCos-RF.NEQ0995277:1.STATE").Value() == '0') { var wassermelder = "trocken"; }
if (dom.GetObject("BidCos-RF.NEQ0995277:1.STATE").Value() == '1') { var wassermelder = "Feuchtigkeit festgestellt";}
if (dom.GetObject("BidCos-RF.NEQ0995277:1.STATE").Value() == '2') { var wassermelder = "Wasserstand festgestellt";}

if (dom.GetObject("BidCos-RF.LEQ0757764:1.STATE").Value()) { var keller_eingang = "offen";}else{ var keller_eingang = "geschlossen";}

} ]

set sensor_temperatur $values(sensor_temperatur)
set sensor_feuchte $values(sensor_feuchte)
set wassermelder $values(wassermelder)
set keller_eingang $values(keller_eingang)
EMailvorlage ERSETZEN durch:

Code: Alles auswählen

Hallo,
Deine Homematic meldet:

Aussentemperatur: $sensor_temperatur
Aussenfeuchte: $sensor_feuchte
Der Wassermelder meldet: $wassermelder
Der Kellereingang ist: $keller_eingang 

Deine Homematic
Probieren, Ergebnis melden, was willst du noch?

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.

HmRainer
Beiträge: 6
Registriert: 15.01.2017, 14:20
Wohnort: Sauerland

Re: TCL Aufbau

Beitrag von HmRainer » 18.01.2017, 14:40

Hallo Alchy,

danke für deine Hilfe, werde ich versuchen und melden.

Wenn ich das richtig sehe, schreibe ich die Bedingungen der Geräte nur untereinander und am Ende trage ich die Variablen ein.
Kann ich mir dann auch verschiedene EMails schicken lassen in denen ich die Variablen abfrage?

Rainer

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

Re: TCL Aufbau

Beitrag von alchy » 18.01.2017, 14:59

Du hast ein grundsätzliches Verständnisproblem. :wink:
Der TCL Reiter wird immer komplett abgearbeitet (sofern angehakt) wenn du eine Mailvorlage verschickst willst. Damit werden die Daten zur Laufzeit aus der CCU ausgelesen und in Variablen geschrieben, die du dann in eine Mailvorlage einfügen kannst oder nicht. ich glaub sogar, wenn du den TCL Reiter NICHT anhakst, wird der TCL Reiter auch abgearbeitet, da war mal was mit einem Fehler.....

Willst du dir z.B. nur eine Meldung mit dem Wassermelderschicken, dann lass den TCL Reiter so wie gepostet und nimm eine andere Mailvorlage z.B. Nr. 10 und schreib in die eben nur rein:

Code: Alles auswählen

Achtung Wasseralarm

Der Wassermelder meldet: $wassermelder

Deine Homematic
Die Auslösung der Mail muss dann im Klickibuntiprogramm der Wassermelder sein, also wenn Wassermelder nass dann Mailvorlage Nr. 10 schicken.

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.

HmRainer
Beiträge: 6
Registriert: 15.01.2017, 14:20
Wohnort: Sauerland

Re: TCL Aufbau

Beitrag von HmRainer » 20.01.2017, 17:00

Danke Alchy für die Hilfe, das Skript wird passend ausgeführt und die Emails kommen mit dem gewünschten Inhalt an.

Als nächstes teste ich die Einbindung meiner Rauchmelder.
Habe hier im Forum einen Beitrag mit Skript gefunden das ich testen werde.
http://homematic-forum.de/forum/viewtop ... =31&t=4619

Gruß
Rainer

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

Re: TCL Aufbau

Beitrag von alchy » 20.01.2017, 17:08

Kannst du machen, jedoch ist dieses Script schon recht stark veraltet.
Die >>string concatenation <<
ist falsch. Es sollten neuere zu finden sein.

Darf ich fragen, was du für Rauchmelder besitzt?

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 „Sonstige Addons“