Servicemeldungen SV v3.15 (stable)

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

Moderator: Co-Administratoren

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Servicemeldungen SV v3.15 (stable)

Beitrag von blackhole » 28.06.2016, 15:04

Hallo zusammen,

ich stelle hiermit eine stark reduzierte, modifizierte "Light-Version" von alchys "Servicemeldungen *allinclusive*" unter dem Namen "Servicemeldungen SV" ("Stripped Version") als Bereicherung zur freien Verfügung.


Motivation

Da ich in meinen WebUI-Programmen/Skripten die "Hauptfunktion" und "Meldungen verschicken" strikt trenne ("Meldungsprogramme" reagieren immer auf eine Systemvariable, die das "Hauptprogramm" befüllt), habe ich das Skript "Servicemeldungen *allinclusive*" meiner Systematik entsprechend modifiziert.

Es wurden primär die Meldungsvarianten (Push, Mail) entfernt, ein Debug-Modus hinzugefügt, mein "Coding-Style" (Einrückungen, Variablenbezeichnungen etc.) angewandt und kleinere textliche Veränderungen vorgenommen. Hierdurch ergibt sich ein anderer Ansatz: Ca. 50% des Originalcodes sind entfernt worden, es ist kein "all inclusive Skript" mehr. Eine Halbierung der benötigten Variablen, aufgeräumter Code und entfernte Doppeldeklarationen sind noch ein paar Nebeneffekte der Reduzierung.

Servicemeldungen SV kann für Anwender, die ebenfalls "Hauptprogramm" und "Meldungen verschicken" separiert haben, interessant sein, aber auch für Benutzer, die lediglich das Quittieren von Meldungen und/oder die Systemvariable von "Servicemeldungen *allinclusive*" benutzt haben.

Grund für die Veröffentlichung ist der (OSS-)Gedanke, dass andere von meiner Arbeit profitieren können, wie ich von der Arbeit Dritter profitiert habe.


Skript

Code: Alles auswählen

! Servicemeldungen SV v3.15
!------------------------------------------------------------------------------------------------
! Servicemeldungen werden ausgelesen und in eine Systemvariable geschrieben. Kurzanleitung:
! Neues Programm in der CCU wie folgt erstellen. WENN Systemzustand: Servicemeldungen im
! Wertebereich größer oder gleich als 0 bei Aktualisierung auslösen, DANN mit einer Sekunde 
! Verzögerung, "Skript" auswählen, das Skript einfügen, Voreinstellungen vornehmen und mit "OK" 
! bestätigen.
!------------------------------------------------------------------------------------------------
! Servicemeldungen bei Kommunikationsstörungen "war gestört" wird durch das Script bestätigt
! (voreinstellbar). Im Falle einer Batterieleermeldung, wird der Gerätename, der Batterietyp
! sowie die Anzahl der Batterien, sonst bei einer anderen Servicemeldung wird der Gerätename
! und der Fehler (übersetzt) in Variable gespeichert. Bitte noch "unbekannte" Geräte mitteilen.
!------------------------------------------------------------------------------------------------
! Servicemeldungen SV wurde modifiziert von blackhole. Das Skript basiert auf:
! Servicemeldungen *allinclusive* von Alchy
!------------------------------------------------------------------------------------------------

!------------------------------------------------------------------------------------------------
! Voreinstellungen hier vornehmen
!------------------------------------------------------------------------------------------------

!Nötige CCU-Systemvariable (Zeichenkette)
!Die in der CCU anzulegende Systemvariable steht nachfolgend in Anführungszeichen.
var sysvarname = "Name der Systemvariable";

!Servicemeldungen "Kommunikation war gestört" automatisch bestätigen?
!Gültige Werte sind "ja" und "nein" (Default: ja)
var autoconfirm = "ja";

!Trennungszeichen zwischen Meldungen
!Gültige Werte sind beliebige Zeichen. Zeilenumbruch mit "\n". (Default: " ")
string divider = " ";

!HM-Geräte, deren Systemmeldungen ignoriert werden sollen
!Gültige Werte sind HM-Seriennummern (Default: XEQ012345678 YEQ012345678 ZEQ012345678)
var blockdevices = "XEQ012345678 YEQ012345678 ZEQ012345678";

!Debug-Modus ein-/ausschalten
!Ausgabe nur im Bereich "Skript testen" der CCU, Servicemeldungen werden nicht bestätigt.
!Gültige Werte sind "ein" und "aus" (Default: aus)
string debug = "aus";

!--------------------------------------------------------------------------------------------------
! Ab hier muss man nichts mehr beachten
!--------------------------------------------------------------------------------------------------

string cr2016 = "HM-RC-4,HM-RC-4-B,HM-RC-Key3,HM-RC-Key3-B,HM-RC-P1,HM-RC-Sec3,HM-RC-Sec3-B,ZEL STG RM HS 4";
string cr2032 = "HM-PB-2-WM,HM-PB-4-WM,HM-PBI-4-FM,HM-SCI-3-FM,HM-Sec-TiS,HM-SwI-3-FM,HmIP-FCI1,HmIP-DLS";
string lr14x2 = "HM-Sec-Sir-WM,HM-OU-CFM-TW";
string lr14x3 = "HmIP-MP3P";
string lr44x2 = "HM-Sec-SC,HM-Sec-SC2,HM-Sec-SC-2,HM-Sec-RHS,HmIP-WRCC2";
string lr6x2 = "HmIP-STI,HmIP-eTRV-C,HM-CC-VD,HM-CC-RT-DN,HM-Sec-WDS,HM-Sec-WDS-2,HM-CC-TC,HM-Dis-TD-T,HB-UW-Sen-THPL-I,HM-WDS40-TH-I,HM-WDS40-TH-I-2,HM-WDS10-TH-O,HmIP-SMI,HMIP-eTRV,HMIP-eTRV,HM-WDS30-OT2-SM-2,HmIP-SMO,HmIP-SMO-A,HmIP-SMO-2,HmIP-eTRV-2,HmIP-eTRV-2 I9F,HmIP-eTRV-C-2,HmIP-SPI,HmIP-SPDR,HmIP-WGC,HmIP-SLO,HmIP-SMO-A-2,HmIP-STHD,HmIP-STHO,HmIP-STHO-A,HmIP-eTRV-B-UK,HmIP-STE2-PCB,HmIP-ASIR-2";
string lr6x3 = "HM-Sec-MDIR-3,HmIP-SWO-PL,HM-Sec-MDIR,HM-Sec-MDIR-2,HM-Sec-SD,HM-Sec-Key,HM-Sec-Key-S,HM-Sec-Key-O,HM-Sen-Wa-Od,HM-Sen-MDIR,HM-Sen-MDIR-O,HM-Sen-MDIR-O-2,HM-WDS100-C6-O,HM-WDS100-C6-O-2,HmIP-ASIR,HmIP-ASIR-B1,HmIP-SWO-B,HmIP-DLD,HmIP-SWO-PR,HM-Sen-LI-O";
string lr6x4 = "HM-CCU-1,HM-ES-TX-WM,HM-WDC7000";
string lr3x1 = "HmIP-DBB,HM-RC-4-2,HM-RC-4-3,HM-RC-Key4-2,HM-RC-Key4-3,HM-RC-Sec4-2,HM-RC-Sec4-3,HM-Sec-RHS-2,HM-Sec-SCo,HmIP-KRC4,HmIP-KRCA,HmIP-SRH,HMIP-SWDO,HmIP-KRCK";
string lr3x2 = "HmIP-SMI55,HmIP-RC8,HM-TC-IT-WM-W-EU,HM-Dis-WM55,HM-Dis-EP-WM55,HM-PB-2-WM55,HM-PB-2-WM55-2,HM-PB-6-WM55,HM-PBI-2-FM,HM-RC-8,HM-Sen-DB-PCB,HM-Sen-EP,HM-Sen-MDIR-SM,HM-Sen-MDIR-WM55,HM-WDS30-T-O,HM-WDS30-OT2-SM,HmIP-STH,HmIP-STHD,HMIP-WRC2,HmIP-WRC6,HmIP-WTH,HmIP-WTH-2,HmIP-SAM,HmIP-SWDO-I,HmIP-SMI55-2,HmIP-SCI,HmIP-WRCD,HmIP-DSD-PCB,HmIP-WRCR,HmIP-STV,HmIP-SWDM,HmIP-WKP,HmIP-FCI6,HmIP-SWD";
string lr3x3 = "HM-PB-4Dis-WM,HM-PB-4Dis-WM-2,HM-RC-Dis-H-x-EU";
string lr3x3a = "HM-RC-19-SW,HM-RC-19,HM-RC-19-B,HM-RC-12,HM-RC-12-B,HM-RC-12-W";
string block9 = "HM-LC-Sw1-Ba-PCB,HM-LC-Sw4-PCB,HM-MOD-EM-8,HM-MOD-Re-8,HM-Sen-RD-O,HM-OU-CM-PCB,HM-LC-Sw4-WM";
string fixed = "HM-Sec-SD-2,HmIP-SWSD";
string recharge = "HM-Sec-Win,HM-Sec-SFA-SM,HmIP-ASIR-O";

