Temperatur per Mail schicken

diverse Zusatzsoftware

Moderator: Co-Administratoren

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: Temperatur per Mail schicken

Beitrag von grissli1 » 15.09.2013, 11:22

Hi,

Schaut alles richtig aus. Probieren mal die v4 auf v6 zu ändern und verwende den Aufruf mal so (vielleicht mag es das Leerzeichen im Namen nicht):

Code: Alles auswählen

var v6 = dom.GetObject("BidCos-RF.JEQ0012345:1.TEMPERATURE").Value().ToString(1);
Das funktioniert bei mir ohne Probleme und sollte die Temperatur mit nur einer Dezimalstelle anzeigen. Die Gerätenummer (JEQ.....) an deine anpassen.

Viele Grüße
Chris
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

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

Re: Temperatur per Mail schicken

Beitrag von alchy » 16.09.2013, 00:10

Grundsätzlich stimmt das so, wie du es benutzt.
Ausgabe Null erhält man normalerweise, wenn der Name der Variable sprich WZ Temp nicht stimmt,
weil er z.B. WZ_Temp heisst. Sollte aber bei Dir ja nicht so sein,
weil Du im Skripteditor dieselben Namen verwendest, und es da funzt.
Allerdings benutze ich immer noch das Addon v 1.1

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.

hmmccro
Beiträge: 17
Registriert: 14.09.2013, 14:06

Re: Temperatur per Mail schicken

Beitrag von hmmccro » 16.09.2013, 09:03

nach langem Suchen habe ich den Fehler gefunden...


Ich verwende das Template 10, und da wird anscheinend vorausgesetzt, dass es die Variablen v1-v3 geben muss.
Okay, die hatte ich im TCL Skript ja eingebaut, aber die liefern anscheinend NULL, und dann werden alle Variablen danach
auch mit NULL befüllt - sehr eigenartig.

Auf jeden Fall habe ich jetzt die Variablen v1-v3 im Tcl mit fixen Textkonstanten belegt und jetzt klappts endlich.

Danke für eure Tipps...

rascal
Beiträge: 817
Registriert: 02.10.2012, 23:30

Re: Temperatur per Mail schicken

Beitrag von rascal » 28.09.2013, 09:43

hmmccro hat geschrieben:nach langem Suchen habe ich den Fehler gefunden...


Ich verwende das Template 10, und da wird anscheinend vorausgesetzt, dass es die Variablen v1-v3 geben muss.
Okay, die hatte ich im TCL Skript ja eingebaut, aber die liefern anscheinend NULL, und dann werden alle Variablen danach
auch mit NULL befüllt - sehr eigenartig.

Auf jeden Fall habe ich jetzt die Variablen v1-v3 im Tcl mit fixen Textkonstanten belegt und jetzt klappts endlich.

Danke für eure Tipps...
hallo,
wie meinst du das mit den fixen Textkonstanten, sieht das so aus?
------------
load tclrega.so

array set values [rega_script {
var v1 = "EmailEmpfaenger";
var v2 = "EmailBetreff";
var v3 = "EmailText";
} ]

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

FreyCarsten
Beiträge: 1
Registriert: 03.10.2013, 14:09

Re: Temperatur per Mail schicken

Beitrag von FreyCarsten » 03.10.2013, 14:12

Wenn ich die Einstellungen richtig interpretiert habe, dann müssen zuerst die abzufragenden Variablen abgefragt werden, und erst dann die Variable für den Text gesetzt werden...
Sonnst wird zuerst der Text genneriert und danach erst die Variablen abgefragt, was dann Null zur Folge hat...

Gruß Carsten

Benutzeravatar
papi
Beiträge: 371
Registriert: 18.12.2013, 08:40
Wohnort: Willich, NRW
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: Temperatur per Mail schicken

Beitrag von papi » 22.06.2019, 10:48

Kann mir einer sagen, warum mein Skript zwar funktioniert, aber dennoch im Log ein Runtime-Error erzeugt wird?

Code: Alles auswählen

load tclrega.so

