Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Problem beim umstellen von request auf axios

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    420

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    350

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    957

Problem beim umstellen von request auf axios

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
1 Beiträge 1 Kommentatoren 221 Aufrufe 2 Beobachtet
  • Ä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.
  • P Offline
    P Offline
    PrinzEisenherz1
    schrieb am zuletzt editiert von
    #1

    Hi zusammen,
    ich würde gerne meine Scripte wo ich mit request arbeite auf axios umstellen.
    Leider habe ich da schon bei meinen Kameras die ersten Probleme.

    Hier ist die Scriptvariante mit request die funktioniert

    var logging = false;
    
    var source_url = 'http://admin:Leon%23060911@192.168.122.16/snap.jpg'; 
    var dest_path = '/mnt/NAS/Bilder/GartenLinks/';
    var dest_path_tmp = '/mnt/NAS/Bilder/GartenLinks/tmp/';
    	
    var request = require('request');
    var fs      = require('fs');
    
    function sendImage (pfad, nachricht, notificationsound) {
    		sendTo('telegram.0', {text: pfad, caption: nachricht, disable_notification: notificationsound}); // disable_notification true ist an false ist aus
            if (logging) log('Webcam Bild per telegram verschickt');
    }
    // Datum und Uhrzeit ermitteln
    function timeLastData() {
        return formatDate(new Date(), "JJJJ-DD-MM_hh-mm-ss");
    }
    function timeRecord() {
        return formatDate(new Date(), "DD.MM.YYYY hh:mm");
    }
    
    // Bild speichern
    function saveImage() {
    
        request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
            fs.writeFile(dest_path_tmp + 'GartenLinks.jpg', body, 'binary', function(err) {
    			fs.createReadStream(dest_path_tmp + 'GartenLinks-1.jpg').pipe(fs.createWriteStream(dest_path + timeLastData() +"_GartenLinks.jpg"));
    				if (err) {
    					if (logging) log('Fehler beim Bild speichern: ' + err, 'warn');
    				} else {
    					if (logging) log('Kamerabild gespeichert');
    					sendImage(dest_path_tmp + 'GartenLinks.jpg', getState('javascript.0.Kameraaufnahmen.EventMessage').val, true);
    				}
    		}); 
        });
    
    }
    
    // bei Skriptstart ausführen
    saveImage();
    
    // selbständig Skript wieder anhalten (nach 10s)
    setStateDelayed('javascript.0.scriptEnabled.Kameras.Kamera_Garten_links', false, 10*1000);
    

    Das Script wird von aussen aktiviert, löst einen snapshot aus und deaktiviert sich nach 10 Sekunden wieder.
    Das Script speichert dabei auch ein Bild auf dem NAS mit datum Uhrzeit ab.

    Wenn ich jetzt das Script wie folgt auf axios umbaue

    var logging = false;
    const fs      = require('fs');
    const axios   = require('axios');
    const bild = '/tmp/kamerabild-gartenlinks.jpg';
    const source_url = 'http://admin:Leon%23060911@192.168.122.16/snap.jpg'; 
    
    function sendImage (pfad, nachricht, notificationsound) {
    		sendTo('telegram.0', {text: pfad, caption: nachricht, disable_notification: notificationsound}); // disable_notification true ist an false ist aus
            if (logging) log('Webcam Bild per telegram verschickt');
    }
    
    async function saveImage() {
        const writer = fs.createWriteStream(bild);
        try {
            const response = await axios({
                url: source_url,
                method: 'get',        
                responseType: 'stream'
            })
        
            response.data.pipe(writer);
     
            return new Promise((resolve, reject) => {
                writer.on('finish', resolve => {
    				fs.createReadStream(bild).pipe(fs.createWriteStream(dest_path + timeLastData() +"_GatenLinks.jpg"));
    				sendImage(bild, getState('javascript.0.Kameraaufnahmen.EventMessage').val, true);
                });        
            });   
        } catch (err) {
            console.log('Kamera hat ein problem', true);
        }
    }
    
    // bei Skriptstart ausführen
    saveImage();
    
    // selbständig Skript wieder anhalten (nach 10s)
    setStateDelayed('javascript.0.scriptEnabled.Kameras.Kamera_Garten_links', false, 10*1000);
    

    dann geht das Script nicht mehr.
    Im log kommt dann "Kamera hat ein Problem"
    Bei den anderen Kameras klappt die Umstellung, aber nur nicht bei der.
    Die Cam ist eine ieGeek 510.
    Die anderen sind Foscam und Reolink.
    Hat vielleicht jemand eine idee?

    Gruß
    Johnny

    Intel-NUC mit ProxMox: ioBroker,SQL, logging Strom- Gas- u. Wasserzähler;10Zoll Tab im Flur für VIS; weiteres: Homematic CCU2, Homeduino, Kameras, selbstgebaute Wetterstation;

    1 Antwort Letzte Antwort
    0

    Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

    Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

    Mit deinem Input könnte dieser Beitrag noch besser werden 💗

    Registrieren Anmelden
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen


    Support us

    ioBroker
    Community Adapters
    Donate

    600

    Online

    32.8k

    Benutzer

    82.8k

    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