2 mal => [lindex $argv 1]] E-Mail Addon

diverse Zusatzsoftware

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Bernd-Joras
Beiträge: 730
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

2 mal => [lindex $argv 1]] E-Mail Addon

Beitrag von Bernd-Joras » 17.12.2020, 22:06

Hallo .... zuerst einmal … Ich habe absolut keine Ahnung vom Skipten und TCL …
Trotzdem möchte ich gerne das eine oder Andere Skipt hier aus dem Forum Nutzen …
Z.B. Alchy´s „Servicemeldungen“ und HMside´s "ausgelöster Rauchmelder" …
In beiden Skipten wird mit [lindex $argv 1]] gearbeitet …
Bei mir dann also im MAIL-TCL …

Code: Alles auswählen

set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]   =>  $Serviceliste
set rmmail [encoding convertfrom utf-8 [lindex $argv 1]]  =>  $rmmail 
nun ja, irgendwie verstehe ich so halbwegs, dass es nun ein Problemchen gibt beim Befüllen der Variablen …oder so …
Hoffentlich bekommt Alchy jetzt keine Krise 😉… *SORRY*

Kann mir bitte einer so richtig für DAU´s sagen was ich am besten wie abändern sollte, damit beide Skipte arbeiten und dann in der Mail nur Ihren eigenen Wert ausfüllen …

Oh Sche….. ich glaub ich mach mich gerade unbeliebt …. „DUCK-WECH“ … Bernd
Zuletzt geändert von alchy am 20.12.2020, 22:16, insgesamt 1-mal geändert.
Grund: verschoben aus HomeMatic Allgemein
2 Standorte mit je RPi3B+ RaspberryMatic 3.73.9.20240130 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

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

Re: 2 mal => [lindex $argv 1]]

Beitrag von alchy » 17.12.2020, 22:41

Unterschiedliche Namen für selbes Argument - nämlich das erste.
Du musst das nur einmal im TCL Reiter deklarieren und somit ist dann jeder Aufruf mit Übergabe als Argument 1 zielführend. Der Name ist dabei irrelevant muss natürlich in der E-Mailvorlage so benutzt werden.

PS: du kannst zum Beispiel auch noch ein 2. Argument übergeben.

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
Bernd-Joras
Beiträge: 730
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: 2 mal => [lindex $argv 1]]

Beitrag von Bernd-Joras » 17.12.2020, 23:29

Alchy, ich lese Deine Worte … aber leider … habe echt keinen blassen Schimmer, wovon Du schreibst …

Es ist jedoch nicht so, dass ich lustlos bin … NEIN ….habe schon etliche Stunden, in Summe bestimmt schon Jahre, damit verbracht zu lesen und dann irgendwie selbst zurecht zu kommen. Das ist echt mühsam uns definitiv nicht effizient … Nun ja Egal …. Mein Problem …

Argument – deklarieren - Übergabe als Argument … das verstehe ich nicht wirklich … Trotzdem … D A N K E

Ich werde es morgen nochmal lesen und weitere Stunden recherchieren …
Irgendwann Fummel ich mir es dann zurecht … 😉
Und dann versuche ich es so zu formulieren und hier festzuhalten, dass es auch ein zweites „Das Brot“ umsetzen kann …

Jetzt aber erst einmal Gute Nacht …
2 Standorte mit je RPi3B+ RaspberryMatic 3.73.9.20240130 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

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

Re: 2 mal => [lindex $argv 1]]

Beitrag von alchy » 18.12.2020, 00:18

Nehmen wir mal an du hast im TCL Reiter des E-Mail Addons so etwas stehen:

Code: Alles auswählen

set argument1 [encoding convertfrom utf-8 [lindex $argv 1]]
und in einer Mailvorlage 01 hast du so etwas stehen:

Code: Alles auswählen

Mit Parameter vom Script übergeben:
$argument1
würden BEIDE Scripte und jeglicher anderer Aufruf funktionieren.
Wichtig ist das du im TCL Reiter UND in der Mailvorlage den gleichen Namen verwendest.
Ob der serviceliste oder rmmail oder wie jetzt argument1 ist , ist dabei egal.

jeder Aufruf/Versand mit Argument an das E-Mailprogramm würde verschickt werden.

Was meine ich damit?

Code: Alles auswählen

dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 01 'Hallo, wollte mich nur mal melden'"); 
Was bedeutet die Zeile?
Aufruf an das Addon email nimm die Mailvorlage 01 und übergib ihr den Argumentstring oder auch Parameter "Hallo, wollte mich nur mal melden" und verschicke diesen.
Da du das alles schön im TCL Reiter und in der Mailvorlage eingerichtet hast, kommt die Mail also an mit dem Text:

Code: Alles auswählen

Mit Parameter vom Script übergeben:
Hallo, wollte mich nur mal melden

Einen Schritt weiter: da wir Schreibfehler vermeiden wollen, ändern wir das Script in:

