Alarmmeldungen auslesen =>Mail versenden.

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

mbhomie007
Beiträge: 347
Registriert: 13.02.2018, 19:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 127 Mal
Danksagung erhalten: 20 Mal

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von mbhomie007 » 13.04.2018, 21:27

Vielen Dank für deine schnelle Antwort!

und wie kann man beim Telegram Skript Abschnitt einen eigenen Text noch hinzufügen, also das nicht nur die Alarmmeldung mitgeteilt wird, sondern ein kleines Anschreiben?

Werde die neue Version gleich testen.
Raspberry Pi 3 Model B Plus Rev 1.3 mit RPI-RF-MOD Funkmodul

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

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von alchy » 13.04.2018, 21:46

Eine Möglichkeit wäre bei der Deklaration der Variablen am ANfang des Scriptes einfach slist vorzubesetzen.

Code: Alles auswählen

...
string sTmp;
string slist ="Mein Anschreiben";
....
Das wirkt sich natürlich nicht nur auf die Telegramnachricht aus, sondern auf ALLE Ausgaben.

Natürlich kannst du auch nur im Telegrammabschnitt so was machen in dem du es z.B. so abänderst:

Code: Alles auswählen

! ++++++    SENDEN Telegram mit CUxD und Curl by Alchy +++++
string chatid = "++++++++++";
string botAPI = "++++++++++++";
string message = "mein Anschreiben";
if ( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801001:1.CMD_EXEC")) { dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC").State("curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -d text='"#(message#slist).ToUTF8()#"' -d chat_id="#chatid);}
! +++++++   ENDE Senden Telegram
Alchy
Zuletzt geändert von alchy am 23.12.2019, 22:02, insgesamt 1-mal geändert.
Grund: curl Aufruf angepasst

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.

mbhomie007
Beiträge: 347
Registriert: 13.02.2018, 19:23
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 127 Mal
Danksagung erhalten: 20 Mal

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von mbhomie007 » 14.04.2018, 09:33

Super geil, vielen Dank Alchy!!!
Das Skript läuft :D :D :D
Raspberry Pi 3 Model B Plus Rev 1.3 mit RPI-RF-MOD Funkmodul

daniello
Beiträge: 68
Registriert: 09.12.2017, 08:22

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von daniello » 17.10.2018, 16:49

Hallo allerseits, speziell Alchy!

Ich hab das Script v0.4 grad mal installiert und mit einem bestehenden Alarm getestet.

Heraus kommt in der Mail:

8 x ${sysVarAlarmZone1} letztmalig am: 16.10.18 19:35 Uhr von unbekannt

alarm_screen.png
alarm_screen.png (7.61 KiB) 1911 mal betrachtet

Hab ich was falsch gemacht?

Ist Raspberrymatic.

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

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von alchy » 17.10.2018, 17:03

Du nichts :wink: , daran ist der Klarnamenbug schuld, der ja demnächst umgangen werden soll.
(zumindest wenn du das kryptische ${sysVarAlarmZone1} meinst.

Benenn deine Systemvariable Alarmzone 1 um z.B. in Alarmzone
In dem verlinktem Thread kannst du dann noch rumsmökern und dich um die restlichen Systemvariablen und Gewerke usw. kümmern.

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.

daniello
Beiträge: 68
Registriert: 09.12.2017, 08:22

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von daniello » 17.10.2018, 17:57

Aha .. eine Klarnamenbug .. danke für die Info

Hättest Du noch eine Objekt-ID für ${sysVarPresence}?

Es geht doch nur um die mit einem $ davor? Diese sind OK?

DutyCycle
Mailtext
pcCCUID
Sonnenaufgang
Sonnenuntergang
svEnergyCounter_1720_KEQ0970432:2
svEnergyCounter_5121_KEQ0970444:2
svEnergyCounter_5277_KEQ0221439:2
svEnergyCounter_5340_KEQ0221594:2
svEnergyCounterOldVal_1720
svEnergyCounterOldVal_5121
svEnergyCounterOldVal_5277
svEnergyCounterOldVal_5340
Tageszeit
Tageszeit.intern
Urlaub

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

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von alchy » 17.10.2018, 18:04

daniello hat geschrieben:
17.10.2018, 17:57
Hättest Du noch eine Objekt-ID für ${sysVarPresence}?
Dabei handelt es sich um die Systemvariable: Anwesenheit mit der ISE_ID: 950
daniello hat geschrieben:
17.10.2018, 17:57
Es geht doch nur um die mit einem $ davor? Diese sind OK?
Ja, die sind o.k.

Aber die Gewerke musst du noch checken.
Schuss ins Blaue, es kommt viel Arbeit auf dich zu oder ein kleines Script.

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.

daniello
Beiträge: 68
Registriert: 09.12.2017, 08:22

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von daniello » 17.10.2018, 18:09

okay .. das hier funktioniert shonmal nicht

Code: Alles auswählen

    string svId;
    string oSV;
    string slist ="";
    foreach(svId, dom.GetObject(ID_FUNCTIONS).EnumUsedNames()) {
    var oSV     = dom.GetObject(svId);
    if (oSV){
    var nSV     = oSV.Name();
    var tSV    = oSV.Timestamp();
    slist = slist #"ID: " #svId #" NAME: " #nSV #" Time: "# tSV #"\n";
    }}
    WriteLine(slist);
Aber die Ausgabe von:

Code: Alles auswählen

WriteLine( dom.GetObject(ID_SYSTEM_VARIABLES).EnumNames() );
WriteLine( dom.GetObject(ID_FUNCTIONS).EnumUsedNames() );
WriteLine( dom.GetObject(ID_ROOMS).EnumUsedNames() );
Bringt:

Code: Alles auswählen

Alarmmeldungen	Presence	Servicemeldungen	Alarmzone	DutyCycle	Mailtext	pcCCUID	Sonnenaufgang	Sonnenuntergang	svEnergyCounter_1720_KEQ0970432:2	svEnergyCounter_5121_KEQ0970444:2	svEnergyCounter_5277_KEQ0221439:2	svEnergyCounter_5340_KEQ0221594:2	svEnergyCounterOldVal_1720	svEnergyCounterOldVal_5121	svEnergyCounterOldVal_5277	svEnergyCounterOldVal_5340	Tageszeit	Tageszeit.intern	Urlaub
Batterie betrieben	funcButton	funcCentral	funcClimateControl	funcEnergy	funcEnvironment	funcHeating	funcLight	funcLock	funcSecurity	funcWeather	Rolläden	Technik
Gästezimmer	Kinderzimmer	roomBathroom	roomBedroom	roomGarage	roomGarden	roomHWR	roomKitchen	roomLivingRoom	roomOffice	roomTerrace	Spitzboden
Ist das was böse? Vermutlich müssen die "room"s weg .. und die Begriffe eingedeutscht werden?!
Zuletzt geändert von daniello am 17.10.2018, 18:18, insgesamt 1-mal geändert.

daniello
Beiträge: 68
Registriert: 09.12.2017, 08:22

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von daniello » 17.10.2018, 18:18

Hmm .. eigentlich war ich scharf auf die Beschreibung des Alarms.

Jetzt bekomm ich:

0 x Alarmzone letztmalig am: 16.10.18 19:35 Uhr von unbekannt

Würdest du mir sagen, wie ich das noch in die 0.4 reinbekomme?

VG

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

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von alchy » 17.10.2018, 18:29

daniello hat geschrieben:
17.10.2018, 18:09
okay .. das hier funktioniert shonmal nicht
Jo, da sind auch mehrere Fehler drin.
So sollte es gehen:

Code: Alles auswählen

    string svId;
    string oSV;
    string slist ="";
    foreach(svId, dom.GetObject(ID_FUNCTIONS).EnumUsedIDs()) {
    var oSV     = dom.GetObject(svId);
    if (oSV){
    var nSV     = oSV.Name();
        slist = slist #"ID: " #svId #" NAME: " #nSV  #"\n";
    }}
    WriteLine(slist);
daniello hat geschrieben:
17.10.2018, 18:09
Ist das was böse? Vermutlich müssen die "room"s weg .. und die Begriffe eingedeutscht werden?!
und die room

Also die entsprechenden Gewerke und Räume einfach umbenennen.
Mach es, oder du stolperst früher oder später auch da drüber.
daniello hat geschrieben:
17.10.2018, 18:18
Hmm .. eigentlich war ich scharf auf die Beschreibung des Alarms.
....
Würdest du mir sagen, wie ich das noch in die 0.4 reinbekomme?
Kann ich mal schauen.

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 „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“