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. Gelöst: Scriptumbau mit HttpGet...schon wieder

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

Gelöst: Scriptumbau mit HttpGet...schon wieder

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
3 Beiträge 2 Kommentatoren 259 Aufrufe 1 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.
  • M Offline
    M Offline
    michihorn
    schrieb am zuletzt editiert von michihorn
    #1

    Moin
    ich lese eifrig zum Thema HttpGet, doch leider klappt es nicht.
    Ich will einer Kamera einen Snapshot abverlangen.

    /*****Haustür Klingel******************************************************************************
    **    August 2020
    **    RING, Kamera
    **    
    **    Klingelsperre 80 Sekunden
    **    geä:21.09.20, 17.06.22, 20.10.22, 01.07.23; 18.07.23; 01.08.23, 06.10.23, 29.04.24, 08.10.24
    ***************************************************************************************************/
    
    const idKlingel = "ring.0.doorbell_90474299.Events.doorbell"
    const id_Ereignis = "0_userdata.0.Haus.Klingel.Ereignis"
    const id_Ereignisliste = "0_userdata.0.Haus.Klingel.Ereignisliste"
    const id_Zähler = "0_userdata.0.Haus.Klingel.Zaehler"
    const id_sperre = "0_userdata.0.Haus.Klingel.Sperre"
    const id_people = "0_userdata.0.System.CamNr"
    const id_rp5 = "ping.0.debianiob.RP5.alive"
    var anzahlbesucher
    
    on({ id: idKlingel, change: "any" }, function (obj) {
        if (obj.state.val == true)  {
            setState(id_sperre, true)
            setState(id_Zähler, getState(id_Zähler).val + 1);
            var ereignis_text = formatDate(new Date(obj.state.ts), "hh:mm:ss");
            setState(id_Ereignis, ereignis_text.toString());
            log('Klingel Auslöser: ' + formatDate(new Date(obj.state.ts), "hh:mm:ss"));
            httpGet('http://192.168.178.124/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=xxxxxx', (err, reponse) => {
                if (err) {
                    console.error(err);
                } else if (response.statusCode == 200) {
                    const resObj = JSON.parse(response.data);
                    writeFile("vis.0", "/klingelbild/Klingel.jpg", body);
                }
            }
            );
        }
    });
    
    //Ereignisliste erstellen___________________________________________________________________________________________________
    function ereignis(text) {
        text = text.toString();
        var ereignisStr = getState(id_Ereignisliste).val;
        var ereignisArr;
    
        if (ereignisStr) {
            if (ereignisStr == "<ul><li></li></ul>") {
                ereignisArr = [];
            } else {
                ereignisArr = ereignisStr.replace(/<ul><li>/, "").replace(/<\/li><\/ul>/, "").split("</li><li>");
            }
        } else {
            ereignisArr = [];
        }
        ereignisArr = ereignisArr.reverse();
        ereignisArr.push(text);
        ereignisArr.reverse().splice(20); // Liste auf 20 Einträge beschränken
        var str = ereignisArr.join("</li><li>");
        setState(id_Ereignisliste, "<ul><li>" + str + "</li></ul>");
    }
    on(id_Ereignis, function (data) {
        log('Ereignis ' + data.newState.val + ' übergeben');
        ereignis(data.newState.val);
    });
    
    //Ereignisse zurücksetzen
    on({ time: { hour: 23, minute: 59 } }, function () {
        setState(id_Zähler, 0);
        setState(id_Ereignis, "");
        setState(id_Ereignisliste, "");
        anzahlbesucher = 0;
        log("*****Klingelereignisse gelöscht***** ");
    });
    
    

    Bitte um Unterstützung
    Michael

    paul53P 1 Antwort Letzte Antwort
    0
    • M michihorn

      Moin
      ich lese eifrig zum Thema HttpGet, doch leider klappt es nicht.
      Ich will einer Kamera einen Snapshot abverlangen.

      /*****Haustür Klingel******************************************************************************
      **    August 2020
      **    RING, Kamera
      **    
      **    Klingelsperre 80 Sekunden
      **    geä:21.09.20, 17.06.22, 20.10.22, 01.07.23; 18.07.23; 01.08.23, 06.10.23, 29.04.24, 08.10.24
      ***************************************************************************************************/
      
      const idKlingel = "ring.0.doorbell_90474299.Events.doorbell"
      const id_Ereignis = "0_userdata.0.Haus.Klingel.Ereignis"
      const id_Ereignisliste = "0_userdata.0.Haus.Klingel.Ereignisliste"
      const id_Zähler = "0_userdata.0.Haus.Klingel.Zaehler"
      const id_sperre = "0_userdata.0.Haus.Klingel.Sperre"
      const id_people = "0_userdata.0.System.CamNr"
      const id_rp5 = "ping.0.debianiob.RP5.alive"
      var anzahlbesucher
      
      on({ id: idKlingel, change: "any" }, function (obj) {
          if (obj.state.val == true)  {
              setState(id_sperre, true)
              setState(id_Zähler, getState(id_Zähler).val + 1);
              var ereignis_text = formatDate(new Date(obj.state.ts), "hh:mm:ss");
              setState(id_Ereignis, ereignis_text.toString());
              log('Klingel Auslöser: ' + formatDate(new Date(obj.state.ts), "hh:mm:ss"));
              httpGet('http://192.168.178.124/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=xxxxxx', (err, reponse) => {
                  if (err) {
                      console.error(err);
                  } else if (response.statusCode == 200) {
                      const resObj = JSON.parse(response.data);
                      writeFile("vis.0", "/klingelbild/Klingel.jpg", body);
                  }
              }
              );
          }
      });
      
      //Ereignisliste erstellen___________________________________________________________________________________________________
      function ereignis(text) {
          text = text.toString();
          var ereignisStr = getState(id_Ereignisliste).val;
          var ereignisArr;
      
          if (ereignisStr) {
              if (ereignisStr == "<ul><li></li></ul>") {
                  ereignisArr = [];
              } else {
                  ereignisArr = ereignisStr.replace(/<ul><li>/, "").replace(/<\/li><\/ul>/, "").split("</li><li>");
              }
          } else {
              ereignisArr = [];
          }
          ereignisArr = ereignisArr.reverse();
          ereignisArr.push(text);
          ereignisArr.reverse().splice(20); // Liste auf 20 Einträge beschränken
          var str = ereignisArr.join("</li><li>");
          setState(id_Ereignisliste, "<ul><li>" + str + "</li></ul>");
      }
      on(id_Ereignis, function (data) {
          log('Ereignis ' + data.newState.val + ' übergeben');
          ereignis(data.newState.val);
      });
      
      //Ereignisse zurücksetzen
      on({ time: { hour: 23, minute: 59 } }, function () {
          setState(id_Zähler, 0);
          setState(id_Ereignis, "");
          setState(id_Ereignisliste, "");
          anzahlbesucher = 0;
          log("*****Klingelereignisse gelöscht***** ");
      });
      
      

      Bitte um Unterstützung
      Michael

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

      @michihorn sagte: Bitte um Unterstützung

      Zeile 30: body?

      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

      M 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @michihorn sagte: Bitte um Unterstützung

        Zeile 30: body?

        M Offline
        M Offline
        michihorn
        schrieb am zuletzt editiert von michihorn
        #3

        @paul53 Das ist ein Relikt aus dem HTTP Request und dem alten Adapter, sollte wohl jetzt "response.data" heissen, oder?

        Die Kurzform sieht jetzt so aus und klappt.

        const idKlingel = "ring.0.doorbell_90474299.Events.doorbell"
        
        on({ id: idKlingel, change: "any" }, function (obj) {
            if (obj.state.val == true) {
                httpGet('http://192.168.178.xx/cgi-bin/api.cgi?cmd=Snap&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=rxxxxx', { responseType: 'arraybuffer' }, async (err, response) => {
                    if (!err) {
                        writeFile('vis.0', '/klingelbild/Klingel.jpg', response.data, (err) => {
                            if (err) {
                                console.error(err);
                            }
                        });
                    } else {
                        console.error(err);
                    }
                });
            }
        });
        
        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

        892

        Online

        32.4k

        Benutzer

        81.5k

        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