Code: Alles auswählen

string slist = " Wollt mich nur noch mal melden, diesmal mit Variable";	 
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 01 '"#slist# "'"); 
Nun ist der Inhalt von slist dein Parameter / Argument. Das Resultat ist immer noch das Gleiche.
Auch dieser Text wird dir übermittelt, weil du es oben so eingerichtet hast und zwar ohne das du irgendetwas im TCL Reiter oder in der Vorlage ändern musst.

Nun alles klarer?

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
Bernd-Joras
Beiträge: 730
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: 2 mal => [lindex $argv 1]]

Beitrag von Bernd-Joras » 18.12.2020, 14:41

Hi Alchy … was soll ich sagen DANKE ... jedoch glaube ich, wir reden hier aneinander vorbei …
Ich glaube ich kann das gar nicht verstehen, weil ich an einer ganz anderen Stelle eher alles nicht verstehe …(blockiert bin)
Eigentlich möchte ich das hier nun abbrechen … weil mir das nun irgendwie ober-peinlich ist …

Beide Skipte, einzeln und unabhängig voneinander funktionieren und es wird auch eine Mail mit dem richtigen Text (Inhalt) gesendet.

Jetzt jedoch richte ich beide Skripte bzw. das für beide erforderliche im Mail und TCL ein …

Code: Alles auswählen

TCL => 
set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]
set rmmail [encoding convertfrom utf-8 [lindex $argv 1]]

Code: Alles auswählen

Mail-Vorlage=> 
Serviceliste: $serviceliste
Ausgeloester_Rauchmelder:$rmmail
Das Ergebnis dann, wenn es z.B. eine Servicemail gibt … gleicher Text bei .. $serviceliste und $rmmail

Code: Alles auswählen

Serviceliste:
NEUE Servicemeldung
Schuko-OLIVIA : 
hat Kommunikationsfehler
1 mal seit: 18.12.20 14:21 ( zuletzt: 18.12.20 14:21)


Ausgeloester_Rauchmelder:
NEUE Servicemeldung
Schuko-OLIVIA : 
hat Kommunikationsfehler 
1 mal seit: 18.12.20 14:21 ( zuletzt: 18.12.20 14:21)
Mein (erstes) Verständnissproblem liegt also doch hier => [lindex $argv 1]] ...oder?
Was ist [lindex $argv 1]] Wozu braucht man [lindex $argv 1]]

Nun gut .... Danke ... und alle werden es verstehen wenn wir hier Schluss machen .... soviel Wein / Bier kannst Du ja gar nicht trinken ;-)

Bernd
2 Standorte mit je RPi3B+ RaspberryMatic 3.73.9.20240130 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

Benutzeravatar
Bernd-Joras
Beiträge: 730
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: 2 mal => [lindex $argv 1]]

Beitrag von Bernd-Joras » 19.12.2020, 10:08

Hallo … ich kann´s nicht lassen …

Alchy, kannst Du doch bitte nochmal … gerne auch nach dem Whisky 😉

Jedes Skript für sich, mit einer eigenen Mailvorlage funktioniert.
Entsprechende Mails werden generiert und es steht das richtige und auch der richtige Text für „§rmmail“ bzw. „§serviceliste“ in der entsprechenden Mail.

Nun wollte ich …. „das war blöd, gebe ich zu“… bei beiden Skripten die gleiche Mailvorlage verwenden.
Habe also in einer Mailvorlage „§rmmail“ und „§serviceliste“ eingetragen.

In dieser Mail, ich nenne diese mal STATUS-Mail, wird nun bei, z.B. bei anstehender Servicemeldung, für beide („§rmmail“ und „§serviceliste“) der gleich Text eingetragen.

Wahrscheinlich ist es so nicht gedacht, und jedes Skript sollte eine eigene Mailvorlage nutzen mit nur der eigenen Variablen („§rmmail“ oder „§serviceliste“) versehen werden.

Hintergrund war (ist): Unabhängig zu den einzelnen Mails bei entsprechenden Ereignissen, eine wöchentliche STATUS-Mail zu erzeugen.
In dieser Status Mail habe ich dann alle meine Werte aufgenommen … Temperatur, Alarmmeldungen, Servicemeldungen, Wassermelder-Status, Ping Verbindungen … alle meine irgendwie zusammengesammelten Werte … Das funktioniert soweit auch zufriedenstellend.
ABER …
Nachdem ich nun „auszulösender Rauchmelder“ eingebaut habe, und auch „$rmmail“ in meine eine STATUS-Mail aufgenommen habe, konnte ich sehen, dass bei „$Serviceliste“ und „$rmmail“ der gleiche Text angezeigt wird.


Meine Hoffnung nun ist, dass ich mich im Vorfeld einfach nicht richtig ausgedrückt habe und keiner meine eigentliche Frage (2 Skriptausgaben in einer Mailvorlage) verstanden hat.
Du Alchy, hast nun versucht mir das Programmieren(Skipten) beizubringen (*echt dankbar*) … Ich kann das was Du versuchst mir zu erklären, im Moment nicht mit dem (meinem) Problem verbinden.

