Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. IPCam FI9928P Position nach Astro http Request

NEWS

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

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

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

IPCam FI9928P Position nach Astro http Request

IPCam FI9928P Position nach Astro http Request

Scheduled Pinned Locked Moved JavaScript
32 Posts 2 Posters 2.2k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • smartboartS Offline
    smartboartS Offline
    smartboart
    wrote on last edited by smartboart
    #1

    Threatumzug: im Growatt Threat driftetetn wir in Richtung Foscam ab. Deshalb hier ein Threat dazu. Hintergrund war eine Skriptanfrage dazu.

    • smartboart 02.12.19 V0.04 weiteres Loglevel implementiert und Logik Scriptstart überarbeitet - Tag / Nacht wird in den states gespeichert. bei erstmaliger Ausführung müssen die Zustände Tagesposition / Nachtposition stimmen. Spätestens beim nächsten Schedule( Astro Trigger ) stimmen die States dann automatisch. Sollte eigentlich reichen.

    • smartboart 02.12.19 V0.05 Unterteilung in Konfigurationsbereich / Variablen für Http Request hinzugefügt

    • smartboart 03.12.19 V0.06 8 Presets Hinzugefuegt und entsprechende states angelegt um diese ueber Vis anfahren zu koennen. Sowie eine Stoppfunktion eingebaut . Astro ueber ueber Vis aktivier / deaktivierbar force creation hinzugefügt und create state überarbeitet. automatische Kontrollfahrt / anfahren aller angelegten Presets hinzugefügt. aktivierbare und verweildauer einstellbar in vis

    • smartboart 04.12.19 V0.07 Const Bewegungsmelder und Klingel hinzugefügt, Funktion under construction.

    • smartboard 08.12.19 V0.08 Log Einträge ergänzt Und Fehler in Zeitberechnung Verweilzeit bei Kontrollfahrten beseitigt/ Vis Eingabe in Sekunden

    • smartboart 08.12.19 V0.09 Funktionen der Foscam hinzugefügt. wie z.B Preset Cruise Funktionen und manuelle Fahrbefehle , Geschwindigkeit und Cruisdauer usw.
      Achtung State Namen wurden geändert. ForceCreation ist aktiv. Gleichnamige States werden überschrieben neue angelegt. Am Besten alle States löschen und
      Skript 2 x starten.Anpassungen in Vis evtl erforderlich.
      Nicht alle States sind schon aktiv. diverse Funktionen noch nicht implementiert.
      Ich habe mich dazu entschlossen das Skript eher wie eine Art Adapter aufzubauen und diverse Komfortfunktionen zu integrieren, welche es in der Foscam
      Firmware nicht gibt. Ansosnten aber die Komforfunktionen der Kamera zu nutzen woes sinn macht. Deshalb die Überwahungsfahrt im Script entfernt und die der Kamera wird dann angesprochen.

    • smartboart 08.12.19 V0.10 Manuelle Fahrbefehle implementiert, Fahrgeschwindigkit einstellbar, sofortiger stop und Homeposition der Kameraanfahren implementiert

    • smartboart 08.12.19 V0.11 start cruise , stop cruise und set CruiseTime implementiert
      -smartboart 08.12.19 v0.12 Bugfix Logging und Stop Kamerabewegung
      -smartboart 11.12.19 V1.00 Bugfixes

    • noch offen Trigger Motion und Klingel verarbeiten und Informationen aus der Kamera auslesen und in states schreiben, diese dazu anlegen...

    Skript / Adapter Foscam FI9928P mittels CGI Befehle nach Doku siehe Link.

    https://www.foscam.es/descarga/Foscam-IPCamera-CGI-User-Guide-AllPlatforms-2015.11.06.pdf

    //Skript Kamerasteuerung  01.12.2019 V0.03
     
     /*
    #####changelog#####
    - smartboart 02.12.19 V0.04  weiteres Loglevel implementiert und Logik Scriptstart überarbeitet - Tag / Nacht wird in den states gespeichert. 
    bei erstmaliger Ausführung müssen die Zustände Tagesposition / Nachtposition stimmen. Spätestens beim nächsten Schedule( Astro Trigger ) 
    stimmen die States dann automatisch. Sollte eigentlich reichen. 
    - smartboart 02.12.19 V0.05 Unterteilung in Konfigurationsbereich / Variablen für Http Request hinzugefügt
    - smartboart 03.12.19 V0.06 8 Presets Hinzugefuegt und entsprechende states angelegt
     um diese ueber Vis anfahren zu koennen. Sowie eine Stopfunktion eingebaut . Astro ueber ueber Vis aktivier / deaktivierbar
     force creation hinzugefügt und create state überarbeitet. Automatische Kontrollfahrt / anfahren aller angelegten Presets hinzugefügt.Aktivierbar durch den entsprechenden state
    - smartboart 04.12.19 V0.07 Const Bewegungsmelder und Klingel hinzugefügt, Funktion under construction.
    - smartboart 08.12.19 V0.08 Log Einträge ergänzt
    - smartboart 08.12.19 V0.09 Funktionen der Foscam hinzugefügt. wie z.B Preset Cruise Funktionen und manuelle Fahrbefehle , Geschwindigkeit und Cruisdauer usw.
    Achtung State Namen wurden geändert. ForceCreation ist aktiv. Gleichnamige States werden überschrieben neue angelegt. Am Besten alle States löschen und
    Skript 2 x starten.Anpassungen in Vis evtl erforderlich.
    Nicht alle States sind schon aktiv. diverse Funktionen noch nicht implementiert.
    Ich habe mich dazu entschlossen das Skript eher wie eine Art Adapter aufzubauen und diverse Komfortfunktionen zu integrieren, welche es in der Foscam 
    Firmware nicht gibt. Ansosnten aber die Komforfunktionen der Kamera zu nutzen woes sinn macht. Deshalb die Überwahungsfahrt im Script entfernt und die der Kamera wird dann angesprochen.
    - smartboart 08.12.19 V0.10 Manuelle Fahrbefehle implementiert, Fahrgeschwindigkit einstellbar, sofortiger stop und Homeposition der Kameraanfahren implementiert
    - smartboart 08.12.19 V0.11 start cruise , stop cruise und set CruiseTime implementiert
    - smartboart 08.12.19 v0.12 Bugfix Logging und Stop Kamerabewegung
    - smartboart 11.12.19 V1.00 Bugfixes
    */
    
    //*******************************Konfigurationsteil*******************************
    // fc wenn aktiv ueberschreibt fc bereits angelegten States...wenn nachträgliche Änderung der States überschrieben weden sollen
    const fC = true;
    
    
    /* Anlegen der Constanten für die Logik für Vis Hier wird der Installationspfad festgelegt 
    Bei speichen unter javascript instanz 0 erfolgt dies unter jacascript.0.Kamera.Test.Kontrollfahrt*/
    const Statepfad = 'javascript.' + instance + '.Kamera.Test.';
    const idAnhaltezeit = Statepfad + 'Anhaltezeit';
    //const idKontrollfahrt =  Statepfad + 'Kontrollfahrt';
    //const idVerweilzeit = Statepfad + 'Verweilzeit';
    const idPosTag = Statepfad + 'Tagesposition';
    const idPosNacht = Statepfad + 'Nachtposition';
    const idAstro = Statepfad + 'Astro';
    
    const idReset = Statepfad + 'Reset';
    const idStopRun =     Statepfad + 'StopRun';
    const idZoomIn =    Statepfad + 'ZoomIn';
    const idZoomOut =   Statepfad + 'ZoomOut';
    const idZoomSpeed = Statepfad + 'ZoomSpeed';
    const idZoomStop = Statepfad + 'ZoomStop';
    const idGotoPreset =   Statepfad + 'GotoPreset';
    const idSpeed     = Statepfad + 'Speed';
    const idStopzeit = Statepfad + 'Stopzeit';
    const idMoveRight =    Statepfad + 'MoveRight';
    const idMoveLeft =     Statepfad + 'MoveLeft';
    const idMoveUp =      Statepfad + 'MoveUp';
    const idMoveTopRight = Statepfad + 'MoveTopRight';
    const idMoveTopLeft = Statepfad + 'MoveTopLeft';
    const idMoveDown =    Statepfad + 'MoveDown';
    const idMoveBottomRight =    Statepfad + 'MoveBottomRight';
    const idMoveBottomLeft =    Statepfad + 'MoveBottomLeft';
    const idStartCruise =     Statepfad + 'StartCruise';
    const idStopCruise =     Statepfad + 'StopCruise';
    const idCruiseTime = Statepfad + 'CruiseTime';
    
    // under construction Hier die Trigger / Klingel und Bewegungsmelder für die Kamera Positionieung eintragen
    
    const idKlingel = 'rpi2.0.gpio.13.state';// Drahtbruchsicher bei mir deshalb wird auf false getriggert
    const idMotionEingang = 'sonoff.0.Wemo_Eingang.POWER5'/*Bewegungsmelder Eingang*/;
    const idMotionCarport = 'sonoff.0.Wemo_Garage.POWER5'/*Bewegungsmelder Carport*/;
    const idMotionGarage = 'hm-rpc.0.PEQ0390467.1.MOTION'/*Bewegungsmelder Vorgarten MOTION*//*Bewegungsmelder Carport*/;
    
    // Anlegen der States für Vis
    createState(idAnhaltezeit, 1, fC, {def: 0,min: 0,name: 'Kamera Zoom Stopzeit',desc: 'Dauer in Sekunden bis zum Stop der Zoom Bewegung',type: 'number',unit: 's'});
    createState(idPosTag, false, fC, {def:  false,name: 'Tagesposition',desc: 'State Vis Tagesposition', type: 'boolean' } );
    createState(idPosNacht, false, fC, {def:  true,name: 'Nachtposition',desc: 'State Vis Nachtposition', type: 'boolean' } );
    createState(idAstro, false, fC, {def:  true,name: 'Astrofunktion',desc: 'Kamera nach nach Astro verfahren ', type: 'boolean' } );
    createState(idStopzeit, 1, fC, {def: 0,min: 0,name: 'Zeit bis stop be Bewegung der Kamera',desc: 'Dauer in Sekunden bis zum Stop der Bewegung',type: 'number',unit: 's'});
    
    
    createState(idReset, false, fC, {def: false,name: 'Kamera PTZ Reset',desc: 'Default Position anfahren',type: 'boolean',role: 'switch'});
    createState(idStopRun, false, fC, {def: false,name: 'Kamera PTZ Stop',desc: 'Sofortiger Stop der Bewegung',type: 'boolean',role: 'switch'});
    createState(idZoomIn, false, fC, {def: false,name: 'Kamera PTZ Zoom in',desc: 'Bild vergößern',type: 'boolean',role: 'switch'});
    createState(idZoomOut, false, fC, {def: false,name: 'Kamera PTZ Zoom out',desc: 'Bild verkleinern',type: 'boolean',role: 'switch'});
    createState(idZoomStop, false, fC, {def: false,name: 'Kamera PTZ Zoom stop',desc: 'Bild Zoom stop',type: 'boolean',role: 'switch'});
    createState(idGotoPreset, 0, fC, {def: 0,min: 0,max: 8,name: 'Kamera PTZ Position wählen',desc: 'Preset auswählen (Zahlen von 1 bis X)',type: 'number'});
    createState(idSpeed, 0, fC, {def: 0,min: 0,max: 4,name: 'Kamera PTZ Geschwindkeit bei Bewegung',desc: 'Geschwindigkeit von 0-4 bei der Bewegung',type: 'number',states: { 0: 'sehr schnell' , 1:  'schnell' , 2:  'normal' , 3: 'langsam' ,4: 'sehr langsam' }});
    createState(idMoveRight, false, fC, {def: false,name: 'Kamera PTZ rechts',desc: 'Bewegung nach rechts',type: 'boolean',role: 'switch'});
    createState(idMoveLeft, false, fC, {def: false,name: 'Kamera PTZ links',desc: 'Bewegung nach links',type: 'boolean',role: 'switch'});
    createState(idMoveUp, false, fC, {def: false,name: 'Kamera PTZ oben',desc: 'Bewegung nach oben',type: 'boolean',role: 'switch'});
    createState(idMoveTopRight, false, fC, {def: false,name: 'Kamera PTZ oben rechts',desc: 'Bewegung nach obenrechts',type: 'boolean',role: 'switch'});
    createState(idMoveTopLeft, false, fC, {def: false,name: 'Kamera PTZ oben links',desc: 'Bewegung nach obenlinks',type: 'boolean',role: 'switch'});
    createState(idMoveDown, false, fC, {def: false,name: 'Kamera PTZ unten',desc: 'Bewegung nach unten',type: 'boolean',role: 'switch'});
    createState(idMoveBottomRight, false, fC, {def: false,name: 'Kamera  PTZ unten rechts',desc: 'Bewegung nach untenrechts',type: 'boolean',role: 'switch'});
    createState(idMoveBottomLeft, false, fC, {def: false,name: 'Kamera  PTZ unten links',desc: 'Bewegung nach untenlinks',type: 'boolean',role: 'switch'});
    createState(idStartCruise, false, fC, {def: false,name: 'Kamera PTZ Positionen abfahren',desc: 'in der Kamera konfigurite Positionsfahrt wird gestartet',type: 'boolean',role: 'switch'});
    createState(idStopCruise, false, fC, {def: false,name: 'Kamera PTZ Positionen abfahren',desc: 'in der Kamera konfigurite Positionsfahrt wird gestoppt',type: 'boolean',role: 'switch'});
    createState(idCruiseTime, 1, fC, {def: 1,min: 1,max:5,name: 'Kamera  PTZ CruiseTime',type: 'number',desc:'1 = 5min , 2 = 10min , 3 = 15min , 4 = 20min , 5 = 25min',states: { 1: ' 5min' , 2:  '10min' , 3:  '15min' , 4: '20min' ,5: '25min' }});
    
    
    // Variable logging aktivieren deaktivieren
    
    var logging = true;
    
    // Variable debug aktivieren deaktivieren
    
    var debug = true;
    
    // Variable http Request hier eintragen ( IP, Presetname , User und Paßwort der Kamera) evtl CGI Befehle anpassen
    
    var PresetTag = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=XXXXXX_Autos&usr=XXXXXX&pwd=XXXXXX';
    var PresetNacht = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=XXXXXX_komplett&usr=XXXXXX&pwd=XXXXXX';
    
    var Preset1 = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=XXXXXX&usr=XXXXXX&pwd=XXXXXX';
    var Preset2 = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=XXXXXX&usr=XXXXXX&pwd=XXXXXX';
    var Preset3 = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=XXXXXXt&usr=XXXXXX&pwd=XXXXXX';
    var Preset4 = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=XXXXXX&usr=XXXXXX&pwd=XXXXXX';
    var Preset5 = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=XXXXXX&usr=XXXXXX&pwd=XXXXXX';
    var Preset6 = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=XXXXXX&usr=XXXXXX&pwd=XXXXXX';
    var Preset7 = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=XXXXXX&usr=XXXXXX&pwd=XXXXXX';
    var Preset8 = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=XXXXXX&usr=XXXXXX&pwd=XXXXXX';
    
    // PTZ Befehle
    
    var Reset = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzReset&usr=XXXXXX&pwd=XXXXXX';
    
    var StopRun = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ptzStopRun&usr=XXXXXX&pwd=XXXXXX';
    
    var ZoomIn = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ZoomIn&usr=XXXXXX&pwd=XXXXXX';
    var ZoomOut = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=ZoomOut&usr=XXXXXX&pwd=XXXXXX';
    var ZoomStop = 'http://192.168.XX.XX/cgi-bin/CGIProxy.fcgi?cmd=zoomStop&usr=XXXXXX&pwd=XXXXXX';
    
    var Speed0 = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=setPTZSpeed&speed=0&usr=XXXXXX&pwd=XXXXXX';
    var Speed1 = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=setPTZSpeed&speed=1&usr=XXXXXX&pwd=XXXXXX';
    var Speed2 = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=setPTZSpeed&speed=2&usr=XXXXXX&pwd=XXXXXX';
    var Speed3 = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=setPTZSpeed&speed=3&usr=XXXXXX&pwd=XXXXXX';
    var Speed4 = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=setPTZSpeed&speed=4&usr=XXXXXX&pwd=XXXXXX';
    
    var MoveRight = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=ptzMoveRight&usr=XXXXXX&pwd=XXXXXX';
    var MoveLeft = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=ptzMoveLeft&usr=XXXXXX&pwd=XXXXXX';
    var MoveUp = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=ptzMoveUp&usr=XXXXXX&pwd=XXXXXX';
    var MoveDown = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=ptzMoveDown&usr=XXXXXX&pwd=XXXXXX';
    var MoveTopLeft = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=ptzMoveTopLeft&usr=XXXXXX&pwd=XXXXXX';
    var MoveTopRight = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=ptzMoveTopRight&usr=XXXXXX&pwd=XXXXXX';
    var MoveBottomLeft = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=ptzMoveBottomLeft&usr=XXXXXX&pwd=XXXXXX';
    var MoveBottomRight = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=ptzMoveBottomRight&usr=XXXXXX&pwd=XXXXXX';
    
    var StartCruise = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=ptzStartCruise&mapName=test&usr=XXXXXX&pwd=XXXXXX';
    var StopCruise = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=ptzStopCruise&usr=XXXXXX&pwd=XXXXXX';
    
    var CruiseTime1 = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=setCruiseTime&time=5&usr=XXXXXX&pwd=XXXXXX';
    var CruiseTime2 = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=setCruiseTime&time=10&usr=XXXXXX&pwd=XXXXXX';
    var CruiseTime3 = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=setCruiseTime&time=15&usr=XXXXXX&pwd=XXXXXX';
    var CruiseTime4 = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=setCruiseTime&time=20&usr=XXXXXX&pwd=XXXXXX';
    var CruiseTime5 = 'http://192.168.XX.XX//cgi-bin/CGIProxy.fcgi?cmd=setCruiseTime&time=25&usr=XXXXXX&pwd=XXXXXX';
    
    
    /********************Ab hier muss nix mehr geändert werden******************************/
    
    //######################################################
    //Cruise / Presetfahrten / Überwachungsfahrt starten
    
    on(idStartCruise, function (obj) {
       if (!obj.state.ack && obj.state.val) {
        if(debug)log('Überwachungsfahrt der Kamera Presetpositionen gestartet');
        setStateDelayed(idStartCruise, false, 500);
           request(StartCruise) , function (error, response){
        if(debug && error)log(error, 'error');    
    
           }
        }
    });
    
    //Cruise / Presetfahrten / Überwachungsfahrt stoppen
    
    on(idStopCruise, function (obj) {
       if (!obj.state.ack && obj.state.val) {
               if(debug)log('Überwachungsfahrt der Kamera Presetpositionen gestoppt');
        setStateDelayed(idStopCruise, false, 500);
           request(StopCruise) , function (error, response){
        if(debug && error)log(error, 'error');    
    
           }
        }
    });
    
    //Cruise / Presetfahrten / Überwachungsfahrt Zeit einstellen
    
    
    //Fahrgeschwindigkeit ändern
    on(idCruiseTime , function (obj) {
        if (!obj.state.ack && obj.state.val) {
            var selectT = getState(idCruiseTime).val;
            if(selectT === 1)setCruiseT1();
            if(selectT === 2)setCruiseT2();
            if(selectT === 3)setCruiseT3();
            if(selectT === 4)setCruiseT4();
            if(selectT === 5)setCruiseT5();    
            if(logging)log(['Kontrollfahrtzeit eingestellt auf Vorwahl  ',getState(idCruiseTime).val].join('')); 
        }
    });    
    
    function setCruiseT1(){
        if(debug)log('Funktion setCruiseT1 ausgeführt, Request URL CruiseTime1');
    request(CruiseTime1) , function (error, response){
    if(debug && error)log(error, 'error');
    }
    }
    
    function setCruiseT2(){
        if(debug)log('Funktion setCruiseT2 ausgeführt, Request URL CruiseTime2');
    request(CruiseTime2) , function (error, response){
    if(debug && error)log(error, 'error');
    
    }
    } 
    
    function setCruiseT3(){
        if(debug)log('Funktion setCruiseT3 ausgeführt, Request URL CruiseTime3');
    request(CruiseTime3) , function (error, response){
    if(debug && error)log(error, 'error');
    
    }
    } 
    
    function setCruiseT4(){
        if(debug)log('Funktion setCruiseT4 ausgeführt, Request URL CruiseTime4');
    request(CruiseTime4) , function (error, response){
    if(debug && error)log(error, 'error');
    
    }
    } 
    
    function setCruiseT5(){
        if(debug)log('Funktion setCruiseT5 ausgeführt, Request URL CruiseTime5');
    request(CruiseTime5) , function (error, response){
    if(debug && error)log(error, 'error');
    
    }
    } 
    
    //######################################################
    
    //Fahrgeschwindigkeit ändern
    on(idSpeed , function (obj) {
            var select = getState(idSpeed).val;
            if(select === 0)setspeed0();
            if(select === 1)setspeed1();
            if(select === 2)setspeed2();
            if(select === 3)setspeed3();
            if(select === 4)setspeed4();    
            if(logging)log(['Fahrgeschwindigkeit eingestellt Stufe  ',getState(idSpeed).val].join('')); 
    });    
    
    function setspeed0(){
        if(debug)log('Funktion setspeed0 ausgeführt, Request URL Speed0');
    request(Speed0) , function (error, response){
    if(debug && error)log(error, 'error');
    
    }
    }   
    
    function setspeed1(){
        if(debug)log('Funktion setspeed1 ausgeführt, Request URL Speed1');
    request(Speed1) , function (error, response){
    if(debug && error)log(error, 'error');
    
    }
    }   
    
    function setspeed2(){
        if(debug)log('Funktion setspeed2 ausgeführt, Request URL Speed2');
    request(Speed2) , function (error, response){
    if(debug && error)log(error, 'error');
    
    }
    }  
    
    function setspeed3(){
        if(debug)log('Funktion setspeed3 ausgeführt, Request URL Speed3');
    request(Speed3) , function (error, response){
    if(debug && error)log(error, 'error');
    
    }
    }  
    
    function setspeed4(){
        if(debug)log('Funktion setspeed4 ausgeführt, Request URL Speed4');
    request(Speed4) , function (error, response){
    if(debug && error)log(error, 'error');
    
    }
    }  
    
    
    
    
    
    //########################################################
    
    //Positionieren stoppen
    on(idStopRun, function (obj) {
       if (!obj.state.ack && obj.state.val) {
               if(logging)log('Positionierung manuell gestoppt');
                   setStateDelayed(idStopRun, false, 500);
                   StopRunning();
    
        }
    });
    
    
    function StopRunning (){
        if(debug)log('Funktion StopRunning ausgeführt, Request URL StopRun');
        
        request(StopRun) , function (error, response){
        if(debug && error)log(error, 'error');    
           }
    }
    
    //########################################################
    
    //Homeposition anfahren
    on(idReset, function (obj) {
       if (!obj.state.ack && obj.state.val) {
               if(debug)log('Homeposition manuell angefahren');
                   setStateDelayed(idReset, false, 500);
        request(Reset) , function (error, response){
        if(debug && error)log(error, 'error');    
            }
        }
    });
    
    //########################################################
    
    // Positionieren Hoch runter links recht obenlinksrechts untenlinksrechts manuell
    
    // Links
    on(idMoveLeft, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          var Stoppzeit = getState(idAnhaltezeit).val;
          LeftMoving();
          setTimeout(StopRunning,Stoppzeit*1000);
          setStateDelayed(idMoveLeft, false, 500);
          if(logging)log('Funktion LeftMoving gestartet');
       }
    });
    
    
    function LeftMoving(){
        if(debug)log('Funktion LeftMoving ausgeführt, Request URL MoveLeft');
    request(MoveLeft) , function (error, response){
    if(debug && error)log(error, 'error');    
    
    }
    }  
    
    //rechts
    on(idMoveRight, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          var Stoppzeit = getState(idAnhaltezeit).val;
          RightMoving();
          setTimeout(StopRunning,Stoppzeit*1000);
          setStateDelayed(idMoveRight, false, 500);
          if(logging)log('Funktion RightMoving gestartet');
       }
    });
    
    
    function RightMoving(){
        if(debug)log('Funktion RighttMoving ausgeführt, Request URL MoveRight');
    request(MoveRight) , function (error, response){
    if(debug && error)log(error, 'error');    
    
    }
    } 
    
    
    
    // hochrechts
    on(idMoveTopRight, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          var Stoppzeit = getState(idAnhaltezeit).val;
          TopRightMoving();
          setTimeout(StopRunning,Stoppzeit*1000);
          setStateDelayed(idMoveTopRight, false, 500);
          if(logging)log('Funktion TopRightMoving gestartet');
       }
    });
    
    
    function TopRightMoving(){
        if(debug)log('Funktion TopRighttMoving ausgeführt, Request URL MoveTopRight');
    request(MoveTopRight) , function (error, response){
    if(debug && error)log(error, 'error');    
    
    }
    } 
    
    // hochlinks
    on(idMoveTopLeft, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          var Stoppzeit = getState(idAnhaltezeit).val;
          TopLeftMoving();
          setTimeout(StopRunning,Stoppzeit*1000);
          setStateDelayed(idMoveTopLeft, false, 500);
          if(logging)log('Funktion TopLeftMoving gestartet');
       }
    });
    
    
    function TopLeftMoving(){
        if(debug)log('Funktion TopLeftMoving ausgeführt, Request URL MoveTopLeft');
    request(MoveTopLeft) , function (error, response){
    if(debug && error)log(error, 'error');    
    
    }
    }
    
    // runterrechts
    on(idMoveBottomRight, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          var Stoppzeit = getState(idAnhaltezeit).val;
          BottomRightMoving();
          setTimeout(StopRunning,Stoppzeit*1000);
          setStateDelayed(idMoveBottomRight, false, 500);
          if(logging)log('Funktion BottomRightMoving gestartet');
       }
    });
    
    
    function BottomRightMoving(){
        if(debug)log('Funktion BottomRighttMoving ausgeführt, Request URL MoveBottomRight');
    request(MoveBottomRight) , function (error, response){
    if(debug && error)log(error, 'error');    
    
    }
    }
    
    // runterlinks
    on(idMoveBottomLeft, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          var Stoppzeit = getState(idAnhaltezeit).val;
          BottomLeftMoving();
          setTimeout(StopRunning,Stoppzeit*1000);
          setStateDelayed(idMoveBottomLeft, false, 500);
          if(logging)log('Funktion BottomLeftMoving gestartet');
       }
    });
    
    
    function BottomLeftMoving(){
        if(debug)log('Funktion BottomLefttMoving ausgeführt, Request URL MoveBottomLeft');
    request(MoveBottomLeft) , function (error, response){
    if(debug && error)log(error, 'error');    
    
    }
    }
    
    // oben
    on(idMoveUp, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          var Stoppzeit = getState(idAnhaltezeit).val;
          UpMoving();
          setTimeout(StopRunning,Stoppzeit*1000);
          setStateDelayed(idMoveUp, false, 500);
          if(logging)log('Funktion UpMoving gestartet');
       }
    });
    
    
    function UpMoving(){
        if(debug)log('Funktion UptMoving ausgeführt, Request URL MoveUp');
    request(MoveUp) , function (error, response){
    if(debug && error)log(error, 'error');    
    }
    }
    
    
    // runter
    on(idMoveDown, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          var Stoppzeit = getState(idAnhaltezeit).val;
          DownMoving();
          setTimeout(StopRunning,Stoppzeit*1000);
          setStateDelayed(idMoveDown, false, 500);
          if(logging)log('Funktion DownMoving gestartet');
       }
    });
    
    
    function DownMoving(){
        if(debug)log('Funktion DowntMoving ausgeführt, Request URL MoveDown');
    request(MoveDown) , function (error, response){
    if(debug && error)log(error, 'error');    
    
    }
    }
    
    
    //########################################################
    
    //Preset anfahren
    on(idGotoPreset , function (obj) {
        if (!obj.state.ack && obj.state.val) {
            var preset = getState(idGotoPreset).val;
            if(logging)log(['Funktion gestartet,  Preset Postion ',getState(idGotoPreset).val].join('')); 
            if(preset === 1){
                GoTo1();
                }else{
                   if(preset === 2){
                       GoTo2();
                       }else{
                        if(preset === 3){
                            GoTo3();
                            }else{
                            if(preset === 4){
                                GoTo4();
                                }else{
                                if(preset === 5){
                                    GoTo5();
                                    }else{
                                    if(preset === 6){
                                        GoTo6();
                                            }else{
                                            if(preset === 7){
                                                GoTo7();
                                                }else{
                                                if(preset === 8){
                                                    GoTo8();   
                                            }
                                        }
                                    }
                                }
                            }
                        }
                   } 
            }
        }
    });
    
    function GoTo1(){
    if(debug)log('Funktion GoTo1 ausgeführt, Request URL Preset 1');
    request(Preset1) , function (error, response){
    if(debug && error)log(error, 'error');
    }
    }    
    
    function GoTo2(){
    if(debug)log('Funktion GoTo2 ausgeführt, Request URL Preset 2');  
    request(Preset2) , function (error, response){
    if(debug && error)log(error, 'error');    
    }
    } 
    
    function GoTo3(){
    if(debug)log('Funktion GoTo3 ausgeführt, Request URL Preset 3');   
    request(Preset3) , function (error, response){
    if(debug && error)log(error, 'error');    
    }
    } 
    
    function GoTo4(){
    if(debug)log('Funktion GoTo4 ausgeführt, Request URL Preset 4');
    request(Preset4) , function (error, response){
    if(debug && error)log(error, 'error');
    }
    } 
    
    function GoTo5(){
    if(debug)log('Funktion GoTo5 ausgeführt, Request URL Preset 5');
    request(Preset5) , function (error, response){
    if(debug && error)log(error, 'error');    
    }
    } 
    
    function GoTo6(){
    if(debug)log('Funktion GoTo6 ausgeführt, Request URL Preset 6');
    request(Preset6) , function (error, response){
    if(debug && error)log(error, 'error');
    }
    } 
    
    function GoTo7(){
    if(debug)log('Funktion GoTo7 ausgeführt, Request URL Preset 7');    
    request(Preset7) , function (error, response){
    if(debug && error)log(error, 'error');    
    }
    } 
    
    function GoTo8(){
    if(debug)log('Funktion GoTo8 ausgeführt, Request URL Preset 8');
    request(Preset8) , function (error, response){
    if(debug && error)log(error, 'error');
    }
    } 
    
    //########################################################
    
    // Für Vis PresetButton zurück setzen
    
    on({id: [idReset,idStopRun, idZoomOut, idZoomIn,idZoomStop,idMoveBottomLeft,idMoveBottomRight, idMoveDown, idMoveUp, idMoveBottomLeft, idMoveBottomRight, idMoveTopLeft, idMoveTopRight, idMoveLeft, idMoveRight, idReset, idStopCruise, idStartCruise], 
       change: 'any'
    }, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          setState(idGotoPreset, 0);
          if(logging)log(' State GotoPreset für Vis Anzeige zurückgesetzt');
       }
    });
    
    //########################################################
    
    // vergrößern manuell
    
    on(idZoomIn, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          var Stopzeit = getState(idAnhaltezeit).val;
          Bigzoomen();
          setTimeout(Stopzoomen,Stopzeit*1000);
          setStateDelayed(idZoomIn, false, 500);
          if(logging)log('Funktion Bigzoomen gestartet');
    
       }
    });
    
    
    function Bigzoomen(){
        if(debug)log('Funktion Bigzoomen ausgeführt, Request URL ZoomIn');
    request(ZoomIn) , function (error, response){
    if(debug && error)log(error, 'error');    
    
        
    }
    }
    
    // verkleinern manuell
    
    on(idZoomOut, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          var Stopzeit = getState(idAnhaltezeit).val;
          Smallzoomen();
          setTimeout(Stopzoomen,Stopzeit*1000);
          setStateDelayed(idZoomOut, false, 500);
         if(logging)log('Funktion Smallzoomen gestartet');
    
       }
    });
    
    
    function Smallzoomen(){
        if(debug )log('Funktion Smallzoomen ausgeführt, Request URL ZoomOut');  
    request(ZoomOut) , function (error, response){
    if(debug && error)log(error, 'error');    
      
    }
    }
    
    //zoom Stopen manuell
    
    on(idZoomStop, function (obj) {
       if (!obj.state.ack && obj.state.val) {
          Stopzoomen();
          setStateDelayed(idZoomStop, false, 500);
          if(logging)log('Funktion Stopzoomen gestartet');
    
       }
    });
    
    
    function Stopzoomen(){
        if(debug)log('Funktion Stopzoomen ausgeführt, Request URL ZoomStop');
    request(ZoomStop) , function (error, response){
    if(debug && error)log(error, 'error');    
    
    }
    }   
    
    //########################################################
    // Funktionslogik Sonnenaufgang
    
    function Sonnenaufgang(){
    var Astro = getState (idAstro).val;
    setState(idPosTag,true,true);
    setState(idPosNacht,false,true);
    if(Astro){
        if (debug)log('Funktion Sonnenaufgang ausgeführt, Request URL PresetTag ');
    request(PresetTag), function (error, response){
    if(debug && error)log(error, 'error');    
    } 
    }
    }
    
    // Funktionslogik Sonnenuntergang
    
    function Sonnenuntergang(){
    var Astro = getState (idAstro).val;
    setState(idPosTag,false,true);
    setState(idPosNacht,true,true);
    if(Astro){
        if (debug)log('Funktion Sonnenuntergang ausgeführt, Request URL PresetNacht ');
    request(PresetNacht), function (error, response){
    if(debug && error)log(error, 'error');    
    
    }
    }
    } 
    
    //########################################################
    
    // Skriptstart
    
    Scriptstart();
    
    // Funktion Skriptstart
    
    function Scriptstart(){
    var Tag = getState(idPosTag).val;
    var Nacht = getState(idPosNacht).val;
    if (Tag === true && Nacht === false){
    Sonnenaufgang();
    if (debug)log('Skriptstart Tagprogramm ');
    }else{
    if (Nacht === true && Tag === false){
    Sonnenuntergang();
    if (debug)log('Skriptstart Nachtprogramm');
    }else{
    if (Tag === true && Nacht === true){
    if(debug)log('Logikfehler Tag und Nacht aktiv')	
    			}
    
    		}
    
    	}
    
    }
    
    //########################################################
    
    // Trigger Sonnenaufgang
    
    schedule({astro: "sunrise"}, function () {//Sonnenaufgang
    Sonnenaufgang();
    if(logging)log('Funktion Sonnenaufgang gestartet')	
    });
    
     
    // Trigger Sonnenuntergang
    schedule({astro: "sunset"}, function () {//Sonnenuntergang
    Sonnenuntergang();
    if(logging)log('Funktion Sonnenuntergang gestartet')	
    });
    
    1 Reply Last reply
    0
    • WiednitzW Offline
      WiednitzW Offline
      Wiednitz
      wrote on last edited by Wiednitz
      #2

      entfernt

      smartboartS 1 Reply Last reply
      0
      • WiednitzW Wiednitz

        entfernt

        smartboartS Offline
        smartboartS Offline
        smartboart
        wrote on last edited by smartboart
        #3

        @Wiednitz
        vlt. kannst du mal deine Erkenntnisse bzw. bereits getestetn CGI Befehle / Request Html zum Besten geben, welche du bereits erfolgreich getestet hast.
        Mein anderes Skript dazu läuft mittels ONVIF , aber hier funktionieren die Presets nicht. Deshalb ist mein obiges Skript auch für mich sinning, wenn es denn bei mir funktioniert. Wie gesagt bisher nur onvif...
        Habe bereits ein Skript laufen mit welchem ich manuell mittels onvif verfahren kann.
        Aber mittels CGI könnte das auch direkt in Vis gehen. Frühere Versuche meinerseits waren bei der onvif nicht erfolgreich.

        Mir fallen da noch andere Sachen ein, z.B nach Bewegung oder Klingel die entsprechenden Presets anfahren.
        Hoffe ich bekomme die Presets zum laufen mittes CGI.

        WiednitzW 1 Reply Last reply
        0
        • smartboartS smartboart

          @Wiednitz
          vlt. kannst du mal deine Erkenntnisse bzw. bereits getestetn CGI Befehle / Request Html zum Besten geben, welche du bereits erfolgreich getestet hast.
          Mein anderes Skript dazu läuft mittels ONVIF , aber hier funktionieren die Presets nicht. Deshalb ist mein obiges Skript auch für mich sinning, wenn es denn bei mir funktioniert. Wie gesagt bisher nur onvif...
          Habe bereits ein Skript laufen mit welchem ich manuell mittels onvif verfahren kann.
          Aber mittels CGI könnte das auch direkt in Vis gehen. Frühere Versuche meinerseits waren bei der onvif nicht erfolgreich.

          Mir fallen da noch andere Sachen ein, z.B nach Bewegung oder Klingel die entsprechenden Presets anfahren.
          Hoffe ich bekomme die Presets zum laufen mittes CGI.

          WiednitzW Offline
          WiednitzW Offline
          Wiednitz
          wrote on last edited by Wiednitz
          #4

          @smartboart

          Ha mit Hausklingel habe ich gestern erst fertiggestellt, läuft 1a. Normales klingeln, Kamera fährt auf PTZ Hoftor, zoomt heran, macht Foto für Telegram, fährt wieder auf Ursprung zurück und es Klingeln alle Telefone an der Fritzbox, wichtig wenn im Garten. Langes klingeln -einstellbar- das Gleiche, öffnet zusätzlich Tor für zum Beispiel Postbote, muss ihm natürlich mitgeteilt werden bei Nachricht für Ablageort.

          Script ist schon Recht umfangreich und Blockly ;). Kann ich gern einstellen.

          1 Reply Last reply
          0
          • smartboartS Offline
            smartboartS Offline
            smartboart
            wrote on last edited by smartboart
            #5

            Alsoich habe mit dem CGI nicht so tolle Erfahrung ..ausser für snap benutze ich es nicht. Der Link
            http://192.168.xx.xx/cgi-bin/hi3510/preset.cgi?-act=goto&-number=5?usr=xxxxxx&pwd=xxxxx
            funktioniert bei mir schomal nicht...hast ne idee?

            Antwort 404 not found

            WiednitzW 1 Reply Last reply
            0
            • smartboartS Offline
              smartboartS Offline
              smartboart
              wrote on last edited by
              #6

              mein snap sieht so aus...der geht..
              http://192.168.xx.xx/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxx&pwd=xxxx

              WiednitzW 1 Reply Last reply
              0
              • smartboartS smartboart

                Alsoich habe mit dem CGI nicht so tolle Erfahrung ..ausser für snap benutze ich es nicht. Der Link
                http://192.168.xx.xx/cgi-bin/hi3510/preset.cgi?-act=goto&-number=5?usr=xxxxxx&pwd=xxxxx
                funktioniert bei mir schomal nicht...hast ne idee?

                Antwort 404 not found

                WiednitzW Offline
                WiednitzW Offline
                Wiednitz
                wrote on last edited by Wiednitz
                #7

                @smartboart

                Probier mal

                /cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=test&usr=admin&pwd=

                Hast du PTZ Nummern ?

                smartboartS 1 Reply Last reply
                0
                • smartboartS Offline
                  smartboartS Offline
                  smartboart
                  wrote on last edited by
                  #8

                  ja habe nummern 5, 6 ,7 ,8 11 und 12 aktiv in Vis mittels Onvif script, funktioniert aber nur wenn der token vorher im browser aktiv war. deshalb ist mir die Lösung hier lieber

                  WiednitzW 1 Reply Last reply
                  0
                  • smartboartS smartboart

                    mein snap sieht so aus...der geht..
                    http://192.168.xx.xx/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxx&pwd=xxxx

                    WiednitzW Offline
                    WiednitzW Offline
                    Wiednitz
                    wrote on last edited by
                    #9

                    @smartboart

                    Deine SNAP url geht bei mir nicht, ich nehme

                    http://192.168.10.68/tmpfs/auto.jpg?

                    1 Reply Last reply
                    0
                    • WiednitzW Wiednitz

                      @smartboart

                      Probier mal

                      /cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=test&usr=admin&pwd=

                      Hast du PTZ Nummern ?

                      smartboartS Offline
                      smartboartS Offline
                      smartboart
                      wrote on last edited by
                      #10

                      @Wiednitz sagte in IPCam FI9928P Position nach Astro http Request:

                      /cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=test&usr=admin&pwd=

                      bekomme als result

                      <CGI_Result>
                      <result>0</result>
                      <runResult>1</runResult>
                      </CGI_Result>

                      WiednitzW 1 Reply Last reply
                      0
                      • smartboartS smartboart

                        ja habe nummern 5, 6 ,7 ,8 11 und 12 aktiv in Vis mittels Onvif script, funktioniert aber nur wenn der token vorher im browser aktiv war. deshalb ist mir die Lösung hier lieber

                        WiednitzW Offline
                        WiednitzW Offline
                        Wiednitz
                        wrote on last edited by
                        #11

                        @smartboart

                        Onvif hab ich auch, aber noch nicht mit beschäftigt. Videostream geht ja im vis eh nicht unter Windows 10

                        smartboartS 1 Reply Last reply
                        0
                        • WiednitzW Wiednitz

                          @smartboart

                          Onvif hab ich auch, aber noch nicht mit beschäftigt. Videostream geht ja im vis eh nicht unter Windows 10

                          smartboartS Offline
                          smartboartS Offline
                          smartboart
                          wrote on last edited by
                          #12

                          @Wiednitz ja habe mich nur damit beschäftigt, weilich cginicht hinbekommen habe..Hatte jetzt nur Hoffnung weil es bei deiner Cam geht....Ist. vlt. nen Firmware ding..
                          <CGI_Result>
                          <result>0</result>
                          <runResult>1</runResult>
                          </CGI_Result>
                          alsoich bekomme den Ressult , passiert aber nix...

                          1 Reply Last reply
                          0
                          • smartboartS smartboart

                            @Wiednitz sagte in IPCam FI9928P Position nach Astro http Request:

                            /cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=test&usr=admin&pwd=

                            bekomme als result

                            <CGI_Result>
                            <result>0</result>
                            <runResult>1</runResult>
                            </CGI_Result>

                            WiednitzW Offline
                            WiednitzW Offline
                            Wiednitz
                            wrote on last edited by Wiednitz
                            #13

                            @smartboart

                            Foscam 9928 CGI pdf

                            Sollte ähnlich wie bei mir funktionieren !?

                            smartboartS 1 Reply Last reply
                            0
                            • smartboartS Offline
                              smartboartS Offline
                              smartboart
                              wrote on last edited by
                              #14

                              Ja, das Dokument hatte ich glaube ich auch schon..Schau mir das mal morgen in Ruhe an...Muss jetzt schluss machen....Frau quengelt schon....Bis dann!!!!

                              1 Reply Last reply
                              0
                              • WiednitzW Wiednitz

                                @smartboart

                                Foscam 9928 CGI pdf

                                Sollte ähnlich wie bei mir funktionieren !?

                                smartboartS Offline
                                smartboartS Offline
                                smartboart
                                wrote on last edited by
                                #15

                                @Wiednitz Alter das geht...ich muss statt der Nummer den Namen eintragen ( Vorgarten_Autos) schon klappts!!!!!!!!

                                WiednitzW 1 Reply Last reply
                                0
                                • smartboartS smartboart

                                  @Wiednitz Alter das geht...ich muss statt der Nummer den Namen eintragen ( Vorgarten_Autos) schon klappts!!!!!!!!

                                  WiednitzW Offline
                                  WiednitzW Offline
                                  Wiednitz
                                  wrote on last edited by
                                  #16

                                  @smartboart

                                  Wollte grad schreiben, kann keine Zahl sein, fragte ja erst schon. Hatte das eben noch gefunden:

                                  L’api Foscam FI9928P
                                  Voici les différentes commandes API que j’ai ajouté dans la vidéo ci-dessus :

                                  Flux vidéo : http://IP:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=#username#&pwd=#password#
                                  Position (ici la position syno0) : http://IP:port/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=syno0&usr=#username#&pwd=#password#
                                  Zoom + : http://IP:port/cgi-bin/CGIProxy.fcgi?cmd=zoomIn&usr=#username#&pwd=#password#
                                  Zoom – : /cgi-bin/CGIProxy.fcgi?cmd=zoomOut&usr=#username#&pwd=#password#
                                  Arrêt du zoom : /cgi-bin/CGIProxy.fcgi?cmd=zoomStop&usr=#username#&pwd=#password#

                                  Bis später...

                                  smartboartS 1 Reply Last reply
                                  0
                                  • WiednitzW Wiednitz

                                    @smartboart

                                    Wollte grad schreiben, kann keine Zahl sein, fragte ja erst schon. Hatte das eben noch gefunden:

                                    L’api Foscam FI9928P
                                    Voici les différentes commandes API que j’ai ajouté dans la vidéo ci-dessus :

                                    Flux vidéo : http://IP:port/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=#username#&pwd=#password#
                                    Position (ici la position syno0) : http://IP:port/cgi-bin/CGIProxy.fcgi?cmd=ptzGotoPresetPoint&name=syno0&usr=#username#&pwd=#password#
                                    Zoom + : http://IP:port/cgi-bin/CGIProxy.fcgi?cmd=zoomIn&usr=#username#&pwd=#password#
                                    Zoom – : /cgi-bin/CGIProxy.fcgi?cmd=zoomOut&usr=#username#&pwd=#password#
                                    Arrêt du zoom : /cgi-bin/CGIProxy.fcgi?cmd=zoomStop&usr=#username#&pwd=#password#

                                    Bis später...

                                    smartboartS Offline
                                    smartboartS Offline
                                    smartboart
                                    wrote on last edited by
                                    #17

                                    @Wiednitz Danke!!!

                                    WiednitzW 1 Reply Last reply
                                    0
                                    • smartboartS smartboart

                                      @Wiednitz Danke!!!

                                      WiednitzW Offline
                                      WiednitzW Offline
                                      Wiednitz
                                      wrote on last edited by Wiednitz
                                      #18

                                      @smartboart

                                      Gerne....

                                      Script läuft doch nicht wie gewünscht. Wenn ich es jetzt starte, geht es auf Tagprogramm und damit auf PTZ Tag !?

                                      javascript.0	2019-12-01 23:39:41.058	info	script.js.IPCam_TagNachtPTZ: registered 0 subscriptions and 2 schedules
                                      javascript.0	2019-12-01 23:39:41.058	info	script.js.IPCam_TagNachtPTZ: Skriptstart Tagprogramm
                                      javascript.0	2019-12-01 23:39:41.057	info	Start javascript script.js.IPCam_TagNachtPTZ
                                      

                                      Bin mir jetzt unsicher, ob es mit Version 2 erst funktioniert hat oder nicht !?

                                      So, jetzt erstmal Matratzenhorchdienst ^^

                                      smartboartS 2 Replies Last reply
                                      0
                                      • WiednitzW Wiednitz

                                        @smartboart

                                        Gerne....

                                        Script läuft doch nicht wie gewünscht. Wenn ich es jetzt starte, geht es auf Tagprogramm und damit auf PTZ Tag !?

                                        javascript.0	2019-12-01 23:39:41.058	info	script.js.IPCam_TagNachtPTZ: registered 0 subscriptions and 2 schedules
                                        javascript.0	2019-12-01 23:39:41.058	info	script.js.IPCam_TagNachtPTZ: Skriptstart Tagprogramm
                                        javascript.0	2019-12-01 23:39:41.057	info	Start javascript script.js.IPCam_TagNachtPTZ
                                        

                                        Bin mir jetzt unsicher, ob es mit Version 2 erst funktioniert hat oder nicht !?

                                        So, jetzt erstmal Matratzenhorchdienst ^^

                                        smartboartS Offline
                                        smartboartS Offline
                                        smartboart
                                        wrote on last edited by
                                        #19

                                        @Wiednitz sagte in IPCam FI9928P Position nach Astro http Request:

                                        Bin mir jetzt unsicher, ob es mit Version 2 erst funktioniert hat oder nicht !?

                                        Hallo,

                                        ich hatte während dem das Script online war noch diverse Anpassungen gemacht. Vlt. Hast du nen Zwischenstand abgerufen.
                                        Ich habe oben aktualisiert , ein weiteres Loglevel implementiert und die Logik Scriptstart überarbeitet - Tag / Nacht wird in den states gespeichert.

                                        bei erstmaliger Ausführung müssen die Zustände Tagesposition / Nachtposition stimmen. Spätestens beim nächsten Schedule( Astro Trigger )
                                        stimmen die States dann automatisch. Sollte eigentlich reichen.
                                        Ich verwende die beiden States hier auch als Merker. Wenn du aber z.B Tagsüber dein System herunterfährst und ers Nachts wieder hochfährst stimmt die Tageszeit natürlich nicht. Der Astro Schedule ist ein Trigger der immer nur einmal am Tag aktiv ist. Ist das System zu diesem Zeitpunkt aus oder das skript angehalten, erfolgt natürlich kein Weichsel der Tageszeit. Das passiert erst dann wieder beim nächsten schedule. Dann stimmen auch wieder die Zustände..
                                        Dass musst du halt wissen.
                                        Wenn du aus irgendwelchen Gründen ständig deine Skipte anhälst oder das System pausierst, was für mich keinen Sinn ergibt, ausser bei Wartungsarbeiten, kann das halt vorkommen.
                                        Dann müsste ich in den Skriptstart eine is Time in Range abfrage einbauen..

                                        Aber ich denke das sollte so reichen.

                                        1 Reply Last reply
                                        0
                                        • smartboartS Offline
                                          smartboartS Offline
                                          smartboart
                                          wrote on last edited by
                                          #20

                                          Achso, habe das Script ab V.0.04 jetzt nicht ausprobiert, bin nicht zu Hause... Wenn ich mich irgendwo vertippt habe oder ein paar Sonderzeichen vergessen habe sei es mir verziehen.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          378

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe