Servicemeldungen *allinclusive* Script

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

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

Re: Servicemeldungen *allinclusive* Script

Beitrag von alchy » 16.04.2015, 16:30

Ab den Batteriezuweisungen (ca. Zeile 65) sind Änderungen durchgeführt wurden.

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.

nicolas-eric
Beiträge: 3302
Registriert: 07.01.2015, 23:26
Wohnort: Scheeßel
Hat sich bedankt: 21 Mal
Danksagung erhalten: 11 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von nicolas-eric » 16.04.2015, 16:32

Oh Cool, dann kann ich ja nur den Teil noch den Einstellt Möglichkeiten rüber kopieren, das geht dann viel schneller! 8) :lol:

andyb
Beiträge: 156
Registriert: 16.11.2014, 08:09

Re: Servicemeldungen *allinclusive* Script

Beitrag von andyb » 18.04.2015, 08:46

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?

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

Re: Servicemeldungen *allinclusive* Script

Beitrag von alchy » 18.04.2015, 09:32

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

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.

Frank Loecken
Beiträge: 72
Registriert: 15.11.2014, 15:34

Re: Servicemeldungen *allinclusive* Script

Beitrag von Frank Loecken » 18.04.2015, 10:06

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?

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

Re: Servicemeldungen *allinclusive* Script

Beitrag von alchy » 18.04.2015, 10:20

Wann wird keine Mail geschickt bzw.die Variable nicht gefüllt?
Dein Vorredner hat das Script manuell gestartet, und du?

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.

Frank Loecken
Beiträge: 72
Registriert: 15.11.2014, 15:34

Re: Servicemeldungen *allinclusive* Script

Beitrag von Frank Loecken » 18.04.2015, 10:23

Habe diverse Meldungen ausgelöst (Batterie, Sabotage etc.), werden in der webui auch angezeigt. Aber nicht in der eigenen Systemvariablen Zeichenkette, auch keine Mail.

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

Re: Servicemeldungen *allinclusive* Script

Beitrag von alchy » 18.04.2015, 10:49

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

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.

Frank Loecken
Beiträge: 72
Registriert: 15.11.2014, 15:34

Re: Servicemeldungen *allinclusive* Script

Beitrag von Frank Loecken » 18.04.2015, 16:45

Version 0.7 wieder eingetragen, läuft sofort......

Benutzeravatar
robbi77
Beiträge: 13887
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 746 Mal

Re: Servicemeldungen *allinclusive* Script

Beitrag von robbi77 » 18.04.2015, 20:50

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
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“