Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Skript reagiert plötzlich anders

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    764

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Skript reagiert plötzlich anders

Geplant Angeheftet Gesperrt Verschoben JavaScript
21 Beiträge 5 Kommentatoren 1.4k Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • paul53P paul53

    @Chrille1507 sagte:

    seit gestern löst die Alarmanlage auch aus, wenn wir zu Hause sind, sprich Anwesenheit = true.

    Wenn etwas nicht so funktioniert wie erwartet, dann baut man Debug-Ausgaben ein.

    on({id: "0_userdata.0.Türkontakte.alle_Türen_geschlossen", change:"ne"}, function(obj) {
        log('geschlossen: ' + obj.state.val + ' Typ: ' + typeof obj.state.val);
        let anw = getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val;
        log('anwesend: ' + anw + ' Typ: ' + typeof anw);
    

    Ist "0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy" die richtige Datenpunkt-ID ?

    C Offline
    C Offline
    Chrille1507
    schrieb am zuletzt editiert von
    #11

    @paul53 Auf die Gefahr hin, verprügelt zu werden, muss ich gestehen, dass es jetzt funktioniert bzw. das Problem nicht mehr auftritt. Ich habe es mit Javascript-Adapter Version 4.9.0 und 4.9.8 getestet. Anbei die Logs:

    V 4.9.0

    2.11.2020, 19:31:47.913 [info ]: javascript.0 (1516) Stop script script.js.Alarmanlage.Alarmanlage_ausgelöst
    2.11.2020, 19:31:47.941 [info ]: javascript.0 (1516) Start javascript script.js.Alarmanlage.Alarmanlage_ausgelöst
    2.11.2020, 19:31:47.969 [info ]: javascript.0 (1516) script.js.Alarmanlage.Alarmanlage_ausgelöst: registered 1 subscription and 0 schedules
    2.11.2020, 19:32:04.186 [info ]: javascript.0 (1516) Stop script script.js.Alarmanlage.Alarmanlage_ausgelöst
    2.11.2020, 19:32:04.193 [info ]: javascript.0 (1516) Start javascript script.js.Alarmanlage.Alarmanlage_ausgelöst
    2.11.2020, 19:32:04.210 [info ]: javascript.0 (1516) script.js.Alarmanlage.Alarmanlage_ausgelöst: registered 1 subscription and 0 schedules
    2.11.2020, 19:32:44.116 [info ]: javascript.0 (1516) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
    2.11.2020, 19:32:44.117 [info ]: javascript.0 (1516) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
    2.11.2020, 19:32:49.314 [info ]: javascript.0 (1516) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
    2.11.2020, 19:32:49.315 [info ]: javascript.0 (1516) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
    2.11.2020, 19:32:52.311 [info ]: javascript.0 (1516) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
    2.11.2020, 19:32:52.312 [info ]: javascript.0 (1516) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
    2.11.2020, 19:32:55.316 [info ]: javascript.0 (1516) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
    2.11.2020, 19:32:55.317 [info ]: javascript.0 (1516) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean

    V 4.9.8

    2.11.2020, 19:38:41.192 [info ]: javascript.0 (1498) Stop script script.js.Alarmanlage.Alarmanlage_ausgelöst
    2.11.2020, 19:38:41.822 [info ]: javascript.0 (1498) Start javascript script.js.Alarmanlage.Alarmanlage_ausgelöst
    2.11.2020, 19:38:41.845 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: registered 1 subscription and 0 schedules
    2.11.2020, 19:41:00.807 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
    2.11.2020, 19:41:00.810 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
    2.11.2020, 19:41:06.452 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
    2.11.2020, 19:41:06.452 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
    2.11.2020, 19:41:09.286 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
    2.11.2020, 19:41:09.287 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
    2.11.2020, 19:41:12.446 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
    2.11.2020, 19:41:12.446 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
    2.11.2020, 19:41:21.440 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
    2.11.2020, 19:41:21.440 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
    2.11.2020, 19:41:25.128 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
    2.11.2020, 19:41:25.129 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
    2.11.2020, 19:41:26.860 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
    2.11.2020, 19:41:26.861 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
    2.11.2020, 19:41:29.286 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
    2.11.2020, 19:41:29.287 [info ]: javascript.0 (1498) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean

    Der Vollständigkeit halber noch das Skript:

    ///////////////////////////////////
    ///                             ///
    /// Auslösung der Alarmanlage   ///
    /// Stand: 02.11.2020           ///
    ///                             ///
    ///////////////////////////////////
    
    on({id: "0_userdata.0.Türkontakte.alle_Türen_geschlossen", change:"ne"}, function(obj) {
        log('geschlossen: ' + obj.state.val + ' Typ: ' + typeof obj.state.val);
        let anw = getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val;
        log('anwesend: ' + anw + ' Typ: ' + typeof anw);
        if (getState("0_userdata.0.Türkontakte.alle_Türen_geschlossen").val==false && getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val==false) 
        {
            setState("0_userdata.0.Alarmanlage.Alarmanlage_ausgelöst", true);
            sendTo('telegram.0', {text: "Achtung die Alarmanlage hat ausgelöst"});
        }  
    });
    
    

    Aber woran es jetzt lag, erschließt sich mir leider nicht.

    Trotzdem vielen Dank für die schnelle Hilfe.

    1 Antwort Letzte Antwort
    0
    • C Offline
      C Offline
      Chrille1507
      schrieb am zuletzt editiert von
      #12

      Guten Morgen,

      leider kann ich das Thema nun doch noch nicht zu den Akten legen.
      Heute morgen, als ich das Haus verlassen wollte, ist wieder die Alarmanlage angesprungen.

      Im Log konnte ich lesen, dass der "anwesend" als false erkannt wird. Soweit so verständlich aber der Datenpunkt "0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy" ist in den Objekten als "true" gesetzt.

      Gestern Abend siehe Log von 19:48 Uhr war anwesend noch true. Seit dem hatte auch niemand mehr das Haus verlassen.

      Habt ihr eine Idee, woran es hier jetzt scheitert bzw. was das Problem ist?

      AsgothianA 1 Antwort Letzte Antwort
      0
      • C Chrille1507

        Guten Morgen,

        leider kann ich das Thema nun doch noch nicht zu den Akten legen.
        Heute morgen, als ich das Haus verlassen wollte, ist wieder die Alarmanlage angesprungen.

        Im Log konnte ich lesen, dass der "anwesend" als false erkannt wird. Soweit so verständlich aber der Datenpunkt "0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy" ist in den Objekten als "true" gesetzt.

        Gestern Abend siehe Log von 19:48 Uhr war anwesend noch true. Seit dem hatte auch niemand mehr das Haus verlassen.

        Habt ihr eine Idee, woran es hier jetzt scheitert bzw. was das Problem ist?

        AsgothianA Offline
        AsgothianA Offline
        Asgothian
        Developer
        schrieb am zuletzt editiert von Asgothian
        #13

        @Chrille1507
        Ich habe keine genaue Vorstellung von dem Problem, aber eine Option wie du das ggf. umgehen kannst. Ich gehe aktuell davon aus das es am Zeitverhalten liegt, sprich das die Datenpunkte in einer zeitlich ungünstigen Folge gesetzt werden.

        Versuch mal bitte folgendes:

        Der Vollständigkeit halber noch das Skript:
        
        ///////////////////////////////////
        ///                             ///
        /// Auslösung der Alarmanlage   ///
        /// Stand: 02.11.2020           ///
        ///                             ///
        ///////////////////////////////////
         
        on({"0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy", change: "ne"}, function(obj) {
          log('anwesend was changed to ' + obj.state.val + ' source = ' + obj.state.from);
        });
        
        on({id: "0_userdata.0.Türkontakte.alle_Türen_geschlossen", change:"ne"}, function(obj) {
            log('geschlossen: ' + obj.state.val + ' Typ: ' + typeof obj.state.val);
            let anw = getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val;
            log('anwesend: ' + anw + ' Typ: ' + typeof anw);
            if (obj.state.val==false && anw==false) 
            {
                setState("0_userdata.0.Alarmanlage.Alarmanlage_ausgelöst", true);
                sendTo('telegram.0', {text: "Achtung die Alarmanlage hat ausgelöst"});
            }  
        });
         
        

        Warum die Anpassungen ?

        • bei dem Wechsel vom erneuten Datenpunkt holen zum Prüfen des Triggerwertes geht es um das Ausschliessen einer sogenannten "race condition" - Der Thread in dem der Datenpunkt abgefragt wird und der in dem er geändert wird laufen nicht synchron. Daher kann es durchaus vorkommen das beim erneuten holen des Datenpunktwertes der Wert der zur Aktivierung des Triggers geführt hat noch nicht geschrieben ist.
        • bei dem Wechsel vom erneuten holen des Datenpunktes zur Variable "anw" geht es primär darum Ressourcen zu schonen. Du kannst hinterher einfach das 'log' auskommentieren und den rest so lassen.
        • der zusätzliche Trigger überwacht wer wann den Anwesend Datenpunkt umschreibt.

        A.

        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

        C 1 Antwort Letzte Antwort
        0
        • AsgothianA Asgothian

          @Chrille1507
          Ich habe keine genaue Vorstellung von dem Problem, aber eine Option wie du das ggf. umgehen kannst. Ich gehe aktuell davon aus das es am Zeitverhalten liegt, sprich das die Datenpunkte in einer zeitlich ungünstigen Folge gesetzt werden.

          Versuch mal bitte folgendes:

          Der Vollständigkeit halber noch das Skript:
          
          ///////////////////////////////////
          ///                             ///
          /// Auslösung der Alarmanlage   ///
          /// Stand: 02.11.2020           ///
          ///                             ///
          ///////////////////////////////////
           
          on({"0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy", change: "ne"}, function(obj) {
            log('anwesend was changed to ' + obj.state.val + ' source = ' + obj.state.from);
          });
          
          on({id: "0_userdata.0.Türkontakte.alle_Türen_geschlossen", change:"ne"}, function(obj) {
              log('geschlossen: ' + obj.state.val + ' Typ: ' + typeof obj.state.val);
              let anw = getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val;
              log('anwesend: ' + anw + ' Typ: ' + typeof anw);
              if (obj.state.val==false && anw==false) 
              {
                  setState("0_userdata.0.Alarmanlage.Alarmanlage_ausgelöst", true);
                  sendTo('telegram.0', {text: "Achtung die Alarmanlage hat ausgelöst"});
              }  
          });
           
          

          Warum die Anpassungen ?

          • bei dem Wechsel vom erneuten Datenpunkt holen zum Prüfen des Triggerwertes geht es um das Ausschliessen einer sogenannten "race condition" - Der Thread in dem der Datenpunkt abgefragt wird und der in dem er geändert wird laufen nicht synchron. Daher kann es durchaus vorkommen das beim erneuten holen des Datenpunktwertes der Wert der zur Aktivierung des Triggers geführt hat noch nicht geschrieben ist.
          • bei dem Wechsel vom erneuten holen des Datenpunktes zur Variable "anw" geht es primär darum Ressourcen zu schonen. Du kannst hinterher einfach das 'log' auskommentieren und den rest so lassen.
          • der zusätzliche Trigger überwacht wer wann den Anwesend Datenpunkt umschreibt.

          A.

          C Offline
          C Offline
          Chrille1507
          schrieb am zuletzt editiert von
          #14

          @Asgothian Vielen Dank für die schnelle Rückmeldung.
          Ich werde das gleich als erstes heute testen.

          1 Antwort Letzte Antwort
          0
          • C Offline
            C Offline
            Chrille1507
            schrieb am zuletzt editiert von
            #15

            Guten Morgen,
            neuer Tag gleiche Probleme.

            Ich hatte gestern mein Skript soweit geändert, wie @Asgothian es vorgeschlagen hat.
            Heute Morgen gab es dann wieder das Problem, dass die Alarmanlage ausgelöst wurde.

            Anbei der Auszug aus dem Log:

            2020-11-04 07:10:45.504 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
            2020-11-04 07:10:45.555 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
            
            2020-11-04 07:11:05.911 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
            2020-11-04 07:11:05.912 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
            
            2020-11-04 07:30:21.443 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
            2020-11-04 07:30:21.467 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
            
            2020-11-04 07:30:45.699 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
            2020-11-04 07:30:45.700 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
            
            2020-11-04 07:31:52.401 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
            2020-11-04 07:31:52.402 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
            
            2020-11-04 07:32:17.581 - info: javascript.0 (12613) Stop script script.js.Alarmanlage.Alarmanlage_ausgelöst
            

            Das ist doch zum verzweifeln. Was mache ich nur falsch?

            AsgothianA 1 Antwort Letzte Antwort
            0
            • C Chrille1507

              Guten Morgen,
              neuer Tag gleiche Probleme.

              Ich hatte gestern mein Skript soweit geändert, wie @Asgothian es vorgeschlagen hat.
              Heute Morgen gab es dann wieder das Problem, dass die Alarmanlage ausgelöst wurde.

              Anbei der Auszug aus dem Log:

              2020-11-04 07:10:45.504 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
              2020-11-04 07:10:45.555 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
              
              2020-11-04 07:11:05.911 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
              2020-11-04 07:11:05.912 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
              
              2020-11-04 07:30:21.443 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
              2020-11-04 07:30:21.467 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
              
              2020-11-04 07:30:45.699 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
              2020-11-04 07:30:45.700 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
              
              2020-11-04 07:31:52.401 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
              2020-11-04 07:31:52.402 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
              
              2020-11-04 07:32:17.581 - info: javascript.0 (12613) Stop script script.js.Alarmanlage.Alarmanlage_ausgelöst
              

              Das ist doch zum verzweifeln. Was mache ich nur falsch?

              AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              schrieb am zuletzt editiert von
              #16

              @Chrille1507

              • poste bitte mal das Skript wie es jetzt ist
              • hast du geschaut ob es Meldungen von dem zusätzlichen Trigger gibt ?

              A.

              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

              C 1 Antwort Letzte Antwort
              0
              • AsgothianA Asgothian

                @Chrille1507

                • poste bitte mal das Skript wie es jetzt ist
                • hast du geschaut ob es Meldungen von dem zusätzlichen Trigger gibt ?

                A.

                C Offline
                C Offline
                Chrille1507
                schrieb am zuletzt editiert von Chrille1507
                #17

                @Asgothian
                Anbei das Skript:

                ///////////////////////////////////
                ///                             ///
                /// Auslösung der Alarmanlage   ///
                /// Stand: 02.11.2020           ///
                ///                             ///
                ///////////////////////////////////
                
                on({id: "0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy", change:"ne"}, function(obj) {
                    log('anwesend was changed to ' + obj.state.val + ' source = ' + obj.state.from);
                });
                
                on({id: "0_userdata.0.Türkontakte.alle_Türen_geschlossen", change:"ne"}, function(obj) {
                    log('geschlossen: ' + obj.state.val + ' Typ: ' + typeof obj.state.val);
                    let anw = getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val;
                    log('anwesend: ' + anw + ' Typ: ' + typeof anw);
                    if (obj.state.val==false && anw==false) 
                    {
                        setState("0_userdata.0.Alarmanlage.Alarmanlage_ausgelöst", true);
                        sendTo('telegram.0', {text: "Achtung die Alarmanlage hat ausgelöst"});
                    }  
                });
                
                

                Nein, von denen gibt es keine Meldungen. Also wir tatsächlich das Haus verlassen haben, ca. 07.35 Uhr hat der Rest (Licht aus, Steckdosen aus etc.), der sich auf den Datenpunkt "0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy" bezieht aber funktioniert.

                Kleiner Nachtrag, einen Log über den Datenpunkt "0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy" konnte er auch nicht erzeugen, weil ich Idiot ja das Skript beendet hatte, bevor ich gegangen bin. Bin ich blöd....

                AsgothianA 1 Antwort Letzte Antwort
                0
                • C Chrille1507

                  @Asgothian
                  Anbei das Skript:

                  ///////////////////////////////////
                  ///                             ///
                  /// Auslösung der Alarmanlage   ///
                  /// Stand: 02.11.2020           ///
                  ///                             ///
                  ///////////////////////////////////
                  
                  on({id: "0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy", change:"ne"}, function(obj) {
                      log('anwesend was changed to ' + obj.state.val + ' source = ' + obj.state.from);
                  });
                  
                  on({id: "0_userdata.0.Türkontakte.alle_Türen_geschlossen", change:"ne"}, function(obj) {
                      log('geschlossen: ' + obj.state.val + ' Typ: ' + typeof obj.state.val);
                      let anw = getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val;
                      log('anwesend: ' + anw + ' Typ: ' + typeof anw);
                      if (obj.state.val==false && anw==false) 
                      {
                          setState("0_userdata.0.Alarmanlage.Alarmanlage_ausgelöst", true);
                          sendTo('telegram.0', {text: "Achtung die Alarmanlage hat ausgelöst"});
                      }  
                  });
                  
                  

                  Nein, von denen gibt es keine Meldungen. Also wir tatsächlich das Haus verlassen haben, ca. 07.35 Uhr hat der Rest (Licht aus, Steckdosen aus etc.), der sich auf den Datenpunkt "0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy" bezieht aber funktioniert.

                  Kleiner Nachtrag, einen Log über den Datenpunkt "0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy" konnte er auch nicht erzeugen, weil ich Idiot ja das Skript beendet hatte, bevor ich gegangen bin. Bin ich blöd....

                  AsgothianA Offline
                  AsgothianA Offline
                  Asgothian
                  Developer
                  schrieb am zuletzt editiert von
                  #18

                  @Chrille1507 Da ist was Faul. Der Datenpunkt hat sich geändert, dementsprechend muss es eigentlich auch eine Meldung für die Änderung geben.

                  2020-11-04 07:11:05.911 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
                  2020-11-04 07:11:05.912 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
                   
                  2020-11-04 07:30:21.443 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
                  2020-11-04 07:30:21.467 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
                  
                  

                  @Chrille1507 sagte in Skript reagiert plötzlich anders:

                  Kleiner Nachtrag, einen Log über den Datenpunkt "0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy" konnte er auch nicht erzeugen, weil ich Idiot ja das Skript beendet hatte, bevor ich gegangen bin. Bin ich blöd....

                  Zwischen den beiden oben angegebenen Zeilen muss sich der Datenpunkt geändert haben. Dementsprechend muss es auch einen Eintrag dazu im Log geben. Kannst du bitte mal auf der Log-Seite im Log schauen, nicht im am JS Editor angehängten Log ?

                  Zusätzlich hilft es wenn du auch vor dem SendTo einen log-Eintrag erzeugst, damit du rein im Log feststellen kannst das er da lang gegangen ist.

                  A.

                  ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                  "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                  C 1 Antwort Letzte Antwort
                  0
                  • AsgothianA Asgothian

                    @Chrille1507 Da ist was Faul. Der Datenpunkt hat sich geändert, dementsprechend muss es eigentlich auch eine Meldung für die Änderung geben.

                    2020-11-04 07:11:05.911 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
                    2020-11-04 07:11:05.912 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: true Typ: boolean
                     
                    2020-11-04 07:30:21.443 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
                    2020-11-04 07:30:21.467 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
                    
                    

                    @Chrille1507 sagte in Skript reagiert plötzlich anders:

                    Kleiner Nachtrag, einen Log über den Datenpunkt "0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy" konnte er auch nicht erzeugen, weil ich Idiot ja das Skript beendet hatte, bevor ich gegangen bin. Bin ich blöd....

                    Zwischen den beiden oben angegebenen Zeilen muss sich der Datenpunkt geändert haben. Dementsprechend muss es auch einen Eintrag dazu im Log geben. Kannst du bitte mal auf der Log-Seite im Log schauen, nicht im am JS Editor angehängten Log ?

                    Zusätzlich hilft es wenn du auch vor dem SendTo einen log-Eintrag erzeugst, damit du rein im Log feststellen kannst das er da lang gegangen ist.

                    A.

                    C Offline
                    C Offline
                    Chrille1507
                    schrieb am zuletzt editiert von Chrille1507
                    #19

                    @Asgothian

                    Ich habe alle Daten aus dem Log und da hat gibt es keinen Eintrag. Ich bin wirklich jeden einzelnen Punkt (ich muss den Radar2-Adapter deaktivieren :face_with_rolling_eyes: ) durchgegangen.

                    Ich habe jetzt noch ein Log in meine Anwesenheitserfassung eingebaut. Das Skript sieht so aus

                    //Anwesenheit Peggy oder Christian
                    on({id: beideanwesenheit, change:"ne"}, function(obj) {
                        if (getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Peggy").val==true || getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian").val==true)
                        {
                            setState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy", true);
                            log('AnwesenheitBeide geändert auf ' + getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val);
                        } else {
                            setState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy", false);
                            log('AnwesenheitBeide geändert auf ' + getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val);
                            sendTo('telegram.0', {text: "Es ist niemand mehr zu Hause"});
                        };
                        log('AnwesenheitBeide geändert auf ' + getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val);
                    });
                    

                    Und jetzt auch mit den Anwesenheiten gespielt. Dazu gibt das Log folgendes aus:

                    
                    2020-11-04 09:10:10.556 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
                    2020-11-04 09:10:10.558 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
                    2020-11-04 09:10:10.558 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
                    2020-11-04 09:10:12.559 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
                    2020-11-04 09:10:12.559 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
                    
                    2020-11-04 09:10:32.531 - info: javascript.0 (12613) script.js.Alarmanlage.An-_und_Abwesenheit.Anwesenheiten: AnwesenheitBeide geändert auf false
                    2020-11-04 09:10:32.532 - info: javascript.0 (12613) script.js.Alarmanlage.An-_und_Abwesenheit.Anwesenheiten: AnwesenheitBeide geändert auf false
                    2020-11-04 09:10:32.538 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend was changed to true source = system.adapter.javascript.0
                    
                    2020-11-04 09:10:49.046 - info: javascript.0 (12613) script.js.Alarmanlage.An-_und_Abwesenheit.Anwesenheiten: AnwesenheitBeide geändert auf true
                    2020-11-04 09:10:49.047 - info: javascript.0 (12613) script.js.Alarmanlage.An-_und_Abwesenheit.Anwesenheiten: AnwesenheitBeide geändert auf true
                    2020-11-04 09:10:49.108 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend was changed to false source = system.adapter.javascript.0
                    
                    2020-11-04 09:11:03.046 - info: javascript.0 (12613) script.js.Alarmanlage.An-_und_Abwesenheit.Anwesenheiten: AnwesenheitBeide geändert auf false
                    2020-11-04 09:11:03.047 - info: javascript.0 (12613) script.js.Alarmanlage.An-_und_Abwesenheit.Anwesenheiten: AnwesenheitBeide geändert auf false
                    2020-11-04 09:11:03.098 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend was changed to true source = system.adapter.javascript.0
                    
                    2020-11-04 09:11:34.032 - info: javascript.0 (12613) script.js.Alarmanlage.An-_und_Abwesenheit.Anwesenheiten: AnwesenheitBeide geändert auf true
                    2020-11-04 09:11:34.034 - info: javascript.0 (12613) script.js.Alarmanlage.An-_und_Abwesenheit.Anwesenheiten: AnwesenheitBeide geändert auf true
                    2020-11-04 09:11:34.128 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend was changed to false source = system.adapter.javascript.0
                    
                    2020-11-04 09:11:57.086 - info: javascript.0 (12613) script.js.Alarmanlage.An-_und_Abwesenheit.Anwesenheiten: AnwesenheitBeide geändert auf false
                    2020-11-04 09:11:57.086 - info: javascript.0 (12613) script.js.Alarmanlage.An-_und_Abwesenheit.Anwesenheiten: AnwesenheitBeide geändert auf false
                    2020-11-04 09:11:57.138 - info: javascript.0 (12613) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend was changed to true source = system.adapter.javascript.0
                    
                    

                    Hier muss der Fehler stecken, ich konnte ihn aber bisher nicht finden.

                    1 Antwort Letzte Antwort
                    0
                    • C Offline
                      C Offline
                      Chrille1507
                      schrieb am zuletzt editiert von
                      #20

                      Ich habe nochmal am Skript für die Anwesenheit gearbeitet und werde jetzt erstmal folgende Einstellung testen:

                      //Anwesenheit Peggy oder Christian
                      on({id: beideanwesenheit, change:"ne"}, function(obj) {
                          let anwP = getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Peggy").val;
                          let anwC = getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian").val;
                          if (anwP==true || anwC==true)
                          {
                              setState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy", true);
                              log('AnwesenheitBeide geändert auf ' + '"' + getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val + '"');
                          } else {
                              setState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy", false);
                              log('AnwesenheitBeide geändert auf ' + '"' + getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val + '"');
                              sendTo('telegram.0', {text: "Es ist niemand mehr zu Hause"});
                          };
                          log('AnwesenheitBeide geändert auf ' + '"' + getState("0_userdata.0.Alarmanlage.Anwesenheit_Übersicht.Anwesenheit_Christian_und_Peggy").val + '"');
                      });
                      
                      1 Antwort Letzte Antwort
                      0
                      • C Offline
                        C Offline
                        Chrille1507
                        schrieb am zuletzt editiert von
                        #21

                        Kleines Update. Das Problem besteht weiterhin.

                        javascript.0	2020-11-04 11:36:33.932	info	(28278) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
                        javascript.0	2020-11-04 11:36:33.931	info	(28278) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: true Typ: boolean
                        javascript.0	2020-11-04 11:36:30.324	info	(28278) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
                        javascript.0	2020-11-04 11:36:30.324	info	(28278) script.js.Alarmanlage.Alarmanlage_ausgelöst: anwesend: false Typ: boolean
                        javascript.0	2020-11-04 11:36:30.319	info	(28278) script.js.Alarmanlage.Alarmanlage_ausgelöst: geschlossen: false Typ: boolean
                        
                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        762

                        Online

                        32.6k

                        Benutzer

                        82.0k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe