Re: Servicemeldungen *allinclusive* Script
Verfasst: 16.04.2015, 16:30
Ab den Batteriezuweisungen (ca. Zeile 65) sind Änderungen durchgeführt wurden.
Alchy
Alchy
Heimautomation mit ELV HomeMatic und FHZ Funk-Hauszentralen
https://homematic-forum.de/forum/
Code: Alles auswählen
string url="http://prowl.weks.net/publicapi/add?apikey=1234567890&application=Haus&event=Tuerklingel&priority=0\&description=es%20klingelt%20an%20der%20Haustuer&timeout=10";
dom.GetObject("CUxD.CUX2801001:3.CMD_EXEC").State("wget -q -O - '"#url#"'");
Code: Alles auswählen
var ACCK = "ja";
var USE_PROWL = "ja";
var PROWL_CUXD_ID = "CUX2801001:3";
var API_KEY = "1234567890";
var ANWENDUNG = "Homematic";
var KATEGORIE = "Servicemeldung";
var TIME_OUT = "10";
var USE_PUSHOVER = "nein";
var PUSH_CUXD_ID = "CUX2801001:2";
var USERKENNUNG = "DEINE EIGENE USERKENNUNG";
var TOKEN = "DEIN EIGENER TOKEN KEY";
var RETRY = "30";
var EXPIRE = "120";
var SOUND = "siren";
var USE_MAIL = "ja";
var MAIL_ID = "03";
var MAIL_CUXD_ID = "CUX2801001:1";
var USE_SYSVAR = "nein";
var SYSVAR_NAME = "Name deiner Speichervariable";
string cr2016 = "HM-RC-4\tHM-RC-4-B\tHM-RC-Sec3\tHM-RC-Sec3-B\tHM-RC-P1\tHM-RC-Key3\tHM-RC-Key3-B\tZEL_STG_RM_HS_4";
string cr2032 = "HM-SCI-3-FM\tHM-PBI-4-FM\tHM-PB-2-WM\tHM-SwI-3-FM\tHM-PBI-4-FM\tHM-Sec-TiS";
string lr44x2 = "HM-Sec-SC\tHM-Sec-SC2\tHM-Sec-SC-2\tHM-Sec-RHS";
string lr6x2 = "HM-CC-RT-DN\tHM-CC-TC\tHM-Dis-TD-T\tHB-UW-Sen-THPL-I\tHM-TC-IT-WM-W-EU\tHM-WDS40-TH-I\tHM-WDS40-TH-I-2\tHM-WDS10-TH-O";
string lr6x3 = "HM-Sec-MDIR\tHM-Sec-MDIR-2\tHM-Sec-SD\tHM-Sec-WDS\tHM-Sec-WDS-2\tHM-Sec-Key\tHM-Sec-Key-S\tHM-Sec-Key-O\tHM-Sen-Wa-Od\tHM-Sen-MDIR\tHM-Sen-MDIR-O\tHM-Sen-MDIR-O-2\tHM-WDS100-C6-O";
string lr6x4 = "HM-ES-TX-WM\tHM-CCU-1";
string lr3x1 = "HM-Sec-Sco\tHM-RC-4-2\tHM-RC-Key4-2\tHM-RC-Sec4-2";
string lr3x2 = "HM-PB-6-WM55\tHM-PBI-2-FM\tHM-RC-8\tHM-Sen-DB-PCB\tHB-UW-Sen-THPL-O\tHM-Sen-EP\tHM-WDS30-T-O\tHM-WDS30-OT2-SM\tHM-TC-IT-WM-W-EU\tHM-Dis-WM55\tHM-PB-2-WM55\tHM-PB-2-WM55-2\tHM-Sen-MDIR-SM";
string lr3x3 = "HM-RC-19\tHM-RC-12\tHM-RC-12-B\tHM-RC-12-W\tHM-PB-4Dis-WM";
string block9 = "HM-LC-Sw1-Ba-PCB\tHM-LC-Sw4-PCB\tHM-MOD-EM-8\tHM-MOD-Re-8\tHM-Sen-RD-O\tHM-OU-CM-PCB\tHM-LC-Sw4-WM";
if (dom.GetObject(41).Value() > dom.GetObject(41).LastValue()) {
object oTmpArray = dom.GetObject(ID_SERVICES);
if(oTmpArray)
{
string sTmp;
string sdev;
string sdesc;
string slist = "";
string styp;
integer prio = 0;
foreach(sTmp, oTmpArray.EnumIDs())
{
object oTmp = dom.GetObject(sTmp);
if (oTmp){
if(oTmp.IsTypeOf(OT_ALARMDP) && (oTmp.AlState() == asOncoming))
{
var trigDP = dom.GetObject(oTmp.AlTriggerDP());
var ch = dom.GetObject(trigDP.Channel());
var sdev = dom.GetObject(ch.Device());
var ival = trigDP.Value();
var sdesc = trigDP.AlDestMapDP().Name().StrValueByIndex(".", 2);
! if (sdesc == "STICKY_UNREACH"){ oTmp.AlReceipt();}
if ((sdesc == "STICKY_UNREACH") && (ACCK == "ja")) { oTmp.AlReceipt();}
}
}
}
foreach(sTmp, oTmpArray.EnumIDs())
{
object oTmp = dom.GetObject(sTmp);
if (oTmp)
{
if(oTmp.IsTypeOf(OT_ALARMDP) && (oTmp.AlState() == asOncoming))
{
var trigDP = dom.GetObject(oTmp.AlTriggerDP());
var ch = dom.GetObject(trigDP.Channel());
var sdev = dom.GetObject(ch.Device());
var ival = trigDP.Value();
var sdesc = trigDP.AlDestMapDP().Name().StrValueByIndex(".", 2);
!Übersetzen der Fehlermeldungen
if (sdesc == "CONFIG_PENDING") {sdesc = "Konfigurationsdaten stehen zur Übertragung an"; prio = -1;}
if (sdesc == "LOWBAT") {sdesc = "Batteriestand niedrig"; prio = 0;}
if (sdesc == "STICKY_UNREACH") {sdesc = "Kommunikation war gestört"; prio = -2;}
if (sdesc == "UNREACH") {sdesc = "Kommunikation zur Zeit gestört"; prio = 0;}
if (sdesc == "DEVICE_IN_BOOTLOADER"){sdesc = "Gerät startet neu"; prio = -2;}
if (sdesc == "UPDATE_PENDING") {sdesc = "Update verfügbar"; prio = -2;}
!Sonderfehler
if (sdesc == "ERROR")
{
if((sdev.HssType()=="HM-Sec-RHS") || (sdev.HssType()=="HM-Sec-SC") || (sdev.HssType()=="HM-Sec-SC-2") || (sdev.HssType()=="HM-Sec-MD") || (sdev.HssType()=="HM-Sec-MDIR") || (sdev.HssType()=="HM-Sec-MDIR-2"))
{
if (ival == 7){sdesc = "Sabotage."; prio = 0;}
}
if ((sdev.HssType()=="HM-Sec-Key") || (sdev.HssType()=="HM-Sec-Key-S") || (sdev.HssType()=="HM-Sec-Key-O"))
{
if (ival == 1){sdesc = "Einkuppeln fehlgeschlagen"; prio = -1;}
if (ival == 2){sdesc = "Motorlauf abgebrochen"; prio = -1;}
}
if (sdev.HssType()=="HM-CC-VD")
{
if (ival == 1){sdesc = "Ventil Antrieb blockiert"; prio = -1;}
if (ival == 2){sdesc = "Ventil nicht montiert"; prio = -1;}
if (ival == 3){sdesc = "Stellbereich zu klein"; prio = -1;}
if (ival == 4){sdesc = "Batteriestand niedrig"; prio = -1;}
}
}
if (sdesc == "FAULT_REPORTING")
{
if (sdev.HssType()=="HM-CC-RT-DN")
{
if (ival == 1) {sdesc = "Ventil blockiert."; prio = -1;}
if (ival == 2) {sdesc = "Einstellbereich Ventil zu gross"; prio = -1;}
if (ival == 3) {sdesc = "Einstellbereich Ventil zu klein"; prio = -1;}
if (ival == 4) {sdesc = "Kommunikationsfehler"; prio = -1;}
if (ival == 6) {sdesc = "Batteriestand niedrig"; prio = -1;}
if (ival == 7) {sdesc = "Fehlstellung Ventil"; prio = -1;}
}
}
if (sdesc == "Batteriestand niedrig")
{
string batlink = "unbekannt";
string index;
foreach (index, cr2016) {if (index == sdev.HssType()) {batlink = "1x leere CR2016";}}
foreach (index, cr2032) {if (index == sdev.HssType()) {batlink = "1x leere CR2032";}}
foreach (index, lr44x2) {if (index == sdev.HssType()) {batlink = "2x leere LR44/AG13";}}
foreach (index, lr6x2) {if (index == sdev.HssType()) {batlink = "2x leere LR6/AA";}}
foreach (index, lr6x3) {if (index == sdev.HssType()) {batlink = "3x leere LR6/AA";}}
foreach (index, lr6x4) {if (index == sdev.HssType()) {batlink = "4x leere LR6/AA";}}
foreach (index, lr3x1) {if (index == sdev.HssType()) {batlink = "1x leere LR3/AAA";}}
foreach (index, lr3x2) {if (index == sdev.HssType()) {batlink = "2x leere LR3/AAA";}}
foreach (index, lr3x3) {if (index == sdev.HssType()) {batlink = "3x leere LR3/AAA";}}
foreach (index, block9) {if (index == sdev.HssType()) {batlink = "9Volt Block leer oder unbestimmt";}}
slist = slist # "\n" # sdev.Name() # " : " # batlink;
}
else
{
slist = slist # "\n" # sdev.Name() # " : " # sdesc;
}
}
}
}
if ( USE_SYSVAR == "ja"){ dom.GetObject(SYSVAR_NAME).State(slist); }
if ( USE_MAIL == "ja"){ dom.GetObject("CUxD."#MAIL_CUXD_ID#".CMD_EXEC").State("/etc/config/addons/email/email "#MAIL_ID#" '"#slist#"'"); }
if ( USE_PUSHOVER == "ja"){ dom.GetObject("CUxD."#PUSH_CUXD_ID#".CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k -d token='"#TOKEN#"' -d user='"#USERKENNUNG#"' -d message='"#slist#"' -d priority='"#prio#"' -d sound='"#SOUND#"' -d retry='"#RETRY#"' -d expire='"#EXPIRE#"' https://api.pushover.net/1/messages.json"); }
if ( USE_PROWL == "ja"){ string url="http://prowl.weks.net/publicapi/add?apikey="#API_KEY#"&application="#ANWENDUNG#"&event="#KATEGORIE#"&priority="#prio#"\&description="#slist#"&timeout="#TIME_OUT#"";
dom.GetObject("CUxD."#PROWL_CUXD_ID#".CMD_EXEC").State("wget -q -O - '"#url#"'");
}
}
}