string scurlist = dom.GetObject(ID_SYSTEM_VARIABLES).Get(sysvarname).Value();
string index = ""; string slist = "";

foreach(index, dom.GetObject(ID_SERVICES).EnumIDs()) {
object otmp = dom.GetObject(index);
   if (otmp) {
      if(otmp.IsTypeOf(OT_ALARMDP) && (otmp.AlState() == asOncoming)) {
         boolean collect = true;
         object trigdp = dom.GetObject(otmp.AlTriggerDP());
         object och = dom.GetObject((trigdp.Channel()));
         object odev = dom.GetObject((och.Device()));
         var ival = trigdp.Value();
         var sftime = otmp.AlOccurrenceTime().ToString("%d.%m.%y %H:%M Uhr");
         var sltime = otmp.LastTriggerTime().ToString("%d.%m.%y %H:%M Uhr");
         var sdesc = trigdp.HssType();
         var sserial = odev.Address();

         if ((sdesc == "STICKY_UNREACH") && (autoconfirm == "ja") && (debug == "aus")) { otmp.AlReceipt(); }
         if (blockdevices.Find(sserial) < 0) {
            if (sdesc == "CONFIG_PENDING") { sdesc = "Konfigurationsdaten stehen zur Übertragung an"; }
            if ((sdesc == "LOWBAT") || (sdesc == "LOW_BAT")) { sdesc = "Batteriestand niedrig"; }
            if (sdesc == "STICKY_UNREACH") { sdesc = "Kommunikation war gestört"; }
            if (sdesc == "UNREACH") { sdesc = "Kommunikation zur Zeit gestört"; }
            if (sdesc == "DEVICE_IN_BOOTLOADER"){ sdesc = "Gerät startet neu"; }
            if (sdesc == "UPDATE_PENDING") { sdesc = "Update verfügbar"; }
            if (sdesc == "U_SOURCE_FAIL") { sdesc = "Netzteil ausgefallen"; }
            if (sdesc == "USBH_POWERFAIL") { sdesc = "USB-Host deaktiviert"; }
            if ((sdesc == "ERROR_SABOTAGE") || (sdesc == "SABOTAGE")) { sdesc = "Sabotage"; }
            if (sdesc == "STICKY_SABOTAGE") { sdesc = "Sabotage war ausgelöst"; }
            if (sdesc == "ERROR_REDUCED") { sdesc = "Temperatur kritisch (Lastabsenkung)"; }
            if (sdesc == "ERROR_NON_FLAT_POSITIONING") { sdesc = "Fehler Lageerkennung"; }
            if (sdesc == "ERROR") {
               if((odev.HssType()=="HM-Sec-RHS") || (odev.HssType()=="HM-Sec-SC") || (odev.HssType()=="HM-Sec-SC-2") || (odev.HssType()=="HM-Sec-SCo") || (odev.HssType()=="HM-Sec-MD") || (odev.HssType()=="HM-Sec-MDIR") || (odev.HssType()=="HM-Sec-MDIR-2") || (odev.HssType()=="HM-Sec-MDIR-3") || (odev.HssType()=="HM-Sec-Sir-WM")) {
                  if (ival == 7){ sdesc = "Sabotage"; }
               }
               if ((odev.HssType()=="HM-Sec-Key") || (odev.HssType()=="HM-Sec-Key-S") || (odev.HssType()=="HM-Sec-Key-O")) {
                  if (ival == 1) { sdesc = "Einkuppeln fehlgeschlagen"; }
                  if (ival == 2) { sdesc = "Motorlauf abgebrochen"; }
               }
               if (odev.HssType()=="HM-CC-VD") {
                  if (ival == 1){ sdesc = "Ventil Antrieb blockiert"; }
                  if (ival == 2){ sdesc = "Ventil nicht montiert"; }
                  if (ival == 3){ sdesc = "Stellbereich zu klein"; }
                  if (ival == 4){ sdesc = "Batteriestand niedrig"; }
               }
            }
            if (sdesc == "FAULT_REPORTING") {
               if (odev.HssType()=="HM-CC-RT-DN") {
                  if (ival == 1) { sdesc = "Ventil blockiert"; }
                  if (ival == 2) { sdesc = "Einstellbereich Ventil zu gross"; }
                  if (ival == 3) { sdesc = "Einstellbereich Ventil zu klein"; }
                  if (ival == 4) { sdesc = "Kommunikationsfehler"; }
                  if (ival == 6) { sdesc = "Batteriestand niedrig"; }
                  if (ival == 7) { sdesc = "Fehlstellung Ventil"; }
               }
            }
            if (sdesc == "Batteriestand niedrig") {
               string batlink = "unbekannt";
               foreach (index, cr2016.Split(",")) { if (index == odev.HssType()) { batlink = "1x leere CR2016"; } }
               foreach (index, cr2032.Split(",")) { if (index == odev.HssType()) { batlink = "1x leere CR2032"; } }
               foreach (index, lr14x2.Split(",")) { if (index == odev.HssType()) { batlink = "2x leere LR14/C"; } }
               foreach (index, lr14x3.Split(",")) { if (index == odev.HssType()) { batlink = "3x leere LR14/C"; } }
               foreach (index, lr44x2.Split(",")) { if (index == odev.HssType()) { batlink = "2x leere LR44/AG13"; } }
               foreach (index, lr6x2.Split(",")) { if (index == odev.HssType()) { batlink = "2x leere LR06/AA"; } }
               foreach (index, lr6x3.Split(",")) { if (index == odev.HssType()) { batlink = "3x leere LR06/AA"; } }
               foreach (index, lr6x4.Split(",")) { if (index == odev.HssType()) { batlink = "4x leere LR06/AA"; } }
               foreach (index, lr3x1.Split(",")) { if (index == odev.HssType()) { batlink = "1x leere LR03/AAA"; } }
               foreach (index, lr3x2.Split(",")) { if (index == odev.HssType()) { batlink = "2x leere LR03/AAA"; } }
               foreach (index, lr3x3.Split(",")) { if (index == odev.HssType()) { batlink = "3x leere LR03/AAA"; } }
               foreach (index, lr3x3a.Split(",")) { if (index == odev.HssType()) { batlink = "3x leere LR03/AAA Akkus"; } }
               foreach (index, block9.Split(",")) { if (index == odev.HssType()) { batlink = "1x leerer 6LR61/9V-Block"; } }
               foreach (index, fixed.Split(",")) { if (index == odev.HssType()) { batlink = "Fest eingebaute Batterie leer"; } }
               foreach (index, recharge.Split(",")) { if (index == odev.HssType()) { batlink = "Akku aufladen"; } }
               slist = slist # odev.Name() # ": " # batlink # " seit: " # sftime # divider; }
            else {
               slist = slist # odev.Name() # ": " # sdesc # " seit: " # sftime  # divider;
            }
         }
      }
   }
}
if (slist == ""){ slist = "Keine Servicemeldungen vorhanden"; }
if ((debug == "aus") && (slist != scurlist)) { dom.GetObject(ID_SYSTEM_VARIABLES).Get(sysvarname).State(slist); } else { WriteLine(slist); }

Changelog
  • v2.06: Erstes öffentliches Release der reduzierten Version von alchys "Servicemeldungen *allinclusive*"
  • v2.07: Weitere Reduzierung des Skriptes: Wegfall unnötiger Variablen, Bugfix: "Alte/Neue Servicemeldung"
  • v2.08: Weitere Reduzierung des Skriptes: U.a. Wegoptimierung einer foreach-Schleife (Danke an dtp)
  • v2.09: Aufnahme von HM-Dis-EP-WM55 und Ablösen von Tabulatoren durch Kommata
  • v2.10: Typo in der Beschreibung der Voreinstellungen korrigiert (Danke an alchy)
  • v2.11: Kleinere textliche Änderungen, Default für automatische Bestätigung auf "ja" geändert
  • v2.12: Erkennung von Sabotagemeldungen der Innensirene HM-Sec-Sir-WM (Danke an dtp)
  • v2.13: Erkennung der Lastabsenkung bei kritischer Temperatur und Aufnahme von HM-RC-Dis-H-x-EU
  • v2.14: Verwendung der Methode Get() statt globales Suchen nach Namen (Danke an BadenPower)
  • v2.15: Erweiterung auf alle zurzeit verfügbaren HM- und HMIP-Komponenten mit Batteriebetrieb (Danke an dtp)
  • v2.16: Fehlerbehebung bezüglich AlDestMapDP()-Problematik (Danke an alchy und alle Beteiligten)
  • v2.20: Anpassungen für neue ReGaHss, Code-Angleichung und -Reduzierung, verbesserte Reaktion auf Servicemeldungen
  • v2.21: Der Inhalt der Systemvariable (letzte Servicemeldung) bleibt jetzt wieder erhalten
  • v2.22: Aktualisierung der Systemvariable bei Inhaltsgleichheit unterbunden (Danke an cyclopz)
  • v2.23: Geräte aktualisiert (Danke an alchy und alle beteiligten Mitglieder)
  • v2.24: LastTimestamp() ersetzt durch AlOccurrenceTime()/LastTriggerTime() (Danke an klana und alchy)
  • v2.25: Ursache von Fehlermeldungen behoben, Typo in Systemvariable korrigiert
  • v2.26: LOWBAT vs. LOW_BAT bei HMIP-Geräten (Danke an alchy für den Fix und an Preisselbeere für's Melden)
  • v2.27: SABOTAGE vs. ERROR_SABOTAGE bei HMIP-Geräten (Danke an Stanni und JRiemann)
  • v2.28: Geräte aktualisiert, Aufnahme von HmIP-SWO-B und HmIP-eTRV-2 (Danke an tinram)
  • v2.29: Geräte aktualisiert, Aufnahme von HmIP-SAM und HmIP-SPDR (Danke an Stanni)
  • v2.30: Geräte aktualisiert, Aufnahme von HmIP-SWD und HmIP-SLO, neue Servicemeldung (Danke an JRiemann und alchy)
  • v2.31: Unnötiger Punkt nach Ausgabe von "Sabotage" entfernt (Danke an FBK2904)
  • v2.32: Batteriezuweisungen aktualisiert, Aufnahme diverser HmIP-Geräte (Danke an alchy und alle Melder)
  • v2.33: Batteriezuweisungen neu sortiert und aufgeräumt, Doubletten entfernt
  • v2.34: Batteriezuweisung für HmIP-WTH-2 korrigiert (Danke an roe1974)
  • v2.35: Batteriezuweisung für HmIP-STHO und HmIP-STHO-A hinzugefügt (Danke an Huey)
  • v2.36: Batteriezuweisung für HmIP-DBB hinzugefügt (Danke an TomHH)
  • v2.37: Batteriezuweisungen für HmIP-RC8 und HmIP-WRC6 korrigiert (Danke an brunna_da_erna)
  • v2.37: Batteriezuweisung und Sabotagemeldung für HM-Sec-MDIR-3 hinzugefügt (Danke an brunna_da_erna)
  • v2.38: Batteriezuweisung für HmIP-WRCD und HmIP-DSD-PCB hinzugefügt (Danke an FBK2904)
  • v2.39: Batteriezuweisungen an das "Allinclusive-Script" angeglichen (Danke an alchy)
  • v2.40: Batteriezuweisungen für HmIP-STHO und HmIP-STHO-A korrigiert (Danke an Waidmännchen)
  • v2.41: Batteriezuweisung für HM-RC-19-SW hinzugefügt (Danke an finerider)
  • v2.42: Batteriezuweisungen an das "Allinclusive-Script" angeglichen (Danke an alchy)
  • v2.43: Batteriezuweisung für HmIP-DLD hinzugefügt (Danke an kalanthes)
  • v2.44: Batteriezuweisungen an das "Allinclusive-Script" angeglichen (Danke an alchy)
  • v2.45: Batteriezuweisung für HmIP-SLO korrigiert (Danke an schneider.obw)
  • v2.46: Batteriezuweisungen für HmIP-DLS und HmIP-STI hinzugefügt (Danke an HM-Villa)
  • v2.47: Batteriezuweisungen für viele Geräte aktualisiert (Danke an alle Melder)
  • v2.48: Batteriezuweisung für HmIP-WRCD erneut hinzugefügt (Danke an FBK2904)
  • v2.49: Batteriezuweisung für HmIP-SWDO-I korrigiert (Danke an klana)
  • v3.11: Der Inhalt der angegebenen Systemvariable wird bei Bereinigung der Servicemeldung entsprechend angepasst
  • v3.12: Batteriezuweisung für HmIP-SWD korrigiert (Danke an fuwolf)
  • v3.13: Batteriezuweisung für HmIP-SWO-PR hinzugefügt (Danke an basta25)
  • v3.14: Batteriezuweisung für HmIP-eTRV-2 I9F hinzugefügt (Danke an Capone2000)
  • v3.15: Batteriezuweisung für HM-Sen-LI-O korrigiert (Danke an dpres)
Zuletzt geändert von blackhole am 03.02.2024, 11:33, insgesamt 155-mal geändert.

dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Servicemeldungen SV v2.06

Beitrag von dtp » 28.06.2016, 15:32

*räusper*

Nur der Vollständigkeit halber: Klick! ;)

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Re: Servicemeldungen SV v2.06

Beitrag von blackhole » 28.06.2016, 19:08

dtp hat geschrieben:*räusper*
Versuch's mal hiermit. :mrgreen:

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Re: Servicemeldungen SV v2.07

Beitrag von blackhole » 30.06.2016, 07:51

Servicemeldungen SV v2.07 ist veröffentlicht (Changelog)
  • Weitere Reduzierung des Skriptes: Weiterer Wegfall unnötiger Variablen und Straffung des Codes
  • Bugfix der "Alte/Neue Servicemeldung"-Funktion: "Alte Servicemeldung" wurde nicht geschrieben

dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Servicemeldungen SV v2.07

Beitrag von dtp » 30.06.2016, 09:38

Kleiner Tipp: Du könntest Deinen Code ggf. noch weiter optimieren, indem Du die foreach-Schleife für die automatische Bestätigung der temporären Kommunikationsstörungsmeldungen in die nachfolgende foreach-Schleife integrierst. Habe ich auch so gemacht und funktioniert eigentlich soweit sehr zuverlässig.

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Re: Servicemeldungen SV v2.07

Beitrag von blackhole » 30.06.2016, 10:00

Danke, das schaue ich mir gerne einmal an.

Edit: Oh ja, da lässt sich einiges wegoptimieren.

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Re: Servicemeldungen SV v2.07

Beitrag von blackhole » 30.06.2016, 11:26

Ich habe auf die Schnelle einmal "trocken" und ohne zu testen ein wenig anders aber doch sehr ähnlich reduziert:

Code: Alles auswählen

!------------------------------------------------------------------------------------------------
! Servicemeldungen-SV v2.08 ALPHA (NYR)
! Änderungen vorerst verworfen, andere Lösung folgt
!------------------------------------------------------------------------------------------------
Das ist noch völlig ungetestet, könnte klappen, muss aber nicht.
Das Testen von ID_SERVICES spare ich wahrscheinlich komplett aus -weiß ich aber noch nicht genau- zurzeit ist es jedenfalls so.
Ich werde das dann diese Tage, nach ausführlichen Tests, so (oder so ähnlich) als v2.08 releasen.

Danke nochmals für den Tipp.

P.S.:
Mir ist bei deinen drei Skripten jeweils ein "wechseln1" (vs. "wechseln!") aufgefallen.
Zuletzt geändert von blackhole am 30.06.2016, 13:22, insgesamt 1-mal geändert.

dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Servicemeldungen SV v2.07

Beitrag von dtp » 30.06.2016, 11:41

blackhole hat geschrieben: Mir ist bei deinen drei Skripten jeweils ein "wechseln1" (vs. "wechseln!") aufgefallen.
Danke. Hab's geändert.

Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Re: Servicemeldungen SV v2.07

Beitrag von blackhole » 30.06.2016, 13:20

Wenn man mit Alte-/Neue Servicemeldung und "Autoconfirm" arbeitet, läuft das nicht ganz so rund.
Ich werde einmal sehen, ob ich das ein wenig anders machen werde.

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

Re: Servicemeldungen SV v2.08

Beitrag von blackhole » 30.06.2016, 16:22

Servicemeldungen SV v2.08 ist veröffentlicht (Changelog)
  • Weitere Reduzierung des Skriptes, u.a. Wegoptimierung einer foreach-Schleife (Danke an dtp)
  • Trennzeichen und/oder Umbruch ist jetzt voreinstellbar (Sysvar auf Startseite wird möglich)
  • Voreinstellungen reduziert (Zeiten sind wichtig) und nach Priorität umsortiert
  • Text "Alte-/Neue Servicemeldung" wegoptimiert (ja, ja, ja)
  • Verschiedene kleinere Optimierungen
Die Tests waren vielversprechend. :mrgreen:

Antworten

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