Email Addon

diverse Zusatzsoftware

Moderator: Co-Administratoren

Shuo
Beiträge: 216
Registriert: 18.09.2014, 23:19
Danksagung erhalten: 6 Mal

Email Addon

Beitrag von Shuo » 06.01.2018, 14:29

Hallo zusammen,

vorab: Ich habe gesucht, aber nichts gefunden.....

Ich möchte meine Zählerstände zu einem bestimmte Datum von der CCU2 per eMail schicken lassen. Mein TCL-Skript sieht folgendermaßen aus:

Code: Alles auswählen

load tclrega.so

array set values [rega_script {

real v1 = dom.GetObject("BidCos-RF.NEQ0861202:1.IEC_ENERGY_COUNTER").Value();
real v2 = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gartenwasser").Value();
real v3 = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gas").Value();

} ]

set v1 $values(v1)
set v2 $values(v2)
set v3 $values(v3)
set date [clock seconds] 
set date [clock format $date -format {%d.%m.%Y  %T}]
und der Emailaufruf:

Code: Alles auswählen

Hallo,

Strom-Zählerstand am $date: $v1
Gartenwasser-Zählerstand am $date: $v2
Gas-Zählerstand am $date: $v3

Ihre 
Homematic
Das Ergebnis sieht so aus:

Code: Alles auswählen

Hallo,

Strom-Zählerstand am 06.01.2018  14:22:11: 16611.419983
Gartenwasser-Zählerstand am 06.01.2018  14:22:11: null
Gas-Zählerstand am 06.01.2018  14:22:11: 0.000000

Ihre 
Homematic
Ich verstehe nicht, warum ich hier einmal einen Wert null und einemal 0.000000 geschickt bekomme. Direkt beim Skript testen als Eingabe:

Code: Alles auswählen

WriteLine(dom.GetObject("BidCos-RF.NEQ0861202:1.IEC_ENERGY_COUNTER").Value());
WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gartenwasser").Value());
WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gas").Value());
Ergibt als Ausgabe die erwarteten Werte.

Code: Alles auswählen

16611.437073
1.270000
1485.200000
Wo ist der Denkfehler?

Wäre toll, wenn mir jemand einen Tipp geben könnte. Ich bin echt am Verzweifeln.

Viele Grüße
Shuo

Shuo
Beiträge: 216
Registriert: 18.09.2014, 23:19
Danksagung erhalten: 6 Mal

Re: Email Addon

Beitrag von Shuo » 07.01.2018, 18:19

niemand eine Idee?? Komme einfach nicht weiter....

robsdobs
Beiträge: 510
Registriert: 08.08.2015, 22:52
Danksagung erhalten: 1 Mal

Re: Email Addon

Beitrag von robsdobs » 07.01.2018, 22:22

Sind deine Systemvariablen vom richtigen Typ?

Versuch sonst mal:

Code: Alles auswählen

load tclrega.so

array set values [rega_script {

real v1 = dom.GetObject("BidCos-RF.NEQ0861202:1.IEC_ENERGY_COUNTER").Value();
var v2 = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gartenwasser").Variable();
var v3 = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gas").Variable();

} ]

set v1 $values(v1)
set v2 $values(v2)
set v3 $values(v3)
set date [clock seconds] 
set date [clock format $date -format {%d.%m.%Y  %T}]
Das gibt den Wert als Zeichenkette zurück.
sehr selten im Forum

Shuo
Beiträge: 216
Registriert: 18.09.2014, 23:19
Danksagung erhalten: 6 Mal

Re: Email Addon

Beitrag von Shuo » 08.01.2018, 21:49

Leider ohne Erfolg.

Code: Alles auswählen

Strom-Zählerstand am 08.01.2018  21:45:29: 16647.118988
Gartenwasser-Zählerstand am 08.01.2018  21:45:29: null
Gas-Zählerstand am 08.01.2018  21:45:29: null
Wie gesagt. Wenn ich das Script teste, funktioniert alles. Real ist der richtige Wert.

