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
    15
    1
    834

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

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

    @Homoran sagte:

    setz mal "true" in Anführungszeichen (und alle boolschen Werte)

    Das meinst Du nicht ernst ?

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von Homoran
    #6

    @paul53 Hab mich schon korrigiert (wohl nicht schnell genug ;-) ) - das war der "Fehler" bei Bindings in vis

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • C Chrille1507

      Hallo liebe Foristen,

      ich komme mit einem (für mich) dringenden Problem zu euch.
      Seit vorgestern reagiert ein Skript anders und macht es damit für mich unbrauchbar. Ich habe schon diverse Versionen des Javascript-Adapters getestet (von 4.9.0 bis 4.9.8).
      Ich hoffe ihr könnt mir helfen.

      Zum Skript, falls die Anwesenheit auf false steht und der Datenpunkt "Türkontakte" auf false wechselt (sprich eine Tür geht auf), soll die Alarmanlage ausgelöst werden.
      Das hat immer bestens funktioniert aber seit gestern löst die Alarmanlage auch aus, wenn wir zu Hause sind, sprich Anwesenheit = true.

      Habt ihr eine Idee, was das Problem sein kann?

      Anbei das Skript, sowie ein Debug-Ausdruck vom Skript.

      Debug_02112020_1519.txt
      Skript_Alarmanlage.txt

      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #7

      @Chrille1507
      ist da ein Haken drinn ? (Schraubenschlüssel anklicken)

      Bildschirmfoto 2020-11-02 um 18.36.06.png

      Bildschirmfoto 2020-11-02 um 18.36.12.png

      setForeignState(id=0_userdata.0.Alarmanlage.Alarmanlage_ausgelöst, state=true) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
      
      C 1 Antwort Letzte Antwort
      0
      • C Chrille1507

        Hallo liebe Foristen,

        ich komme mit einem (für mich) dringenden Problem zu euch.
        Seit vorgestern reagiert ein Skript anders und macht es damit für mich unbrauchbar. Ich habe schon diverse Versionen des Javascript-Adapters getestet (von 4.9.0 bis 4.9.8).
        Ich hoffe ihr könnt mir helfen.

        Zum Skript, falls die Anwesenheit auf false steht und der Datenpunkt "Türkontakte" auf false wechselt (sprich eine Tür geht auf), soll die Alarmanlage ausgelöst werden.
        Das hat immer bestens funktioniert aber seit gestern löst die Alarmanlage auch aus, wenn wir zu Hause sind, sprich Anwesenheit = true.

        Habt ihr eine Idee, was das Problem sein kann?

        Anbei das Skript, sowie ein Debug-Ausdruck vom Skript.

        Debug_02112020_1519.txt
        Skript_Alarmanlage.txt

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #8

        @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 ?

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        C 2 Antworten Letzte Antwort
        0
        • dslraserD dslraser

          @Chrille1507
          ist da ein Haken drinn ? (Schraubenschlüssel anklicken)

          Bildschirmfoto 2020-11-02 um 18.36.06.png

          Bildschirmfoto 2020-11-02 um 18.36.12.png

          setForeignState(id=0_userdata.0.Alarmanlage.Alarmanlage_ausgelöst, state=true) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
          
          C Offline
          C Offline
          Chrille1507
          schrieb am zuletzt editiert von
          #9

          @dslraser

          Normalerweise nicht. Hatte ich nur um das Debug zu erstellen (Siehe erster Beitrag)

          1 Antwort Letzte Antwort
          0
          • 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
            #10

            @paul53
            Danke für den Hinweis, das werde ich mir angewöhnen.
            Ja der Datenpunkt stimmt und funktioniert ansonsten wunschgemäß.

            1 Antwort Letzte Antwort
            0
            • 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

                                  863

                                  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