Scriptfehler beim Emailversand..

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
Slice
Beiträge: 1192
Registriert: 03.02.2016, 14:44
System: Alternative CCU (auf Basis OCCU)
Wohnort: irgendwo aus Süd BaWü
Hat sich bedankt: 135 Mal
Danksagung erhalten: 82 Mal

Scriptfehler beim Emailversand..

Beitrag von Slice » 15.09.2017, 09:08

Hallo zusammen,

ich habe mir ein Script erstellt das mir um kurz vor 0:00 Uhr die letzten Stromverbrauchswerte per Emailaddon zumailt.
Leider bin ich nicht so erfahren in der Scripterstellung und finde den Fehler nicht und bräuchte daher Eure Hilfe!
Den folgenden Code habe ich mir aus anderen Scripten hier vom Forum zusammen kopiert..

Per Zeitmodul lasse ich um kurz vor 0:00 Uhr folgendes Script triggern:

Code: Alles auswählen

string KumVerbrauchHeute = dom.GetObject("Strom Verbrauch heute").Value().ToString(3);
string KumVerbrauchGestern = dom.GetObject("Strom Verbrauch gestern").Value().ToString(3);
string KumVerbrauchWoche = dom.GetObject("Strom Verbrauch Woche").Value().ToString(3);
string KumVerbrauchletzteWoche = dom.GetObject("Strom Verbrauch letzte Woche").Value().ToString(3);
string KumVerbrauchMonat = dom.GetObject("Strom Verbrauch Monat").Value().ToString(3);
string KumVerbrauchletzterMonat = dom.GetObject("Strom Verbrauch letzter Monat").Value().ToString(3);
string KumVerbrauchJahr = dom.GetObject("Strom Verbrauch Kalenderjahr").Value().ToString(3);
string KumZaehlerstand = dom.GetObject("Strom Zaehlerstand").Value().ToString(3);
! Mail-Text zusammensetzen
string Nachricht;
string sDate = system.Date("%d.%m.%Y");
Nachricht = " \r\n anbei die letzten Stromverbrauchswerte vom Stand " # sDate # ": \r\n";
Nachricht = Nachricht # "Stromverbrauch heute: " # KumVerbrauchHeute # " kWh, Stromverbrauch gestern: " # KumVerbrauchGestern # " kWh. \r\n";
Nachricht = Nachricht # "Stromverbrauch Woche: " # KumVerbrauchWoche # " kWh, Stromverbrauch letzte Woche: " # KumVerbrauchletzteWoche # " kWh. \r\n";
Nachricht = Nachricht # "Stromverbrauch Monat: " # KumVerbrauchMonat # " kWh, Stromverbrauch letzter Monat: " # KumVerbrauchletzterMonat # " kWh. \r\n";
Nachricht = Nachricht # "Stromverbrauch Kalenderjahr: " # KumVerbrauchJahr # " kWh. \r\n";
Nachricht = Nachricht # "Der Stromzaehlerstand betraegt aktuell: " # KumZaehlerstand # " kWh. ";
! Nachricht in Variable füllen und E-Mail absenden
dom.GetObject("Mailtext").State(Nachricht);
! Nachricht per CUxD senden
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("/etc/config/addons/email/email 10");
Laut Syslog erhalte ich folgende Fehler:

Code: Alles auswählen

Error: IseESP::SyntaxError= Error 1 at row 16 col 75 near ^ # " kWh. \r\n";\0x0ANachricht = Nachricht # "Der Stromzaehlerstand betraegt aktuell\0x0D\0x0A [../Platform/DOM/iseESP.cpp (1067)]

Code: Alles auswählen

Error: ParseProgram: SyntaxError= # " kWh. \r\n";\0x0ANachricht = Nachricht # "Der Stromzaehlerstand betraegt aktuell: " # KumZaehlerstand # " kWh. ";\0x0A! Nachricht in Variable füllen und E-Mail absenden\0x0Adom.GetObject("Mailtext")
Allerdings erhalte ich das Email mit folgendem Inhalt:

Code: Alles auswählen

Hallo Bewohner,

anbei die letzten Stromverbrauchswerte vom Stand 15.09.2017: 
Stromverbrauch heute: 5.253 kWh, Stromverbrauch gestern: 16.777 kWh. 
Stromverbrauch Woche: 73.320 kWh, Stromverbrauch letzte Woche: 117.161 kWh. 
Stromverbrauch Monat: 229.510 kWh, Stromverbrauch letzter Monat: 354.165 kWh. 
Stromverbrauch Kalenderjahr: 583.675 kWh. 
Der Stromzaehlerstand betraegt aktuell: 9535.675 kWh.

MfG,
Ihre CCU2
Der Emailversand funktioniert prinzipiell!
Ich lasse mir auch per Script andere Verbrauchswerte per Email zu senden und erhalte dort keinen Fehler.

Ich verwende YAHM in der V.2.27.8 (siehe Signatur) und habe keine Rega Beta am laufen.

Vielleicht kann mir jemand weiter helfen?

Danke und Grüße,
Slice
----------------------------------------------------------------------------------------
Raspi3B+ Bullseye mit HB-RF-ETH und RPI-RF-MOD auf piVCCU-FW 3.73.9 / Addons: CuxD v2.11 - E-Mail v1.7.6 - Patcher v1.0.0 - Philips Hue v3.2.5 - Programme drucken v2.6 - Scriptparser v1.11 - XML-API v2.3
Geräte: 141 / Kanäle: 791 / Datenpunkte: 6080 / SysVars: 275 / Programme: 161 / Regadom IDs: 14010 / 48 CUxD-Kanäle in 3 CUxD-Geräten
Intel NUC i3-5010U @ 2,1 GHz mit 16 GB RAM & 512 GB SSD für Proxmox mit ioBroker VM und CCU-Historian/InfluxDB/Grafana VM
----------------------------------------------------------------------------------------
Projekte im Forum: HomeHub v4.1 / Fritzbox-Anruferliste für HomeHub
----------------------------------------------------------------------------------------

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

Re: Scriptfehler beim Emailversand..

Beitrag von alchy » 15.09.2017, 10:09

Der Weg den du da beschreitest ist *IMHO* relativ mühsam und fehlerträchtig.
Du verwendest ein Script welches dir Werte in einen String in eine Systemvariable Mailtext schreibt und lt. meiner Glaskugel liest du dann diese Systemvariable im TCL Reiter des Mailaddons wieder aus um den Inhalt zu verschicken.

Den Umweg über die Systemvariable könntest du dir sparen, wenn du direkt im Script den String versenden würdest, natürlich nur, wenn du diese nicht brauchst.
Das ganze Script könntest du verlagern in den TCL Reiter des Mailaddons und würdest so der Gefahr aus dem Weg gehen mit Steuerzeichen in Strings in der Klickibunti in Probleme zu rauschen.
Einmal dort verewigt kannst du den Inhalt in jede beliebige Mailvorlage versenden.

Aber das nur am Rande.

So wie du das Script hier rein kopiert hast, sehe ich im Schnelldurchgang erstmal keinen Fehler. Eine Möglichkeit wäre ein verstecktes Steuerzeichen z.B. am Zeilenende durch einen nicht geeigneten Editor.
Was mich wundert, ist das die Mail trotzdem raus geht.

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.

Slice
Beiträge: 1192
Registriert: 03.02.2016, 14:44
System: Alternative CCU (auf Basis OCCU)
Wohnort: irgendwo aus Süd BaWü
Hat sich bedankt: 135 Mal
Danksagung erhalten: 82 Mal

Re: Scriptfehler beim Emailversand..

Beitrag von Slice » 15.09.2017, 10:18

Hallo alchy,

das Email geht nur im Script testen Fenster raus, wenn ich das Programm von Hand triggere, geht keine Email raus.

Ja, ich arbeite hier mit TCL, was ich vom Batteriescript abgekupfert habe:

Code: Alles auswählen

set serviceliste [encoding convertfrom utf-8 [lindex $argv 1]]

load tclrega.so
array set values [rega_script {
var emailtext_inhalt = dom.GetObject("Mailtext").Value();
}]
set emailtext [encoding convertfrom utf-8 $values(emailtext_inhalt)]
In der Emailvorlage habe ich dann nur noch drin stehen:
Hallo Bewohner,

$emailtext

MfG,
Ihre CCU2

Hmm, bevor ich das dann auf TCL umstelle, ich weiß was Du meinst, bin aber nicht besonders fit was das angeht, lösche ich das Programm nochmal und legs neu an.
Notepad+ zeigt mir keine verstecken Steuerzeichen an.. Komisch..

Grüße,
Slice
----------------------------------------------------------------------------------------
Raspi3B+ Bullseye mit HB-RF-ETH und RPI-RF-MOD auf piVCCU-FW 3.73.9 / Addons: CuxD v2.11 - E-Mail v1.7.6 - Patcher v1.0.0 - Philips Hue v3.2.5 - Programme drucken v2.6 - Scriptparser v1.11 - XML-API v2.3
Geräte: 141 / Kanäle: 791 / Datenpunkte: 6080 / SysVars: 275 / Programme: 161 / Regadom IDs: 14010 / 48 CUxD-Kanäle in 3 CUxD-Geräten
Intel NUC i3-5010U @ 2,1 GHz mit 16 GB RAM & 512 GB SSD für Proxmox mit ioBroker VM und CCU-Historian/InfluxDB/Grafana VM
----------------------------------------------------------------------------------------
Projekte im Forum: HomeHub v4.1 / Fritzbox-Anruferliste für HomeHub
----------------------------------------------------------------------------------------