array set values [rega_script {
var v1 = dom.GetObject("BidCos-RF.OEQ1296795:1.TEMPERATURE").Value().ToString(1);
var v2 = dom.GetObject("BidCos-RF.OEQ1296390:1.TEMPERATURE").Value().ToString(1);
var v3 = dom.GetObject("BidCos-RF.OEQ1296756:1.TEMPERATURE").Value().ToString(1);
var v4 = dom.GetObject("Anwesenheit").Value();
var v5 = dom.GetObject("Alarmmeldungen").Value();
var v6 = dom.GetObject("Servicemeldungen").Value();
} ]

set v1 $values(v1)
set v2 $values(v2)
set v3 $values(v3)
set v4 $values(v4)
set v5 $values(v5)
set v6 $values(v6)
Runtime-Error:

Code: Alles auswählen

Jun 22 10:39:35 CCU3 local0.err ReGaHss: ERROR: ScriptRuntimeError:  var v1 = dom.GetObject("BidCos-RF.OEQ1296795:1.TEMPERATURE").Value().ToString(1); var v2 = dom.GetObject("BidCos-RF.OEQ1296390:1.TEMPERATURE").Value().ToString(1); var v3 = dom.GetObject("BidCos-RF.OEQ1296756:1.TEMPERATURE").Value().ToString(1); var v4 = dom.GetObject("Anwesenheit").Value(); var v5 = dom.GetObject("Alarmmeldungen").Value(); var v6 = dom.GetObject("Servicemeldungen").Value();  [ExecError():iseESPexec.cpp:12664]

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

Re: Temperatur per Mail schicken

Beitrag von alchy » 22.06.2019, 22:37

Soll das heißen das du alle 6 Variablenwerte in einer Mailvorlage korrekt übermittelt bekommst und trotzdem den Error?

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
papi
Beiträge: 371
Registriert: 18.12.2013, 08:40
Wohnort: Willich, NRW
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: Temperatur per Mail schicken

Beitrag von papi » 22.06.2019, 22:57

Hm, ich hatte die letzten Drei noch nicht abgefragt, aber jetzt auf Deine Frage hin mal mit eingesetzt: Sie liefern nur "null".
Die ersten Drei hingegen liefern korrekte Werte.

Ich hab´s auch mal mit .ToString(1); versucht, das ändert nichts.
Wo ist der Haken?

Benutzeravatar
papi
Beiträge: 371
Registriert: 18.12.2013, 08:40
Wohnort: Willich, NRW
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: Temperatur per Mail schicken

Beitrag von papi » 22.06.2019, 23:06

OK, eine Lösung wäre, die letzten 3 wegzulassen, dann kommt kein Fehler mehr und alles funktioniert.
Ich weiß eh nicht, ob ich davon jemals Gebrauch machen werde, da mir das mit dem Email-Addon eigentlich zu blöd ist.

Leider kann ich aber zurzeit noch nicht mit CUxD-Mailversender (Cloudmatic) arbeiten, da ich hier einen Proxy davor habe, über den ich nicht hinwegkomme.
Die Mails aus dem Email-Addon werfe ich hingegen in den Exchange-Server ein, der regelt den Rest von alleine.

Oder hast Du ne Idee, wie ich dem Teil beibringe, den Proxy zu nutzen?

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

Re: Temperatur per Mail schicken

Beitrag von alchy » 22.06.2019, 23:23

papi hat geschrieben:
22.06.2019, 22:57
Sie liefern nur "null".
Die ersten Drei hingegen liefern korrekte Werte.

Wo ist der Haken?
Das muss ich erstmal auseinander nehmen.


Wenn v1&v2&v3 korrekte Werte liefern und ab v4 nicht, dann wird es daran liegen, das es das Objekt Anwesenheit auf deiner CCU nicht gibt.
Nun wirst du sagen, und ob es eine Systemvariable gibt welche Anwesenheit heisst und ich sage dir, das sieht nur so aus, du bist vom Klarnamenbug betroffen und musst deine Variablen entsprechend behandeln.

Was gibt

Code: Alles auswählen

WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).EnumUsedNames());
aus?

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“