Email-Addon 1.6.8c

diverse Zusatzsoftware

Moderator: Co-Administratoren

joesch
Beiträge: 789
Registriert: 03.02.2007, 14:57
Hat sich bedankt: 64 Mal
Danksagung erhalten: 2 Mal

Re: Email-Addon 1.6.8c

Beitrag von joesch » 21.04.2022, 16:04

Hallo zusammen!

Ich habe auf meinem System eine Systemvariable "fenster_offen" vom Typ Zahl, die mit einem Skript befüllt wird. In meinem konkreten testfall enthäkt sie den Wert 1.

Im eMailAddon habe ich folgendes TCL-Skript hinterlegt, um den Wert in einer E-Mail verwenden zu können:
tcl.png
Der TCL-Check sagt "ok".
In der E-Mail verwende ich folgenden Inhalt:
mail.png
mail.png (5.63 KiB) 1444 mal betrachtet
Beim Empfänger erscheint in der E-Mail jedoch "Es sind noch null Fenster offen!"
Leider kann ich keinen Fehler finden, warum di Variable nicht befüllt wird. Hat jemand eine Idee, wo der mögliche Fehler liegen könnte?

Vielen Dank und VG, Jörg
System: RaspberryMatic auf Raspberry Pi 3 Model B Rev 1.2 (rpi3) mit RPI-RF-MOD (4.4.22)

schlichi
Beiträge: 385
Registriert: 26.08.2016, 19:26
System: Alternative CCU (auf Basis OCCU)
Wohnort: Erding
Hat sich bedankt: 60 Mal
Danksagung erhalten: 26 Mal

Re: Email-Addon 1.6.8c

Beitrag von schlichi » 21.04.2022, 16:14

Hallo Jörg,

probiers mal so:

Code: Alles auswählen

set v3 [$values(v3)]
Gruß
schlichi
... inzwischen autodidakter, fortgeschrittener Anfänger mit bestandener Einstiegsprüfung für den Expertenmodus Teil 3 (erfahrener Anwender) :roll:

joesch
Beiträge: 789
Registriert: 03.02.2007, 14:57
Hat sich bedankt: 64 Mal
Danksagung erhalten: 2 Mal

Re: Email-Addon 1.6.8c

Beitrag von joesch » 21.04.2022, 18:15

Das führt leider zu einmer Fehlermeldung beim TCL-Check ... Trotzdem Danke!

mademyday
Beiträge: 268
Registriert: 03.10.2014, 12:46
System: CCU
Wohnort: Enzkreis
Hat sich bedankt: 3 Mal
Danksagung erhalten: 43 Mal

Re: Email-Addon 1.6.8c

Beitrag von mademyday » 21.04.2022, 18:25

vielleicht haste noch ein Programm was so heißt wie die Variable?
dom.GetObject(ID_SYSTEM_VARIABLES).Get('fenster_offen').Value() verwenden?

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

Re: Email-Addon 1.6.8c

Beitrag von alchy » 21.04.2022, 18:37

Genau so, es gibt ein weiteres Objekt auf der CCU mit dem Namen. (Muss kein Programm sein)
Das heisst, entweder Namensgleichheit beseitigen oder absoluten Zugriff statt dom.GetObject("XYZ")...

Und bitte Code zukünftig immer als Code posten und nicht als Bildschirmcopy

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.

joesch
Beiträge: 789
Registriert: 03.02.2007, 14:57
Hat sich bedankt: 64 Mal
Danksagung erhalten: 2 Mal

Re: Email-Addon 1.6.8c

Beitrag von joesch » 21.04.2022, 18:58

Geklappt hatte zwischendurch folgendes (auch wenn ich nciht weiß warum ;-) ):

Code: Alles auswählen

set v3 [encoding convertfrom utf-8 $values(v3)]
mademyday hat geschrieben:
21.04.2022, 18:25
dom.GetObject(ID_SYSTEM_VARIABLES).Get('fenster_offen').Value() verwenden?
OK, habe ich angepasst:

Code: Alles auswählen

load tclrega.so
array set values [rega_script {
var v3 = dom.GetObject(ID_SYSTEM_VARIABLES).Get('fenster_offen').Value();
} ]
set v3 $values(v3)
alchy hat geschrieben:
21.04.2022, 18:37
Und bitte Code zukünftig immer als Code posten und nicht als Bildschirmcopy
Geht klar - sorry ...

Vielen Dank und VG, Jörg
System: RaspberryMatic auf Raspberry Pi 3 Model B Rev 1.2 (rpi3) mit RPI-RF-MOD (4.4.22)

