Alarmmeldungen auslesen =>Mail versenden.

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

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, 20:14

Ganz auf die Schnelle eine >>neue Version<<

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 » 18.10.2018, 04:30

Vielen Dank .. ich kann aber grad nicht testen .. weil ich durch die Umbennenung von

${sysVarAlarmZone1}

in "Alarmzone" .. keine Alarme mehr bekomme.

Im Notify-Scripst steht:

Code: Alles auswählen

# trigger a HomeMatic alarm message to "Alarmzone 1"
/bin/triggerAlarm.tcl "${UPSNAME}: ${NOTIFYTYPE}"
Jetzt bräuchte ich Deinen Rat wie ich damit umgehe. Den Namen wieder umbennenen .. oder was in der triggerAlarm.tcl was zu machen?

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 » 18.10.2018, 05:23

Wie sieht dein TCL Script aus welches den Alarm auslöst.?

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 » 18.10.2018, 05:48

oh .. ich dachte das wär Standard .. zeige ich heute nachmittag .. bin jetzt außer Reichweite.

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

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von daniello » 18.10.2018, 16:16

Hier isses:

Code: Alles auswählen

#!/bin/tclsh
#
# Simple tclsh script for triggering an alarm message at the first
# ALARMDP system variable with name "Alarmzone 1".
#
# Copyright (c) 2017 Jens Maus <mail@jens-maus.de>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 
#     http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Usage:
# triggerAlarm.tcl <msg>
#

load tclrpc.so
load tclrega.so

if { $argc != 1 } {
  puts "ERROR: script requires exactly one argument"
  return
}

# function to return a list of alarm variables
proc getAlarmZoneVariableID { } {
  set script "
    string sSysVarId;
    foreach (sSysVarId, dom.GetObject(ID_SYSTEM_VARIABLES).EnumUsedIDs()) {
      object oSysVar = dom.GetObject(sSysVarId);
      string sValueType = oSysVar.ValueType();

      if(oSysVar.TypeName() == 'ALARMDP') {
        WriteLine(sSysVarId # ';' # oSysVar.Name());
      }
    }
  "

  if { ![catch {array set result [rega_script $script]}] } then {
    set variables [split $result(STDOUT) "\n"]
    foreach subsection $variables {
      set b [split $subsection ";"]
      set sysVarId [lindex $b 0]
      set sysVarName [string tolower [lindex $b 1]]
      if {[regexp ".*alarmzone.*1" $sysVarName]} {
        return $sysVarId
      }
    }
  }
  return ""
}

proc triggerAlarm { msg } {
  set sysVarAlarmZone1 [getAlarmZoneVariableID]
  if { [string length $sysVarAlarmZone1] > 0 } then {
    set script "
      dom.GetObject('$sysVarAlarmZone1').State(true);
      dom.GetObject('$sysVarAlarmZone1').DPInfo('$msg');
    "

    if { ![catch {array set result [rega_script $script]}] } then {
      return true
    }
  }

  return false
}

set res [triggerAlarm [lindex $argv 0]]

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 » 18.10.2018, 16:43

Wie geil. Nö, das ist keine Standarddatei. Ist wohl was von der Rhaspberrymatic.

Für das TCL Script musst du dann die Alarmvariable wieder umbenennen zu "Alarmzone1" oder "Alarmzone 1" oder von mir aus auch "meine Alarmzone 1" usw. oder auch eine neu anlegen mit dem passenden Namen die dann gesetzt wird.
oder du schreibst die tcl Datei um.

Den Klarnamenbug bist du trotzdem los, da die Variable jetzt mit einem Klarnamen benannt hast.

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 » 18.10.2018, 17:34

ok danke .. ich denke die Alarmzone umzubennen ist nachhaltiger .. nicht dass ein Update das TCL überbügelt und ich such den Fehler :-)

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

Re: Alarmmeldungen auslesen =>Mail versenden.

Beitrag von daniello » 18.10.2018, 17:37

Das mit der Beschreibung klappt leider noch nciht ...

2 x Alarmzone 1 letztmalig am: 18.10.18 17:36 Uhr von unbekannt mit keine Beschreibung

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 » 18.10.2018, 19:24

Sorry, mein Fehler - nun sollte es gehen.
Wenn nicht muss ich wirklich mal selber testen. :?

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 » 19.10.2018, 05:31

Neee .. musste nicht .. steht jetzt alles drin was ich brauche:

2 x Alarmzone 1 ausgelöst letztmalig am: 18.10.18 17:36 Uhr von unbekannt mit qnapups@192.168.178.200:3493: ONLINE

VIELEN DANK!

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“