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. Alarmanlage / Kamera Skript verursacht Fehler und bringt JS zum Absturz?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Alarmanlage / Kamera Skript verursacht Fehler und bringt JS zum Absturz?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 3 Kommentatoren 960 Aufrufe
  • Ä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.
  • T Offline
    T Offline
    tempestas
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    aus mir unbegreiflichen Gründen finde ich im Log folgendes:

    ! host.iobrokerNUC 2018-04-30 14:17:13.185 error instance system.adapter.javascript.0 terminated with code 0 (OK) host.iobrokerNUC 2018-04-30 14:17:13.185 error Caught by controller[1]: code: 'ECONNRESET' } host.iobrokerNUC 2018-04-30 14:17:13.185 error Caught by controller[1]: at TCP._handle.close [as _onclose] (net.js:497:12) host.iobrokerNUC 2018-04-30 14:17:13.185 error Caught by controller[1]: at Socket.emit (events.js:188:7) host.iobrokerNUC 2018-04-30 14:17:13.185 error Caught by controller[1]: at emitOne (events.js:101:20) host.iobrokerNUC 2018-04-30 14:17:13.184 error Caught by controller[1]: at Socket.socketCloseListener (_http_client.js:286:23) host.iobrokerNUC 2018-04-30 14:17:13.184 error Caught by controller[1]: at createHangUpError (_http_client.js:254:15) host.iobrokerNUC 2018-04-30 14:17:13.184 error Caught by controller[1]: { Error: socket hang up host.iobrokerNUC 2018-04-30 14:17:13.184 error Caught by controller[0]: port: 80 } host.iobrokerNUC 2018-04-30 14:17:13.184 error Caught by controller[0]: address: '192.168.2.22', host.iobrokerNUC 2018-04-30 14:17:13.184 error Caught by controller[0]: syscall: 'connect', host.iobrokerNUC 2018-04-30 14:17:13.184 error Caught by controller[0]: errno: 'EHOSTUNREACH', host.iobrokerNUC 2018-04-30 14:17:13.184 error Caught by controller[0]: code: 'EHOSTUNREACH', host.iobrokerNUC 2018-04-30 14:17:13.183 error Caught by controller[0]: at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14) host.iobrokerNUC 2018-04-30 14:17:13.183 error Caught by controller[0]: at exports._exceptionWithHostPort (util.js:1043:20) host.iobrokerNUC 2018-04-30 14:17:13.183 error Caught by controller[0]: at Object.exports._errnoException (util.js:1020:11) host.iobrokerNUC 2018-04-30 14:17:13.182 error Caught by controller[0]: { Error: connect EHOSTUNREACH 192.168.2.22:80 !

    wobei die IP die meiner Instar Camera ist.

    Selbige hängt an einer Osram Smartplug, die nur eingeschaltet wird, wenn die Kamera aktiv sein soll, d.h. die Einstellung ist entsprechend und ich habe die Alarmanlage aktiv.

    Mein Kamera-Skript sieht so aus:

    ! ````
    // ##############################################################################################################
    // # Skript löst Alarm auf Instar HD 6001 aus, wobei als trigger ein beliebiges Element genutzt werden kann #
    // # Zudem Einstellungen via Vis möglich. Grundsätzliche Reaktion nach Alarm wird durch Cam ausgeführt #
    // # Simple API Adapter muss installiert sein #
    // ##############################################################################################################
    ! // BEACHTEN: Offiziell hat die Instar HD 6001 keinen externen i/o Alarm. Jedoch ist dieser softwareseitig ansprechbar mit leicht geänderten Parametern
    // https://forum.instar.de/forum/allgemeines-talkroom/scripts-programmierung/2723-alarm-erzwingen
    ! /* Aktivieren = setioattr&-io_enable=1&-io_flag=0
    Deaktivieren = setioattr&-io_enable=0&-io_flag=0
    ! http://ip-adresse/cgi-bin/hi3510/param.cgi?cmd=setioattr&-io_enable=1&-io_flag=0
    http://ip-adresse/cgi-bin/hi3510/param.cgi?cmd=setioattr&-io_enable=0&-io_flag=0
    ! https://wikiold.instar.de/index.php/HD_CGI_Commands_-_Set_Alarm_Input_Output_Attribute
    ! io_enable: Enable or Disable IO Alarm-in (1,0)
    io_flag: IO Alarm mode 0 (close), 1 (open)
    ! https://wikiold.instar.de/index.php/HD_Kamera_CGIs_Alarm_Actions
    ! */
    ! // ############ SKRIPT EINSTELLUNGE ############
    ! var debug = false;
    var force = true;
    ! var request = require('request');
    ! // States anlegen für VIS Einstellungen
    ! createState('Alarmanlage.Kameras.Trigger', false, force, {
    read: true,
    write: true,
    name: "Trigger",
    type: "boolean",
    def: false
    });
    ! createState('Alarmanlage.Kameras.Ausgeloest', false, force, {
    read: true,
    write: true,
    name: "Trigger",
    type: "boolean",
    def: false
    });
    ! createState('Alarmanlage.Kameras.Email', true, force, {
    read: true,
    write: true,
    name: "Kameras senden Email yes/no",
    type: "boolean",
    def: false
    });
    ! createState('Alarmanlage.Kameras.Email.PicCount',8, force, {
    name: 'Kamera Email Bilder',
    type: 'number',
    min: '1',
    max: '8',
    desc: 'Wieviele Bilder sollen per E-Mail gesendet werden'
    });
    ! createState('Alarmanlage.Kameras.FTP', true, force, {
    read: true,
    write: true,
    name: "Kameras senden an FTP yes/no",
    type: "boolean",
    def: false
    });
    ! createState('Alarmanlage.Kameras.FTP.PicCount',8, force, {
    name: 'Kamera FTP Bilder',
    type: 'number',
    min: '1',
    max: '8',
    desc: 'Wieviele Bilder sollen an FTP gesendet werden'
    });
    ! // Variablen und IDs
    ! var idMotion = "hm-rpc.1.000C17099A0019.1.PRESENCE_DETECTION_STATE";
    var idMotionreset = "hm-rpc.1.000C17099A0019.1.RESET_PRESENCE"/Präsenzmelder Wohnzimmer:1.RESET_PRESENCE/;
    var trigger = 'javascript.0.Alarmanlage.Kameras.Trigger';
    var ausgeloest = 'javascript.0.Alarmanlage.Kameras.Ausgeloest';
    var idKamerasAktiv = 'javascript.0.Alarmanlage.Kameras';
    ! // Trigger Alarmauslösung
    ! on({id:idMotion, change: "any", val: true},function(){
    if(getState(idKamerasAktiv).val == 1) {
    camAlarm();
    setState(ausgeloest, true);
    setStateDelayed(idMotionreset, true, 80000);
    setStateDelayed(idMotionreset, false, 82000);
    if(debug) log("Alarm ausgelöst");
    }
    });
    ! // Trigger Alarmberuhigung
    ! on({id:idMotion, change: "any", val: false}, function(){
    if(getState(idKamerasAktiv).val == 1) camCalm();
    });
    ! // Functions
    ! function camAlarm(){

    request.get('http://xxxxxxx:xxxxxxxxxxxx@192.168.2.22/cgi-bin/hi3510/param.cgi?cmd=setioattr&-io_enable=1&-io_flag=0');             // öffnet manuell den Alarm "strom"Kreislauf
    

    ! }
    ! function camCalm(){
    request.get('http://xxxxxxxxr:xxxxxxxxxxx@192.168.2.22/cgi-bin/hi3510/param.cgi?cmd=setioattr&-io_enable=0&-io_flag=0');
    setState(ausgeloest, false);
    }
    !

    
    Über mein eigentliches Alarmanlagen-Skript wird die Kamerasteckdose eingeschaltet, sofern eben die Einstellung so ist und die Alarmanlage scharf geschaltet wird.
    
    Jemand eine Idee, was da die Fehler auslöst und wieso? Die Fehler treten auch auf, wenn die Einstellungen zwar "aktiv" sind, die Alarmanlage selbst aber nicht.
    
    Bislang gab es diese Fehler nicht.

    <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

    1 Antwort Letzte Antwort
    0
    • BuZZyB Offline
      BuZZyB Offline
      BuZZy
      schrieb am zuletzt editiert von
      #2
      connect EHOSTUNREACH 192.168.2.22:80
      

      Heißt soviel wie 192.168.2.22:80 ist nicht erreichbar.

      Ist 192.168.2.22 sicher die richtige IP Adresse?

      Befindet sich dein ioBroker eventuell in einem anderen Subnet/Adressbereich?

      Gruß

      1 Antwort Letzte Antwort
      0
      • Ralla66R Offline
        Ralla66R Offline
        Ralla66
        Most Active
        schrieb am zuletzt editiert von
        #3

        Im Log steht ja 192.168.2.22:80.

        Ist die Cam auf Port 80 zu erreichen ?

        Meine Cam brauchen ungfähr 15 sec nach Stromzufuhr bis diese im Netz stehen.

        Ralla

        1 Antwort Letzte Antwort
        0
        • BuZZyB Offline
          BuZZyB Offline
          BuZZy
          schrieb am zuletzt editiert von
          #4

          Port 80 ist der Standard http Port.. Das sollte also definitiv korrekt sein..

          Gruß

          1 Antwort Letzte Antwort
          0
          • Ralla66R Offline
            Ralla66R Offline
            Ralla66
            Most Active
            schrieb am zuletzt editiert von
            #5

            Keine Ahnung vom Proggen,

            aber wie holst du den Status ab ob die Kamera Online ist ?

            Einmalig hier aus dem Aktivierungsmodus der Alarmanlage.

            Was wäre bei Verbindungsverlust der Cam ?

            Bevor ein Befehl gesendet wird würde ich prüfen ob die Cam Online ist.

            Wenn ja, Befehl senden, wenn nicht prüfe in X sec noch einmal.

            Dein Script läuft, der Controller versucht immer wieder deine Cam

            zu erreichen die ja nicht Online ist und läuft praktisch in einer Schleife.

            Wenn die Camera aktiviert wird / Strom ein würde ich ein Delay setzen.

            Macht ja keinen Sinn eine Camera die nicht im Netz steht anzusprechen.

            Ralla

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              tempestas
              schrieb am zuletzt editiert von
              #6

              Danke für eure Antworten.

              Die Frage für mich ist ja:

              warum kommt es zu diesem Fehler? Die Kamera soll ja ggf. gar nicht erreichbar sein (Strom aus). Die IP ist korrekt, eben nochmal in der FritzBox nachgesehen. Wieso stürzt JS ab, bloss weil eine Kamera aus ist? Die ist ja immer aus; das Problem tritt auf, wenn ich meine Alarmanlage von "nur Bewegungsmelder" auf "Bewegungsmelder und Kamera" umschalte, und zwar unabhängig davon, ob die Alarmanlage an ist (dann geht die Steckdose an) oder nicht (Steckdose aus).

              Ich muss wohl nochmal tief reinschauen, aber aktuell habe ich keinen Ansatz.

              Edit: ich habe es glaube ich gerade gefunden!

              hier

              // Trigger Alarmberuhigung
              
              on({id:idMotion, change: "any", val: false}, function(){
                  if(getState(idKamerasAktiv).val == 1) camCalm();   
              });
              

              muss es denke ich heißen:

              on({id:idMotion, change: "any", val: false}, function(){
                  if(getState(idKamerasAktiv).val == 1 && ausgeloest) camCalm();   
              });
              

              Da dürfte das verzweifelte Suchen nach der Kamera hergekommen sein. Denn ich habe neu eingebaut , dass die BWM an sien können, ohne dass die Kamera an ist (also quasi innenüberwachung zweistufig).

              Das werde ich mal testen

              <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

              1 Antwort Letzte Antwort
              0
              • Ralla66R Offline
                Ralla66R Offline
                Ralla66
                Most Active
                schrieb am zuletzt editiert von
                #7

                Das kann ja nur an der Verkasperung hier drin liegen:

                Bewegungsmelder und Kamera.

                Nichts des so Trotz würde ich immer den Status der Cam Offline / Online abfragen.

                Früher oder später stolpers du wieder daüber.

                Ralla

                1 Antwort Letzte Antwort
                0
                • BuZZyB Offline
                  BuZZyB Offline
                  BuZZy
                  schrieb am zuletzt editiert von
                  #8

                  Dein Script versucht zu einem Zeitpunkt die cam zu erreichen, wo sie aber noch nicht erreichbar ist.

                  Du kannst mit "try catch" den Fehler abfangen und entsprechend reagieren: wenn Fehler auftritt dann in 10 Sekunden nochmal probieren. Oder ähnlich.

                  Gruß

                  1 Antwort Letzte Antwort
                  0
                  • Ralla66R Offline
                    Ralla66R Offline
                    Ralla66
                    Most Active
                    schrieb am zuletzt editiert von
                    #9

                    if(getState(idKamerasAktiv).val == 1)

                    val == 1 wird wie gebildet ?

                    Hier den Status der Cam vor Aktionsauslösung durchführen.

                    val == 1 ist wenn Camera Online.

                    Definiere mal im Programm Online / Offline.

                    Erst dadurch soll ja ein Script ausgeführt werden.

                    Offline macht ja keinen Sinn.

                    So wie BuZZy das schrieb, wieder probieren.

                    Solltest du nach X Sek kein Erfolg haben Error Code generieren.

                    Ralla

                    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

                    713

                    Online

                    32.6k

                    Benutzer

                    82.3k

                    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