joesch
Beiträge: 789
Registriert: 03.02.2007, 14:57
Hat sich bedankt: 64 Mal
Danksagung erhalten: 2 Mal

Re: Email-Addon 1.6.8c

Beitrag von joesch » 26.04.2022, 11:50

Hallo zusammen,

ich möchte via E-Mail-Addon Nachrichten an eine SMS-Gateway versenden. Dazu gibt es im System eine Systemvariable "empfaenger" vom Typ Werteliste, in der die in Frage kommenden Rufnummern im Format "name-nnnnnnn" gespeichert sind.
Der Name soll das Auffinden von Rufnummern in Programmen erleichtern, die zeitabhängig den Wert der Systemvariable auf den für den Zeitabschnitt erforderlichen Empfänger setzen.

Das extrahieren der Rufnummer in einem Programm würde ich wie folgt vornehmen:

Code: Alles auswählen

object sv01 = dom.GetObject("empfaenger");
string eintrag = sv01.ValueList().StrValueByIndex(";",sv01.Value()); ! Eintrag aus Werteliste holen
integer position = eintrag.Find("-"); ! Name und Rufnummer werden mit "-" getrennt (ohne Leerzeichen)
integer laenge = eintrag.Length();
string rufnummer = eintrag.Substr((position+1),(laenge-position-1));
Nun habe ich gelesen, dass im E-Mail-Addon z.B. für den Empfänger nur Werte aus Systemvariablen übernommen werden können. Dies träfe im vorliegenden Fall zu. Ich möchte jedoch nach Möglichkeit vermeiden, für die extrahierte Rufnummer eine separate Systemvariable nutzen zu müssen. Daher hatte ich versucht, das Skript als "TCL-Skript" zu übernehmen. Jedoch erhalte ich hier diverse Syntaxfehlermeldungen. Auch die Variablendefinition scheint nicht möglich zu sein (Meldung: ungültig).

Ich vermute nun, dass sich die Skripte nicht so einfach übertragen lassen ;-) Hat jemand eine Idee, wie ich das extrahieren der Rufnummer wie im Skript beschrieben auch im TCL-Skript vornehmen kann?

Vielen Dank und VG, Jörg
System: RaspberryMatic auf Raspberry Pi 3 Model B Rev 1.2 (rpi3) mit RPI-RF-MOD (4.4.22)

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

Re: Email-Addon 1.6.8c

Beitrag von alchy » 26.04.2022, 20:15

Nehmen wir mal an, du hättest:
eine Systemvariable Typ Werteliste mit Namen: empfaenger
Mit den Werten: "name1-nummer1;name2-nummer2;name3-nummer3;.......

und
einen TCL Reiter:

Code: Alles auswählen

load tclrega.so
array set values [rega_script {

var sTmp=web.webGetValueFromList((dom.GetObject(ID_SYSTEM_VARIABLES).Get("empfaenger")).ValueList(), (dom.GetObject(ID_SYSTEM_VARIABLES).Get("empfaenger")).Value());
var sNummer=sTmp.StrValueByIndex("-",1); 

} ]
set rufnummer $values(sNummer)
und
eine E-Mailvorlage

Code: Alles auswählen

Die Nummer ist: $rufnummer 
Dann sollte es eigentlich funzen das du die Nummer des aktuell aktiven Namens per Mail zugeschickt kriegst.

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.

joesch
Beiträge: 789
Registriert: 03.02.2007, 14:57
Hat sich bedankt: 64 Mal
Danksagung erhalten: 2 Mal

Re: Email-Addon 1.6.8c

Beitrag von joesch » 26.04.2022, 21:22

Perfekt - vielen Dank!
System: RaspberryMatic auf Raspberry Pi 3 Model B Rev 1.2 (rpi3) mit RPI-RF-MOD (4.4.22)

mikk
Beiträge: 25
Registriert: 07.12.2017, 12:44
Danksagung erhalten: 1 Mal

Re: Email-Addon 1.6.8c

Beitrag von mikk » 28.04.2022, 13:30

Hallo zusammen,
wie kann ich denn mit Zahlen Rechnen?

Code: Alles auswählen

load tclrega.so

array set values [rega_script {
var v211 = dom.GetObject("Tasmota211.Total").Value();
var strompreis  = .49;
} ]
set strompreis =.49;
set v211 $values(v211)
set Kostenv211 [expr(v211 * strompreis)]
funktioniert irgendwie nicht,
viele Grüße
Mikk

Antworten

Zurück zu „Sonstige Addons“