NEWS

Mehrere Fehlermeldungen Komma separiert ausgeben


  • Hallo ich habe 5 IP Kameras laufen. Ich möchte gerne mittels PING (CCU2) ermitteln, welche Kamera(s) nicht erreichbar sind.
    Anbei mein Grundscript:

    schedule("*/1 * * * *", function () {
    createState('Störung.Kamera');
    var Garage= getState('hm-rpc.1.CUX2803001.5.STATE').val
    var Strasse= getState('hm-rpc.1.CUX2803001.9.STATE').val 
    var Vorne= getState('hm-rpc.1.CUX2803001.8.STATE').val 
    var Garten= getState('hm-rpc.1.CUX2803001.4.STATE').val
    var WG= getState('hm-rpc.1.CUX2803001.7.STATE').val
    var idKamera = '6';
    var camfail = "";
     if (Garage == false) idKamera = '1';
     else if (Strasse == false) idKamera = '2'; 
     else if (Vorne == false) idKamera = '3'; 
     else if (Garten == false) idKamera = '4'; 
     else{if (WG == false) idKamera = '5';
     };
    var kamera = ['Garage','Strasse','Vorne','Garten','WG','keine Störung'];
    setState('javascript.0.Störung.Kamera', kamera[idKamera]);
    log(kamera[idKamera]);
    camfail = kamera[idKamera];
    if (idKamera < '6') {camfail = kamera[idKamera];
    camfail = camfail + ", " + kamera[idKamera]};
    log("LOG 2: " + camfail);
    });
    

    An Zeile 20 Strauchel ich. Habe mal mit LOG geübt, bekomme aber immer zweimal die Meldung keine Störung.
    Also jede Störung darf nur einmal erscheinen.
    Michael

  • Forum Testing Most Active

    Zum einen solltest du deine idKamera als Zahl definieren und nicht als String, also überall '' entfernen: zB. var idKamera = 6;
    In #16 definierst du dann ein Array, allerdings fangen Arrays nicht bei "1" an, sondern bei "0". Du vergibst bspw. für "Garage" die ID 1, dass entspricht aber in deinem Array dann "Strasse".
    kamera[0] = Garage
    kamera[1] = Strasse
    ...
    kamera[5] = keine Störung

    ...und dein Anfangs Problem bekommst du so nicht gelöst. Du wirst immer nur genau eine Kamera als Fehlermeldung erhalten, und zwar die mit der höchsten Nummer. Sollte also bspw. 1 +5 ausgefallen sein, wird dir nur die "5" angezeigt.
    Da würde es sich zB. anbieten die fehlerhaften IDs in ein separates Array zu schreiben (man könnte auch dein kamera-Array um eine Ebene erweitern). Das kann man dann mittels for abgrasen und deine Komma separierte Liste erstellen.

Suggested Topics

1.9k
Online

36.9k
Users

42.6k
Topics

591.5k
Posts