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. ioBroker Allgemein
  4. Befehl and Kamera absenden

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    2
    1
    12

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

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

Befehl and Kamera absenden

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
7 Beiträge 3 Kommentatoren 1.2k 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.
  • R Offline
    R Offline
    RaBu
    schrieb am zuletzt editiert von
    #1

    Kann mir jemand sagen wie basierend auf einem Status eines I/Os einen Befehl wie diesen

    http://<user>:<pwd>@192.168.1.23/cgi-bin/configManager.cgi?action=setConfig&MotionDetect[0].Enable=true</pwd></user>
    

    absenden kann?

    Ich benutzte die Vis-App - evtl hat das Bedeutung (man hat mir gesagt, dass dies ein Cross Site Scripting wäre und einige Browser dieses blockieren).

    Hintergrund ist, dass ich, basierend auf meinem Alarmanlagenstatus (Scharf/Unscharf), an meiner Überwachungskamera die Bewegungserkennung einschalten möchte.

    Vielen Dank

    /RaBu

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      pix
      schrieb am zuletzt editiert von
      #2

      Hallo, versuche es so:

      function setMotionDetection(status) {
          var url_pass = 'user:password', // Bitte anpassen (ohne Häkchen)
              url_ip = '192.168.1.23', // IP der Webcam
              url_cmd = '/cgi-bin/configManager.cgi?action=setConfig&MotionDetect[0].Enable=',
              url = 'http://' + url_pass + '@' + url_ip + url_cmd,
              request = require('request');
          request(url+status, function (err, state, body){
              if (body) log('Bewegungserkennung auf <'+ status + '> geschaltet');
              else log('Fehler bei Steuerung der Bewegungserkennung', 'warn');  
          });    
      }
      
      var idAlarmanlage = "javascript.0......" // ID des Datenpuktes Alarmanlage eintragen (sollte boolean typ sein)
      
      on(idAlarmanlage, function (data) {
          var status = (data.state.val || data.state.val === 'scharf' || data.state.val == 1 || data.state.val === '1') ? true : false;
          log('Alarmanlage sendet Befehl <' + status + '> zur Steuerung der Bewegungserkennung der Kamera');
          setMotionDetection(status);
      });
      

      Kann sein, dass man den String url_cmd wegen der eckigen Klammer http://meyerweb.com/eric/tools/dencoder/ muss.

      Dann Zeile fünf so:

      url_cmd = '%2Fcgi-bin%2FconfigManager.cgi%3Faction%3DsetConfig%26MotionDetect%5B0%5D.Enable%3D',
      
      

      Gruß

      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Antwort Letzte Antwort
      0
      • R Offline
        R Offline
        RaBu
        schrieb am zuletzt editiert von
        #3

        Hallo Pix,

        super, vielen Dank.

        Noch bin ich nicht ganz am Ziel - es sieht so aus, als ob der Status nun richtig in Abhängigkeit vom Datenpunkt "hm-rega.0.1802.Active" gesendet wird, allerdings wird im Log nicht der Status nicht richtig gezeigt,.. was ist hier falsch?

        Die Variante mit

        //var idAlarmanlage = "javascript.0.hm-rega.0.1802.Active" // ID des Datenpuktes Alarmanlage eintragen (sollte boolean typ sein)
        
        

        funktioniert leider nicht.

        function setMotionDetection(status) {
            var url_pass = 'user:pwd', // Bitte anpassen 
                url_ip = '192.168.1.23', // IP der Webcam
                url_cmd = '/cgi-bin/configManager.cgi?action=setConfig&MotionDetect[0].Enable=',
                url = 'http://' + url_pass + '@' + url_ip + url_cmd,
                request = require('request');
            request(url+status, function (err, state, body){
                if (body) log('Bewegungserkennung auf <'+ status + '> geschaltet');
                else log('Fehler bei Steuerung der Bewegungserkennung', 'warn');  
            });    
        }
        
        var idAlarmanlage = "hm-rega.0.1802.Active" // ID des Datenpuktes Alarmanlage eintragen (sollte boolean typ sein)
        
        on(idAlarmanlage, function (data) {
            var status = (data.state.val || data.state.val === 'scharf' || data.state.val == 1 || data.state.val === '1') ? true : false;
            log('Alarmanlage sendet Befehl <' + status + '> zur Steuerung der Bewegungserkennung der Kamera');
            setMotionDetection(status);
        });
        
        

        Nochmals herzlichen Dank!

        Gruß

        RaBu

        1 Antwort Letzte Antwort
        0
        • R Offline
          R Offline
          RaBu
          schrieb am zuletzt editiert von
          #4

          Hallo Pix,

          hier noch das Log dazu:

          
          16:43:43.101	[info]	javascript.0 Stop script script.js.SetMotionDetect
          16:43:44.846	[info]	javascript.0 Start javascript script.js.SetMotionDetect
          16:43:44.848	[info]	javascript.0 script.js.SetMotionDetect: subscribe: {"pattern":{"id":"hm-rega.0.1802.Active","change":"ne"},"name":"script.js.SetMotionDetect"}
          16:43:44.848	[info]	javascript.0 script.js.SetMotionDetect: registered 1 subscription and 0 schedules
          16:44:29.068	[info]	javascript.0 script.js.SetMotionDetect: Alarmanlage sendet Befehl zur Steuerung der Bewegungserkennung der Kamera
          16:44:29.351	[info]	javascript.0 script.js.SetMotionDetect: Bewegungserkennung auf geschaltet
          16:44:38.487	[info]	javascript.0 script.js.SetMotionDetect: Alarmanlage sendet Befehl zur Steuerung der Bewegungserkennung der Kamera
          16:44:39.073	[info]	javascript.0 script.js.SetMotionDetect: Bewegungserkennung auf geschaltet
          
          

          Wie DU siehst wird der Status nicht angezeigt.

          Gruß

          /RaBu

          1 Antwort Letzte Antwort
          0
          • P Offline
            P Offline
            pix
            schrieb am zuletzt editiert von
            #5

            @RaBu:

            Hallo Pix,

            super, vielen Dank.

            Noch bin ich nicht ganz am Ziel - es sieht so aus, als ob der Status nun richtig in Abhängigkeit vom Datenpunkt "hm-rega.0.1802.Active" gesendet wird, allerdings wird im Log nicht der Status nicht richtig gezeigt,.. was ist hier falsch?

            Die Variante mit

            //var idAlarmanlage = "javascript.0.hm-rega.0.1802.Active" // ID des Datenpuktes Alarmanlage eintragen (sollte boolean typ sein)
            
            

            funktioniert leider nicht. `
            Das wär auch doppelt. Ich wusste nicht, dass die Alarmanlage in HM liegt. ist das eine Homematic Boolean Variable? Oder Werteliste?

            So wie du es weiter unten im Code benutzt hast ist es richtig. Allerdings fehl da noch das Semikolon am Ende der Zeile:

            var idAlarmanlage = "hm-rega.0.1802.Active";
            

            Ändere mal die Subscription am Ende um noch eine weitere Information zu erhalten:````
            on(idAlarmanlage, function (data) {
            var status = (data.state.val || data.state.val === 'scharf' || data.state.val == 1 || data.state.val === '1') ? true : false;
            log('Alarmanlage sendet Befehl <' + status + '> vom Typ ' + typeof data.state.val + ' zur Steuerung der Bewegungserkennung der Kamera');
            setMotionDetection(status);
            });

            
            Gruß
            
            Pix

            ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

            1 Antwort Letzte Antwort
            0
            • Y Offline
              Y Offline
              ykuendig
              schrieb am zuletzt editiert von
              #6

              Es werden auch die kleiner / grösser Zeichen um den Status nicht angezeigt.

              Gruss Yves

              1 Antwort Letzte Antwort
              0
              • R Offline
                R Offline
                RaBu
                schrieb am zuletzt editiert von
                #7

                Pix,

                es handelt sich bei dem Datenpunkt (hm-rega.0.1802.Active) der ein Script in der CCU2 aktiviert/deaktiviert. Ich habe in vis einen Button mit dem ich dann das Script "Anwesenheitssimulation" aktiviere oder deaktiviere. Im Endausbau hängt dieses dann auch am Alarmanlagenstatus.

                Ich habe jetzt das ";" ergänzt und die Subscription geändert, wie Du gesagt hast, allerdings ändert das nichts an der Ausgabe.

                Der Hinweis von ykundig hat dann geholfen…

                Die Zeile 7 hat jetzt nach dem "<" und vor dem ">" ein Leerzeichen.

                        if (body) log('Bewegungserkennung auf < ' + status + ' > geschaltet');
                
                

                Damit wird im log der Status richtig angezeigt:

                17:59:51.366	[info]	javascript.0 script.js.SetMotionDetect: Bewegungserkennung auf < true > geschaltet
                17:59:53.093	[info]	javascript.0 script.js.SetMotionDetect: Alarmanlage sendet Befehl vom Typ boolean zur Steuerung der Bewegungserkennung der Kamera
                17:59:53.390	[info]	javascript.0 script.js.SetMotionDetect: Bewegungserkennung auf < false > geschaltet
                
                

                Ich weiss nicht weshalb, aber so funktioniert es, evtl. ein Problem mit dem Parser?

                Vielen Dank an Euch Beide!

                Schönen Gruß

                /RaBu

                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
                FAQ Cloud / IOT
                HowTo: Node.js-Update
                HowTo: Backup/Restore
                Downloads
                BLOG

                585

                Online

                32.7k

                Benutzer

                82.4k

                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