robsdobs
Beiträge: 510
Registriert: 08.08.2015, 22:52
Danksagung erhalten: 1 Mal

Re: Email Addon

Beitrag von robsdobs » 09.01.2018, 11:10

Shuo hat geschrieben:Wie gesagt. Wenn ich das Script teste, funktioniert alles. Real ist der richtige Wert.
Eine Vermutung hätte ich noch. Da es unter Script testen funktioniert (auch mal im Log geschaut?), probiere es Bitte noch mal mit einer Systemvariablen ohne Umlaut: "Zählerstand"
sehr selten im Forum

Shuo
Beiträge: 216
Registriert: 18.09.2014, 23:19
Danksagung erhalten: 6 Mal

Re: Email Addon

Beitrag von Shuo » 12.01.2018, 21:17

dachte ich auch und habe eine andere Variable getestet. Auch ohne Umlaute....

Welche log meinst Du?

Shuo
Beiträge: 216
Registriert: 18.09.2014, 23:19
Danksagung erhalten: 6 Mal

Re: Email Addon

Beitrag von Shuo » 21.01.2018, 14:37

niemand noch eine Idee?

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

Re: Email Addon

Beitrag von alchy » 21.01.2018, 18:42

Poste bitte noch mal den aktuellen TCL Reiter & aktuelle Mailvorlage & aktuelle Mailnachricht die ankommt.
Und vor allem das >> Fehlerprotokoll <<


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.

Shuo
Beiträge: 216
Registriert: 18.09.2014, 23:19
Danksagung erhalten: 6 Mal

Re: Email Addon

Beitrag von Shuo » 21.01.2018, 21:38

Hi Alchy,
na klar.

TCL:

Code: Alles auswählen

set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]
load tclrega.so

array set values [rega_script {
real v1 = dom.GetObject("BidCos-RF.NEQ0861202:1.IEC_ENERGY_COUNTER").Value();
real v2 = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gartenwasser").Value();
real v3 = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gas").Value();

} ]

set v1 $values(v1)
set v2 $values(v2)
set v3 $values(v3)
set date [clock seconds] 
set date [clock format $date -format {%d.%m.%Y  %T}]

Mailvorlage:

Code: Alles auswählen

Hallo,

Strom-Zählerstand am $date: $v1
Gartenwasser-Zählerstand am $date: $v2
Gas-Zählerstand am $date: $v3

Ihre 
Homematic
Direkt beim testen:

Code: Alles auswählen

WriteLine(dom.GetObject("BidCos-RF.NEQ0861202:1.IEC_ENERGY_COUNTER").Value());
WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gartenwasser").Value());
WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gas").Value());
Bekomme ich das erwartete Ergebnis:

Code: Alles auswählen

16799.325989
1.270000
1449.000000
Emailnachricht schaut leider so aus:

Code: Alles auswählen

Hallo,

Strom-Zählerstand am 21.01.2018  21:34:26: 16799.360992
Gartenwasser-Zählerstand am 21.01.2018  21:34:26: null
Gas-Zählerstand am 21.01.2018  21:34:26: 0.000000

Ihre 
Homematic

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

Re: Email Addon

Beitrag von alchy » 21.01.2018, 22:04

Überschreib bitte mal nur den TCL Reiter mit:

Code: Alles auswählen

set date [clock format [clock seconds] -format "%d.%m.%Y  %H:%M"]
set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]
load tclrega.so

array set values [rega_script {
real v3 = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gas").Value();
real v2 = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zählerstand Gartenwasser").Value();
real v1 = dom.GetObject("BidCos-RF.NEQ0861202:1.IEC_ENERGY_COUNTER").Value();
} ]

set v1 $values(v1)
set v2 $values(v2)
set v3 $values(v3)
Was steht in der Mail?

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“