Slice
Beiträge: 1192
Registriert: 03.02.2016, 14:44
System: Alternative CCU (auf Basis OCCU)
Wohnort: irgendwo aus Süd BaWü
Hat sich bedankt: 135 Mal
Danksagung erhalten: 82 Mal

Re: Scriptfehler beim Emailversand..

Beitrag von Slice » 15.09.2017, 13:14

Update:
Ich habe jetzt mal meinen Raspi3 mit YAHM neu gestartet und siehe da auf einmal geht das Programm und es kommt keine Fehlermeldung mehr.
Ich vermute daher da ich noch keine Beta der Rega einsetze, das hier das 200er Variablenproblem greift?!
In der Vergangenheit hatte ich einen ähnlichen Fehler schon mal beim anlegen von Programmen. ist mir dann noch eingefallen.

Der Variablencounter zeigt mir folgendes nun nach einem Reboot an:
-----Auswertung:-----
durchsuchte Programme: 74
gefundene Skripte: 39
gefundene Deklarationen: 492
gefundene Variablenamen: 263
gefundene bedenkliche Variablenamen: 0

Könnte das sein?

Grüße,
Slice
----------------------------------------------------------------------------------------
Raspi3B+ Bullseye mit HB-RF-ETH und RPI-RF-MOD auf piVCCU-FW 3.73.9 / Addons: CuxD v2.11 - E-Mail v1.7.6 - Patcher v1.0.0 - Philips Hue v3.2.5 - Programme drucken v2.6 - Scriptparser v1.11 - XML-API v2.3
Geräte: 141 / Kanäle: 791 / Datenpunkte: 6080 / SysVars: 275 / Programme: 161 / Regadom IDs: 14010 / 48 CUxD-Kanäle in 3 CUxD-Geräten
Intel NUC i3-5010U @ 2,1 GHz mit 16 GB RAM & 512 GB SSD für Proxmox mit ioBroker VM und CCU-Historian/InfluxDB/Grafana VM
----------------------------------------------------------------------------------------
Projekte im Forum: HomeHub v4.1 / Fritzbox-Anruferliste für HomeHub
----------------------------------------------------------------------------------------

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Scriptfehler beim Emailversand..

Beitrag von Cash » 15.09.2017, 13:31

Richtig mit Deiner Firmware ist der 200 Variablen Bug noch vorhanden. Erst ab der 2.29.xx wurde der doch gefixt ob generell oder nur in der Community-Version weiß ich aber nicht...

Slice
Beiträge: 1192
Registriert: 03.02.2016, 14:44
System: Alternative CCU (auf Basis OCCU)
Wohnort: irgendwo aus Süd BaWü
Hat sich bedankt: 135 Mal
Danksagung erhalten: 82 Mal

Re: Scriptfehler beim Emailversand..

Beitrag von Slice » 15.09.2017, 21:55

Ja, soweit weiß ich das auch.
Nur ist es mir gerade echt zu stressig YAHM mit der neuen Version unter Stretch zu installieren um das 200er Problem zu lösen.
Soweit ich die Beiträge dort verfolge, scheint das eine echte Herausforderung zu sein das zum laufen zu kriegen.. :roll:
Ich schaue jetzt einfach mal wie lange das bei mir noch so läuft..

Grüße,
Slice
----------------------------------------------------------------------------------------
Raspi3B+ Bullseye mit HB-RF-ETH und RPI-RF-MOD auf piVCCU-FW 3.73.9 / Addons: CuxD v2.11 - E-Mail v1.7.6 - Patcher v1.0.0 - Philips Hue v3.2.5 - Programme drucken v2.6 - Scriptparser v1.11 - XML-API v2.3
Geräte: 141 / Kanäle: 791 / Datenpunkte: 6080 / SysVars: 275 / Programme: 161 / Regadom IDs: 14010 / 48 CUxD-Kanäle in 3 CUxD-Geräten
Intel NUC i3-5010U @ 2,1 GHz mit 16 GB RAM & 512 GB SSD für Proxmox mit ioBroker VM und CCU-Historian/InfluxDB/Grafana VM
----------------------------------------------------------------------------------------
Projekte im Forum: HomeHub v4.1 / Fritzbox-Anruferliste für HomeHub
----------------------------------------------------------------------------------------

Antworten

Zurück zu „HomeMatic allgemein“