Seite 4 von 190

Re: Servicemeldungen *allinclusive* Script

Verfasst: 16.04.2015, 16:30
von alchy
Ab den Batteriezuweisungen (ca. Zeile 65) sind Änderungen durchgeführt wurden.

Alchy

Re: Servicemeldungen *allinclusive* Script

Verfasst: 16.04.2015, 16:32
von nicolas-eric
Oh Cool, dann kann ich ja nur den Teil noch den Einstellt Möglichkeiten rüber kopieren, das geht dann viel schneller! 8) :lol:

Re: Servicemeldungen *allinclusive* Script

Verfasst: 18.04.2015, 08:46
von andyb
Hi,
leider klappt es bei mir nicht.
Ich hab das Script 1zu1 kopiert und noch alles im Setup belassen wie es ist.
Sollte er dann nicht die bestehende Servicemeldung Gerätekomunikation gestört bestättigen wenn ich das Script im Executer ausführe?

Re: Servicemeldungen *allinclusive* Script

Verfasst: 18.04.2015, 09:32
von alchy
Nein - das Script wird dir weder eine Meldung schicken, noch wird es anstehende war gestört Kommunikationsstörungen bestätigen, wenn du es im Executer oder bei Script testen unverändert startest. Ebenso nicht, wenn du das Programm manuell ausführst.

Das müsste ich aber auch geschrieben haben.

Nach der Installation und Setup nach Anleitung wird es erst wirklich tätig, wenn sich die Anzahl der anstehenden Service Meldungen erhöht.
Erzeuge also eine zusätzliche Servicemeldung (einfach sind z.B. Sabotage durch Abziehen eines Deckels bei entsprechenden Sensoren) und es sollte funktionieren.

Alchy

Re: Servicemeldungen *allinclusive* Script

Verfasst: 18.04.2015, 10:06
von Frank Loecken
Hallo, auch ich habe die neue Version kopiert und nach Anleitung bearbeitet, es wird aber keine Mail per email-addon gesendet. Version davor lief. In meine Systemvariable wird auch die Meldung nicht mehr angezeigt. Kannst du (alchy) die alte Version nochmal zur Verfügung stellen?

Re: Servicemeldungen *allinclusive* Script

Verfasst: 18.04.2015, 10:20
von alchy
Wann wird keine Mail geschickt bzw.die Variable nicht gefüllt?
Dein Vorredner hat das Script manuell gestartet, und du?

Alchy

Re: Servicemeldungen *allinclusive* Script

Verfasst: 18.04.2015, 10:23
von Frank Loecken
Habe diverse Meldungen ausgelöst (Batterie, Sabotage etc.), werden in der webui auch angezeigt. Aber nicht in der eigenen Systemvariablen Zeichenkette, auch keine Mail.

Re: Servicemeldungen *allinclusive* Script

Verfasst: 18.04.2015, 10:49
von alchy
Ich habe bezüglich der Versendung von Nachrichten usw. nichts geändert in der v0.8.
Wird das Programm bei Auslösen einer Servicemeldung aufgerufen? (Zeitstempel)

Was sagt das log ? (System bzw. Cuxd)

Im Setup mal auf minimal stellen (also Mailversand und dergleichen auf nein) um Schreibfehler auszuschließen.
Was auch leider oft vorkommt, ist ein generelles CCU Problem. Programm mal komplett löschen und neu anlegen. Neustart CCU.

Ich benutze das Script selber auch unverändert und habe es natürlich zig Mal getestet. (ausser Prowl) und da hilft mir dtp immer.

Alchy

Re: Servicemeldungen *allinclusive* Script

Verfasst: 18.04.2015, 16:45
von Frank Loecken
Version 0.7 wieder eingetragen, läuft sofort......

Re: Servicemeldungen *allinclusive* Script

Verfasst: 18.04.2015, 20:50
von robbi77
Hallo,

bei mir kommt keine Prowl Nachricht.
Email funktioniert ohne Probleme.

Dieser Aufruf funktioniert bei mir:

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#"'");
So sieht das Service Script aus:

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#"'");
}
}
}
Wo könnte der Fehler liegen?

Gruß
Roberto