Page 1 sur 1

[DzVents] Connaitre l'état de la détection d'une Foscam

Publié : 25 oct. 2019, 10:32
par Datawolf
Hello,

J'ai commis ce petit script pour vérifier que chacune de mes caméras Foscam était en phase avec la consigne de détection.

Code : Tout sélectionner

-- Lit l'état de la détection de chacune des caméras
return {
  on = {
    timer = { 'every 2 minutes', },
    devices = { 123, }, -- Etat détection caméras
    httpResponses = { 'http_trigger_cam1', 'http_trigger_cam2 }
  },

  execute = function(domoticz, triggeredItem, info)

  if triggeredItem.isTimer or triggeredItem.changed then
    --          Script déclenché toutes les 2mn ou par le changement de détection générale
    --          ==> on va exécuter les requêtes HTTP
    url_cam1 = "http://URL_CAM1/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=USER&pwd=PASSWORD"
    domoticz.openURL({
      url = url_cam1,
      callback = 'http_trigger_cam1'
    })
    url_cam2 = "http://URL_CAM2/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=USER&pwd=PASSWORD"
    domoticz.openURL({
      url = url_cam2,
      callback = 'http_trigger_cam2'
    })
  end -- isTimer

  if triggeredItem.isHTTPResponse then
    --          Script déclenché par le retour d'une requête HTTP
    --          ==> on va exploiter le résultat
    if triggeredItem.ok then
      local ed,ef,resultat=string.find(triggeredItem.data," <isEnable>(.)") -- recherche le chiffre entre (.)
      if     triggeredItem.trigger == 'http_trigger_cam1' then
        --                On va mettre à jour le device Cam1
        if resultat == '1' then
          domoticz.devices(881).switchOn().checkFirst()
        elseif resultat == '0' then
          domoticz.devices(881).switchOff().checkFirst()
        end -- resultat
      elseif triggeredItem.trigger == 'http_trigger_cam2' then
        --                On va mettre à jour le device Cam2
        if resultat == '1' then
          domoticz.devices(882).switchOn().checkFirst()
        elseif resultat == '0' then
          domoticz.devices(882).switchOff().checkFirst()
        end -- resultat
      end -- trigger
    else
      domoticz.log('getMotionDetectConfig failed',domoticz.LOG_ERROR)
    end -- is OK
  end -- isHTTP
end -- function
}

@+
Datawolf