Liege ich wieder komplett daneben ? DANKE … Wieder nüchtern … Bernd
2 Standorte mit je RPi3B+ RaspberryMatic 3.73.9.20240130 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

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

Re: 2 mal => [lindex $argv 1]]

Beitrag von alchy » 20.12.2020, 22:00

Bernd-Joras hat geschrieben:
19.12.2020, 10:08
Hallo … ich kann´s nicht lassen …

Alchy, kannst Du doch bitte nochmal … gerne auch nach dem Whisky 😉
nach dem Whisky ist doch immer auch vor dem Whisky. Ist dasselbe wie Urlaub oder Weihnachten. :lol:

Bernd-Joras hat geschrieben:
19.12.2020, 10:08
Nun wollte ich …. „das war blöd, gebe ich zu“… bei beiden Skripten die gleiche Mailvorlage verwenden.
Habe also in einer Mailvorlage „§rmmail“ und „§serviceliste“ eingetragen.

In dieser Mail, ich nenne diese mal STATUS-Mail, wird nun bei, z.B. bei anstehender Servicemeldung, für beide („§rmmail“ und „§serviceliste“) der gleich Text eingetragen.


Wahrscheinlich ist es so nicht gedacht, und jedes Skript sollte eine eigene Mailvorlage nutzen mit nur der eigenen Variablen („§rmmail“ oder „§serviceliste“) versehen werden.
Nochmal. Du brauchst nur einen Eintrag im TCL Reiter welcher die Variable definiert und kannst diese eine Variable für alles benutzen.
(deshalb habe ich explizit oben einen anderen Variablennamen $argument1 benutzt die nichts mit den Scripten zu tun hat)
BEIDE Scripte werden funktionieren und ALLE weiteren Scripte, welche einen Text per Parameter an das Addon übergeben.
Mach doch einfach mal das, was ich dir geschrieben habe. >> Nehmen wir mal an <<

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
Bernd-Joras
Beiträge: 730
Registriert: 26.03.2016, 09:33
Hat sich bedankt: 34 Mal
Danksagung erhalten: 40 Mal

Re: 2 mal => [lindex $argv 1]] E-Mail Addon

Beitrag von Bernd-Joras » 21.12.2020, 15:45

Hallo Alchy …

Habe nun wirklich nochmals (teils verzweifelt) mehrere Stunden gegrübelt, getestet und probiert …
Habe auch in den letzten Stunden diesen Text (gefühlt) hundert Mal geschrieben und wieder gelöscht … 😉

Aber … ich habe nun was im Kopf, was sich schlüssig anfühlt …
Und zwar ist mir nun die prinzipielle funktionsweise und Idee bei diesen Skripten bzw. deren Mailversand klarer geworden…

Einfach ausgedrückt …
Die Skripte generieren bei Auslösung einen Argumentstring der quasi an den TCL Reiter "set Meldung [encoding convertfrom utf-8 [lindex $argv 1]]" übergeben (abgelegt) wird. Weiterhin wird dann auch vom Skript veranlasst, eine bestimmte Mail-Vorlage zu versenden, in welcher dann eben dieser Argumentstring mittels ($Meldung) versendet wird.
Somit werden die Ausgaben, aller so aufgebauten Skripte immer über $Meldung in der entsprechenden Mail-(Vorlage) angezeigt werden.
Wenn auch vollkommen laienhaft ausgedrückt, glaube ich, dieses wolltest Du mich wissen lassen ...


Ich habe gedacht, die Skripte arbeiten an dieser Stelle irgendwie mit individuellen Variablen, die ich dann alle einmal gesammelt untereinander, in einer von mir immer sonntags, mittags um 12:00 versendeten Mail, auflisten kann … Nein! … an dieser Stelle falsch … geht so nicht.

Aber … Dafür kann man ja in den beiden Skripten eine zusätzliche Variable befüllen und diese dann in der s.g. Status Mail versenden.

Das war im Ursprung einmal meine Frage … völlig falsch… weil ich den Sinn und groben Ablauf nicht verstanden habe …
Nun habe ich erstmal alles was ich wollte … funktionierend ... und noch dazu ein wenig mehr verstanden … "schwere Geburt ..."

DANKE … (wann auch immer wir das mit dem Whisky machen ... )
2 Standorte mit je RPi3B+ RaspberryMatic 3.73.9.20240130 / RPI-RF-MOD | Externe USB-Platinen Antenne | 2x LAN_RF_GW | 1x LAN_RS485_GW | ca. 170 Geräte davon 35x IP | ca. 250 Programme |>600 Kanäle | Addons: CUX-Daemon, XML-API, hm_pdetect, E-Mail, CCU-Historian

Antworten

Zurück zu „Sonstige Addons“