Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Servicemeldungen Volume2

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

[Vorlage] Servicemeldungen Volume2

Scheduled Pinned Locked Moved Skripten / Logik
224 Posts 14 Posters 44.3k Views 24 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • sigi234S sigi234

    @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

    ich weiss nicht genau was du meinst. Was fehlt denn genau ?

    Screenshot (1100).png

    L Online
    L Online
    looxer01
    wrote on last edited by
    #143

    @sigi234
    oha, das sehe ich in VIS1 nicht so.
    kannst du die folgende funktion austauschen und testen ?

    function generateHtmlTable(data, HistOderAkt) {
        if (!UpdateHTML_Datenpunkte) {  return;     }
        const uniqueClass = "custom-table";
        const cellPadding = '6px';
        let table = `
            <table class="${uniqueClass}" style="
                width: 100%;
                border-collapse: collapse; /* Rahmen zusammenführen */
                border-spacing: 0; /* Kein Abstand zwischen Zellen */
                ${useBorderOutside ? `border: ${borderWidth} solid ${borderColorOutside};` : 'border: none;'}
            ">
        `;
        // Scoped Stile für die Tabelle
        table += `
            <style>
                .${uniqueClass} th, .${uniqueClass} td {
                    padding: ${cellPadding};
                    ${useBorderAll ? `border: ${borderWidth} solid ${borderColorInside};` : 'border: none;'}
                }
    
                .${uniqueClass} thead th {
                    position: sticky;
                    top: 0;
                    background-color: ${headerColor};
                    color: ${headerTextColor};
                    z-index: 1;
                }
            </style>
        `;
        // Kopfzeile
        table += `
            <thead>
            <tr>
                <th style="text-align: left;">Datum_Seit</th>
                <th style="text-align: left;">Meldungsart</th>
                <th style="text-align: left;">Name</th>
                <th style="text-align: left;">GeraeteId</th>
                <th style="text-align: left;">Status</th>
                <th style="text-align: left;">Batterie</th>
                <th style="text-align: left;">SM_aufgehoben_seit</th>
            </tr>
            </thead>
        `;
        // Tabellenkörper
        table += '<tbody>';
        data.forEach((item, index) => {
            const rowColor = index % 2 === 0 ? evenRowColor : oddRowColor; // Farben der Zeilen
            const textColor = index % 2 === 0 ? evenRowTextColor : oddRowTextColor; // Textfarbe
    
            table += `
            <tr style="background-color: ${rowColor}; color: ${textColor};">
                <td>${item.datum_seit}</td>
                <td>${item.meldungsart}</td>
                <td>${item.common_name}</td>
                <td>${item.GeraeteId}</td>
                <td>${item.status_message_Pure}</td>
                <td>${item.batterie_bezeichnung}</td>
                <td>${item.SM_aufgehoben_seit}</td>
            </tr>
            `;
        });
        table += '</tbody>';
        table += '</table>';
        // Zustand setzen je nach HistOderAkt
        if (HistOderAkt === "AKT") {
            setState(id_HTML_ServicemeldungLang, table);  
        } else {
            setState(id_HTML_Servicemeldung_History, table); 
        }
    }
    
    sigi234S 1 Reply Last reply
    0
    • L looxer01

      @sigi234
      oha, das sehe ich in VIS1 nicht so.
      kannst du die folgende funktion austauschen und testen ?

      function generateHtmlTable(data, HistOderAkt) {
          if (!UpdateHTML_Datenpunkte) {  return;     }
          const uniqueClass = "custom-table";
          const cellPadding = '6px';
          let table = `
              <table class="${uniqueClass}" style="
                  width: 100%;
                  border-collapse: collapse; /* Rahmen zusammenführen */
                  border-spacing: 0; /* Kein Abstand zwischen Zellen */
                  ${useBorderOutside ? `border: ${borderWidth} solid ${borderColorOutside};` : 'border: none;'}
              ">
          `;
          // Scoped Stile für die Tabelle
          table += `
              <style>
                  .${uniqueClass} th, .${uniqueClass} td {
                      padding: ${cellPadding};
                      ${useBorderAll ? `border: ${borderWidth} solid ${borderColorInside};` : 'border: none;'}
                  }
      
                  .${uniqueClass} thead th {
                      position: sticky;
                      top: 0;
                      background-color: ${headerColor};
                      color: ${headerTextColor};
                      z-index: 1;
                  }
              </style>
          `;
          // Kopfzeile
          table += `
              <thead>
              <tr>
                  <th style="text-align: left;">Datum_Seit</th>
                  <th style="text-align: left;">Meldungsart</th>
                  <th style="text-align: left;">Name</th>
                  <th style="text-align: left;">GeraeteId</th>
                  <th style="text-align: left;">Status</th>
                  <th style="text-align: left;">Batterie</th>
                  <th style="text-align: left;">SM_aufgehoben_seit</th>
              </tr>
              </thead>
          `;
          // Tabellenkörper
          table += '<tbody>';
          data.forEach((item, index) => {
              const rowColor = index % 2 === 0 ? evenRowColor : oddRowColor; // Farben der Zeilen
              const textColor = index % 2 === 0 ? evenRowTextColor : oddRowTextColor; // Textfarbe
      
              table += `
              <tr style="background-color: ${rowColor}; color: ${textColor};">
                  <td>${item.datum_seit}</td>
                  <td>${item.meldungsart}</td>
                  <td>${item.common_name}</td>
                  <td>${item.GeraeteId}</td>
                  <td>${item.status_message_Pure}</td>
                  <td>${item.batterie_bezeichnung}</td>
                  <td>${item.SM_aufgehoben_seit}</td>
              </tr>
              `;
          });
          table += '</tbody>';
          table += '</table>';
          // Zustand setzen je nach HistOderAkt
          if (HistOderAkt === "AKT") {
              setState(id_HTML_ServicemeldungLang, table);  
          } else {
              setState(id_HTML_Servicemeldung_History, table); 
          }
      }
      
      sigi234S Online
      sigi234S Online
      sigi234
      Forum Testing Most Active
      wrote on last edited by
      #144

      @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

      oha, das sehe ich in VIS1 nicht so.
      kannst du die folgende funktion austauschen und testen ?

      Jupp, wieder normal. THX

      Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Immer Daten sichern!

      1 Reply Last reply
      0
      • L Online
        L Online
        looxer01
        wrote on last edited by
        #145

        Version 3.05 ist online.

        • global CSS Fix zur Vermeidung überbreifender HTML Effekte
        1 Reply Last reply
        1
        • L Online
          L Online
          looxer01
          wrote on last edited by looxer01
          #146

          ich musste noch Version 3.06 nachschieben

          • Es gab ein log, übrig geblieben vom testen. Ist jetzt entfernt
          • Die HTML Einstellungen für den äusseren Rand habe ich entfernt. Dieser kann ohnehin über das Widget separariert eingestellt werden
            die einstellungen sind lokal geblieben, sollten also hoffentlich keine Nebenwirkungen haben.
          • Für die Historie übernehme ich jetzt die Batteriebezeichnung. Das Feld gabe es zwar, wurde aber nie gefüllt

          kleine Anmerkung: mir persönlich gefällt die HTML Version der Servicemeldungen zwischenzeitlich besser als die JSON Version. :)

          vG Looxer

          sigi234S 1 Reply Last reply
          0
          • L looxer01

            ich musste noch Version 3.06 nachschieben

            • Es gab ein log, übrig geblieben vom testen. Ist jetzt entfernt
            • Die HTML Einstellungen für den äusseren Rand habe ich entfernt. Dieser kann ohnehin über das Widget separariert eingestellt werden
              die einstellungen sind lokal geblieben, sollten also hoffentlich keine Nebenwirkungen haben.
            • Für die Historie übernehme ich jetzt die Batteriebezeichnung. Das Feld gabe es zwar, wurde aber nie gefüllt

            kleine Anmerkung: mir persönlich gefällt die HTML Version der Servicemeldungen zwischenzeitlich besser als die JSON Version. :)

            vG Looxer

            sigi234S Online
            sigi234S Online
            sigi234
            Forum Testing Most Active
            wrote on last edited by
            #147

            @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

            kleine Anmerkung: mir persönlich gefällt die HTML Version der Servicemeldungen zwischenzeitlich besser als die JSON Version

            Mir auch. Screenshot (1102).png

            Frage:
            Kann man die History manuell löschen lassen via Button?
            Im Skript wird sie ja an einen 1. Sa im Monat gelöscht, kann ich das deaktivieren?

            Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
            Immer Daten sichern!

            L 2 Replies Last reply
            0
            • sigi234S sigi234

              @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

              kleine Anmerkung: mir persönlich gefällt die HTML Version der Servicemeldungen zwischenzeitlich besser als die JSON Version

              Mir auch. Screenshot (1102).png

              Frage:
              Kann man die History manuell löschen lassen via Button?
              Im Skript wird sie ja an einen 1. Sa im Monat gelöscht, kann ich das deaktivieren?

              L Online
              L Online
              looxer01
              wrote on last edited by looxer01
              #148

              @sigi234
              der Schedule befindet sich in den Experteneinstellungen

              //Schedule Zeit fuer refresh der Historie
              const scheduleTimeClearSMTexte = "2 0 1 * *";   // Sam 1. tag des monats um 00:02 morgens sollen alle Servicemeldungen des Monats geloescht werden
              // const scheduleTimeClearSMTexte = "58 23 * * 0"; // alternative Sonntags um 23:58 Uhr sollen alle Servicemeldungen der Woche im datenpunkt der SM-Texte geloescht werden 
              

              ich hatte monatlich und wöchentlich vorgegeben. Das lässt sich aber beliebig anpassen. (z.B. 60 * * * * bedeutet jede 60.Minute. Da es die in cron nicht gibt, wird auch der schedule nie ausgefuehrt)
              Einen Refresh Button könntest du dir in die VIS legen und bei Druck den Datenpunkt leeren.
              Eine Möglichkeit ohne script wäre ein HTML State Widget. Wenn du da den Datenpunkt angibst und dann in VIS auf die fläche drückst wird der Datenpunkt geleert. Das sollte aber immer nur dann gemacht werden, wenn es keine aktuellen Servicemeldungen gibt.

              Anmerkung. Es reicht, wenn der JSON Datenpunkt geloescht wird. Also nicht den HTML Datenpunkt löschen, da der immer wieder aufgrund des JSON Datenpunktes neu generiert wird

              1 Reply Last reply
              0
              • sigi234S sigi234

                @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

                kleine Anmerkung: mir persönlich gefällt die HTML Version der Servicemeldungen zwischenzeitlich besser als die JSON Version

                Mir auch. Screenshot (1102).png

                Frage:
                Kann man die History manuell löschen lassen via Button?
                Im Skript wird sie ja an einen 1. Sa im Monat gelöscht, kann ich das deaktivieren?

                L Online
                L Online
                looxer01
                wrote on last edited by looxer01
                #149

                @sigi234
                ich werde die Funktion mit einem separaten Datenpunkt und entsprechender Logik hinzufügen.
                Es ist eben doch ein wenig mehr als nur den Datenpunkt zu löschen.
                Kommt heute oder morgen.

                vG Looxer

                sieht dann ggf so aus:
                Screenshot 2025-01-23 110926.png

                1 Reply Last reply
                1
                • L Online
                  L Online
                  looxer01
                  wrote on last edited by
                  #150

                  Version 3.07 ist online.
                  Das ging recht schnell:

                  • Datenpunkt als Button für VIS erstellt (boolean) bei true wird eine Subscription ausgeloest
                  • Die Subscription loescht die Historie, belaesst aber die noch aktiven Servicemeldungen in der Historie
                  • Der schedule zur regelmäßige Löschung kann beibehalten werden oder deaktiviert werden

                  Alles getestet.

                  vG Looxer

                  sigi234S 1 Reply Last reply
                  0
                  • L looxer01

                    Version 3.07 ist online.
                    Das ging recht schnell:

                    • Datenpunkt als Button für VIS erstellt (boolean) bei true wird eine Subscription ausgeloest
                    • Die Subscription loescht die Historie, belaesst aber die noch aktiven Servicemeldungen in der Historie
                    • Der schedule zur regelmäßige Löschung kann beibehalten werden oder deaktiviert werden

                    Alles getestet.

                    vG Looxer

                    sigi234S Online
                    sigi234S Online
                    sigi234
                    Forum Testing Most Active
                    wrote on last edited by
                    #151

                    @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

                    Der schedule zur regelmäßige Löschung kann beibehalten werden oder deaktiviert werden

                    Wie deaktvieren?

                    Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                    Immer Daten sichern!

                    L 1 Reply Last reply
                    0
                    • sigi234S sigi234

                      @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

                      Der schedule zur regelmäßige Löschung kann beibehalten werden oder deaktiviert werden

                      Wie deaktvieren?

                      L Online
                      L Online
                      looxer01
                      wrote on last edited by
                      #152

                      @sigi234
                      es gibt eine Kommentarzeile dazu

                      const scheduleTimeClearSMTexte = "2 0 1 * *";       // am 1. tag des monats um 00:02 morgens sollen alle Servicemeldungen des Monats geloescht werden
                      // const scheduleTimeClearSMTexte = "58 23 * * 0";  // alternative Sonntags um 23:58 Uhr sollen alle Servicemeldungen der Woche im datenpunkt der SM-Texte geloescht werden 
                      // const scheduleTimeClearSMTexte = "60 * * * *";   // altenative ist den schedule zur Loeschung der Histore nie auszuloesen und ggf über den Datenpunkt id_Button_Refresh_Historie (Button) manuell zu loeschen
                      
                      

                      Zeile 1 auskommentieren
                      Zeile 3 aktivieren

                      sigi234S 1 Reply Last reply
                      0
                      • L looxer01

                        @sigi234
                        es gibt eine Kommentarzeile dazu

                        const scheduleTimeClearSMTexte = "2 0 1 * *";       // am 1. tag des monats um 00:02 morgens sollen alle Servicemeldungen des Monats geloescht werden
                        // const scheduleTimeClearSMTexte = "58 23 * * 0";  // alternative Sonntags um 23:58 Uhr sollen alle Servicemeldungen der Woche im datenpunkt der SM-Texte geloescht werden 
                        // const scheduleTimeClearSMTexte = "60 * * * *";   // altenative ist den schedule zur Loeschung der Histore nie auszuloesen und ggf über den Datenpunkt id_Button_Refresh_Historie (Button) manuell zu loeschen
                        
                        

                        Zeile 1 auskommentieren
                        Zeile 3 aktivieren

                        sigi234S Online
                        sigi234S Online
                        sigi234
                        Forum Testing Most Active
                        wrote on last edited by
                        #153

                        @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

                        @sigi234
                        es gibt eine Kommentarzeile dazu

                        const scheduleTimeClearSMTexte = "2 0 1 * *";       // am 1. tag des monats um 00:02 morgens sollen alle Servicemeldungen des Monats geloescht werden
                        // const scheduleTimeClearSMTexte = "58 23 * * 0";  // alternative Sonntags um 23:58 Uhr sollen alle Servicemeldungen der Woche im datenpunkt der SM-Texte geloescht werden 
                        // const scheduleTimeClearSMTexte = "60 * * * *";   // altenative ist den schedule zur Loeschung der Histore nie auszuloesen und ggf über den Datenpunkt id_Button_Refresh_Historie (Button) manuell zu loeschen
                        
                        

                        Zeile 1 auskommentieren
                        Zeile 3 aktivieren

                        Das habe ich gemacht aber:

                        Screenshot (1103).png

                        Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                        Immer Daten sichern!

                        L 1 Reply Last reply
                        0
                        • sigi234S sigi234

                          @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

                          @sigi234
                          es gibt eine Kommentarzeile dazu

                          const scheduleTimeClearSMTexte = "2 0 1 * *";       // am 1. tag des monats um 00:02 morgens sollen alle Servicemeldungen des Monats geloescht werden
                          // const scheduleTimeClearSMTexte = "58 23 * * 0";  // alternative Sonntags um 23:58 Uhr sollen alle Servicemeldungen der Woche im datenpunkt der SM-Texte geloescht werden 
                          // const scheduleTimeClearSMTexte = "60 * * * *";   // altenative ist den schedule zur Loeschung der Histore nie auszuloesen und ggf über den Datenpunkt id_Button_Refresh_Historie (Button) manuell zu loeschen
                          
                          

                          Zeile 1 auskommentieren
                          Zeile 3 aktivieren

                          Das habe ich gemacht aber:

                          Screenshot (1103).png

                          L Online
                          L Online
                          looxer01
                          wrote on last edited by
                          #154

                          @sigi234
                          stimmt, das ging früher. Die Türe haben die ioBroker Kollegen dann wohl geschlossen.
                          Ich habe schon eine alternative eingebaut. Kommt später am Nachmittag.

                          vG Looxer

                          1 Reply Last reply
                          0
                          • L Online
                            L Online
                            looxer01
                            wrote on last edited by
                            #155

                            3.08 ist online

                            • Korrektur zur 3.07: es gibt jetzt die Variable "ScheduleAktiv" in den Experteneinstellungen. Bei true wird der schedule zur Löschung der History z.B. monatlich ausgeführt. Bei false wird der schedule nicht ausgeführt und sollte hin und wieder manuell durchgeführt werden

                            vG Looxer

                            1 Reply Last reply
                            1
                            • L Online
                              L Online
                              looxer01
                              wrote on last edited by looxer01
                              #156

                              Im ersten Post habe ich die Views für HTML und JSON aktualisiert. Beide Views sehen nahezu identisch aus und enthalten einen Push-Button, mit dem die Historie manuell gelöscht werden kann. Es gibt keine Sicherheitsabfrage, sodass beim Drücken des Buttons die gesamte Meldungshistorie gelöscht wird.

                              Die Standardeinstellung bleibt unverändert: Am 1. jedes Monats erfolgt die automatische Löschung. Mit der Einstellung „ScheduleAktiv = false“ kann diese Funktion jedoch deaktiviert werden.

                              vG Looxer

                              1 Reply Last reply
                              1
                              • KnallochseK Offline
                                KnallochseK Offline
                                Knallochse
                                wrote on last edited by
                                #157

                                Dein Script funktioniert wirklich zuverlässig.
                                Ich hab jetzt mal die neueste Version ausprobiert, da ist mir aufgefallen, wenn man Text kurz einstellt, dann wird bei einer Sabotageauslösung nur noch „Sabotage“ gesendet. Das dazugehörige Gerät wird nicht mit gesendet.
                                Ist das so gewollt?

                                HM&HMIP über 100 Geräte + IoBroker auf DS918+ uvm.

                                L 1 Reply Last reply
                                0
                                • KnallochseK Knallochse

                                  Dein Script funktioniert wirklich zuverlässig.
                                  Ich hab jetzt mal die neueste Version ausprobiert, da ist mir aufgefallen, wenn man Text kurz einstellt, dann wird bei einer Sabotageauslösung nur noch „Sabotage“ gesendet. Das dazugehörige Gerät wird nicht mit gesendet.
                                  Ist das so gewollt?

                                  L Online
                                  L Online
                                  looxer01
                                  wrote on last edited by looxer01
                                  #158

                                  @knallochse
                                  Hi
                                  gerade mal nachgesehen im code.
                                  Gesendet wird aufgrund dieser Tabelle: statusMessages (details unten)
                                  Und ich sende bei kurzer Meldung tatsächlich nur die pure messages. In diesem Fall Sabotage. Ist so programmiert aber
                                  vielleicht nicht so hilfreich. Ich schaue es mir an.

                                  vG Looxer

                                  const statusMessages = {
                                      UNREACH_ALARM:                    { "hm-rpc": { 0: "keine Kommunikationsfehler",     1: "Kommunikation gestoert",                            2: "Kommunikation war gestoert" } },
                                      STICKY_UNREACH_ALARM:             { "hm-rpc": { 0: "keine Kommunikationsfehler",     1: "Sticky Kommunikation gestoert",                     2: "Sticky Kommunikation war gestoert" } },
                                      SABOTAGE_ALARM:                   { "hm-rpc": { 0: "Keine Sabotage",                 1: "Sabotage",                                          2: "Sabotage aufgehoben" } },
                                      STICKY_SABOTAGE_ALARM:            { "hm-rpc": { 0: "Keine Sabotage",                 1: "Sticky Sabotage",                                   2: "Sticky Sabotage aufgehoben" } },
                                      LOWBAT_ALARM:                     { "hm-rpc": { 0: "Batterie ok",                    1: "Batterie niedrig",                                  2: "Batterie ok" } },
                                      LOW_BAT_ALARM:                    { "hm-rpc": { 0: "Batterie ok",                    1: "Batterie niedrig",                                  2: "Batterie ok" } },
                                      ERROR_NON_FLAT_POSITIONING_ALARM: { "hm-rpc": { 0: "Keine Meldung",                  1: "Geraet wurde angehoben.",                           2: "Geraet wurde angehoben: Bestaetigt" } },
                                      CONFIG_PENDING_ALARM:             { "hm-rpc": { 0: "keine Meldung",                  1: "Konfigurationsdaten stehen zur Uebertragung an",    2: "Konfigurationsdaten standen zur Uebertragung an" } },
                                      UPDATE_PENDING_ALARM:             { "hm-rpc": { 0: "kein Update verfuegbar",         1: "Update verfuegbar",                                 2: "Update wurde eingespielt" } },
                                      ERROR_OVERHEAT_ALARM:             { "hm-rpc": { 0: "kein Overheat Alarm",            1: "Overheat gemeldet",                                 2: "Overheat geloest" } },
                                      ERROR_UNDERVOLTAGE_ALARM:         { "hm-rpc": { 0: "Kein Undervoltage Alarm",        1: "Undervoltage gemeldet",                             2: "Undervoltage geloest" } },
                                      DEVICE_IN_BOOTLOADER_ALARM:       { "hm-rpc": { 0: "Keine Meldung",                  1: "Geraet startet neu",                                2: "Geraet wurde neu gestartet" } },
                                      DUTY_CYCLE:                       { "hm-rpc": { false: "Geraete-Duty Cycle ok",      true: "Geraete-Duty Cycle erreicht",                    null: "unbekannter Status (Duty_Cycle" } },
                                      lowBat:                           { "hmip":   { false: "Batterie ok",                true: "Batterie niedrig",                               null: "Batterie ok" } },
                                      unreach:                          { "hmip":   { false: "keine Kommunikationsfehler", true: "Kommunikation gestoert",                         null: "Kommunikation war gestoert" } },
                                      sabotage:                         { "hmip":   { false: "Keine Sabotage",             true: "Sabotage",                                       null: "Sabotage aufgehoben" } },
                                      configPending:                    { "hmip":   { false: "Keine Meldung",              true: "Konfigurationsdaten stehen zur Uebertragung an", null: "Konfigurationsdaten standen zur Uebertragung an" } },
                                      FALLBACK:                         { "hm-rpc": { 0: "keine Stoerung",                 1: "Stoerung",                                          2: "Stoerung aufgehoben",
                                                                                      false: "Keine Stoerung",             true: "Stoerung",                                       null: "unbekannter Status Fallback"},
                                                                          "hmip":   { false: "keine Stoerung",             true: "Stoerung",                                       null: "Stoerung aufgehoben" }, }
                                  };
                                  
                                  rantanplanR 1 Reply Last reply
                                  2
                                  • L looxer01

                                    @knallochse
                                    Hi
                                    gerade mal nachgesehen im code.
                                    Gesendet wird aufgrund dieser Tabelle: statusMessages (details unten)
                                    Und ich sende bei kurzer Meldung tatsächlich nur die pure messages. In diesem Fall Sabotage. Ist so programmiert aber
                                    vielleicht nicht so hilfreich. Ich schaue es mir an.

                                    vG Looxer

                                    const statusMessages = {
                                        UNREACH_ALARM:                    { "hm-rpc": { 0: "keine Kommunikationsfehler",     1: "Kommunikation gestoert",                            2: "Kommunikation war gestoert" } },
                                        STICKY_UNREACH_ALARM:             { "hm-rpc": { 0: "keine Kommunikationsfehler",     1: "Sticky Kommunikation gestoert",                     2: "Sticky Kommunikation war gestoert" } },
                                        SABOTAGE_ALARM:                   { "hm-rpc": { 0: "Keine Sabotage",                 1: "Sabotage",                                          2: "Sabotage aufgehoben" } },
                                        STICKY_SABOTAGE_ALARM:            { "hm-rpc": { 0: "Keine Sabotage",                 1: "Sticky Sabotage",                                   2: "Sticky Sabotage aufgehoben" } },
                                        LOWBAT_ALARM:                     { "hm-rpc": { 0: "Batterie ok",                    1: "Batterie niedrig",                                  2: "Batterie ok" } },
                                        LOW_BAT_ALARM:                    { "hm-rpc": { 0: "Batterie ok",                    1: "Batterie niedrig",                                  2: "Batterie ok" } },
                                        ERROR_NON_FLAT_POSITIONING_ALARM: { "hm-rpc": { 0: "Keine Meldung",                  1: "Geraet wurde angehoben.",                           2: "Geraet wurde angehoben: Bestaetigt" } },
                                        CONFIG_PENDING_ALARM:             { "hm-rpc": { 0: "keine Meldung",                  1: "Konfigurationsdaten stehen zur Uebertragung an",    2: "Konfigurationsdaten standen zur Uebertragung an" } },
                                        UPDATE_PENDING_ALARM:             { "hm-rpc": { 0: "kein Update verfuegbar",         1: "Update verfuegbar",                                 2: "Update wurde eingespielt" } },
                                        ERROR_OVERHEAT_ALARM:             { "hm-rpc": { 0: "kein Overheat Alarm",            1: "Overheat gemeldet",                                 2: "Overheat geloest" } },
                                        ERROR_UNDERVOLTAGE_ALARM:         { "hm-rpc": { 0: "Kein Undervoltage Alarm",        1: "Undervoltage gemeldet",                             2: "Undervoltage geloest" } },
                                        DEVICE_IN_BOOTLOADER_ALARM:       { "hm-rpc": { 0: "Keine Meldung",                  1: "Geraet startet neu",                                2: "Geraet wurde neu gestartet" } },
                                        DUTY_CYCLE:                       { "hm-rpc": { false: "Geraete-Duty Cycle ok",      true: "Geraete-Duty Cycle erreicht",                    null: "unbekannter Status (Duty_Cycle" } },
                                        lowBat:                           { "hmip":   { false: "Batterie ok",                true: "Batterie niedrig",                               null: "Batterie ok" } },
                                        unreach:                          { "hmip":   { false: "keine Kommunikationsfehler", true: "Kommunikation gestoert",                         null: "Kommunikation war gestoert" } },
                                        sabotage:                         { "hmip":   { false: "Keine Sabotage",             true: "Sabotage",                                       null: "Sabotage aufgehoben" } },
                                        configPending:                    { "hmip":   { false: "Keine Meldung",              true: "Konfigurationsdaten stehen zur Uebertragung an", null: "Konfigurationsdaten standen zur Uebertragung an" } },
                                        FALLBACK:                         { "hm-rpc": { 0: "keine Stoerung",                 1: "Stoerung",                                          2: "Stoerung aufgehoben",
                                                                                        false: "Keine Stoerung",             true: "Stoerung",                                       null: "unbekannter Status Fallback"},
                                                                            "hmip":   { false: "keine Stoerung",             true: "Stoerung",                                       null: "Stoerung aufgehoben" }, }
                                    };
                                    
                                    rantanplanR Online
                                    rantanplanR Online
                                    rantanplan
                                    wrote on last edited by
                                    #159

                                    @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

                                    @knallochse
                                    Hi
                                    gerade mal nachgesehen im code.
                                    Gesendet wird aufgrund dieser Tabelle: statusMessages (details unten)
                                    Und ich sende bei kurzer Meldung tatsächlich nur die pure messages. In diesem Fall Sabotage. Ist so programmiert aber
                                    vielleicht nicht so hilfreich. Ich schaue es mir an.

                                    Hi
                                    Aus diesem Grund bin ich wieder auf das alte Script umgestiegen.
                                    Ich lasse mir die Meldungen nach Telegram schicken. Die lange Version ist mir dabei zuviel und die kurzen Meldungen sind nicht aussagekräftig.
                                    So etwas wie "Sticky Kommunikation gestoert" oder "Batterie niedrig - Batteriebezeichnung: 1x LR3/AAA" ohne Angabe um welches Gerät es sich handelt ist nicht hilfreich.
                                    Das ist im alten Script besser gelöst.

                                    Grüße

                                    Rantanplan

                                    CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                    L 1 Reply Last reply
                                    0
                                    • rantanplanR rantanplan

                                      @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

                                      @knallochse
                                      Hi
                                      gerade mal nachgesehen im code.
                                      Gesendet wird aufgrund dieser Tabelle: statusMessages (details unten)
                                      Und ich sende bei kurzer Meldung tatsächlich nur die pure messages. In diesem Fall Sabotage. Ist so programmiert aber
                                      vielleicht nicht so hilfreich. Ich schaue es mir an.

                                      Hi
                                      Aus diesem Grund bin ich wieder auf das alte Script umgestiegen.
                                      Ich lasse mir die Meldungen nach Telegram schicken. Die lange Version ist mir dabei zuviel und die kurzen Meldungen sind nicht aussagekräftig.
                                      So etwas wie "Sticky Kommunikation gestoert" oder "Batterie niedrig - Batteriebezeichnung: 1x LR3/AAA" ohne Angabe um welches Gerät es sich handelt ist nicht hilfreich.
                                      Das ist im alten Script besser gelöst.

                                      Grüße

                                      L Online
                                      L Online
                                      looxer01
                                      wrote on last edited by looxer01
                                      #160

                                      @rantanplan
                                      ich selber nutze nur email und daher habe nur die langen messages wirklich gesichtet und so ist es
                                      mir nicht aufgefallen. Aber ja, so machen die kurzen messages keinen Sinn. Ist bei mir schon gefixt.

                                      1 Reply Last reply
                                      0
                                      • L Online
                                        L Online
                                        looxer01
                                        wrote on last edited by
                                        #161

                                        Version 3.09 ist online

                                        • kurze Messages gesendet über email, whatsapp, pushover etc. enthalten jetzt auch den Gerätenamen

                                        vG Looxer

                                        rantanplanR 1 Reply Last reply
                                        1
                                        • L Online
                                          L Online
                                          looxer01
                                          wrote on last edited by
                                          #162

                                          Hi,

                                          Die Tabelle zur Ausgabe von messages habe ich überprüft und festgestellt, dass nicht alles so funktioniert wie gedacht.
                                          Hier mal ein Beispiel was möglich ist

                                          let MessageSendCollector = []
                                              
                                              const services =               ['email',    'email',        'whatsApp',     'Signal',  'Telegram',    'Pushover', 'Pushsafer'];
                                              const MessengerScope = {
                                              'UNREACH_ALARM':                [true,       false,          false,          false,      false,          false,      false],
                                              'LOWBAT_ALARM':                 [false,      false,          false,          false,      false,          false,      false],
                                              'SABOTAGE_ALARM':               [true,       false,          true,           false,      false,          false,      false],
                                              'CONFIG_PENDING':               [true,       false,          false,          false,      false,          false,      false],
                                              'Sonstige':                     [false,      false,          false,          false,      false,          false,      false],
                                              'keineSM':                      [true,       false,          false,          false,      false,          false,      false],
                                              }
                                              const MessengerInstanz =        [1,             2,              1,              0,          0,              0,          0 ];    // Instanz des Messengers
                                              const TextTypeKurz      =       [false,       true,           true,          true,       true,           true,       true ]; // bei true wird der Kurztext gesendet - sonst der Langtext
                                          
                                          
                                          • Es lassen sich beliebige (gültige) messageTypes hinzufügen.
                                          • Es können je messageType mehrere gleiche messasgeservices mit unterschiedlichen Instanzen hinzugefügt werden.
                                          • Alle gültigen messageTypes, die nicht in einer Zeile konfiguriert sind, werden automatisch unter "Sonstige" konfiguriert und gesendet

                                          Der Zweck mehrerer MessageServices für einen MessageType ist z.B. eine besondere Behandlung für wichtige im Vergleich zu weniger wichtigen Message Types zu ermöglichen (unterschiedliche Instanzen z.B. bei Pushsafer)

                                          Das funktioniert soweit alles bei mir. Ich werde noch ein wenig testen und dann posten.

                                          vG Looxer

                                          1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          997

                                          Online

                                          32.4k

                                          Users

                                          81.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe